Skip to content
This repository was archived by the owner on Nov 21, 2025. It is now read-only.

GUI using QT - #39

Draft
TheoW03 wants to merge 227 commits into
masterfrom
QtUi
Draft

GUI using QT #39
TheoW03 wants to merge 227 commits into
masterfrom
QtUi

Conversation

@TheoW03

@TheoW03 TheoW03 commented Dec 16, 2024

Copy link
Copy Markdown
Owner

still work in progress, and it may be Months before we merge this PR

but when we merge it will add a UI to the emulator. using QT.
as well as features such as palettes to the emulator and bug fixes.

Wolfmyths and others added 30 commits August 14, 2024 02:36
Updated CMake file to hopefully work better with the overall project

Upgraded cpp code to cpp20
Using ptrs finally clicked in my head, we goin' places
Classes are easier to read "romlist" -> "RomList"

Updated sort/order functions to work better
You can now use the search bar

RomList's compare functions now fallback to comparing title of RomData if the values are equal
If the current sort mode is sort by favorite, then update the display when a rom is favorited
Changed the rom count and display limit to 5000 for stress testing

You can now scroll if the rom list widget is too large for the main window

Added missing members to mainwindow.h
Roms are displayed in pages for performance, reaching the beginning or end of the scroll bar changes pages

If there is no scroll bar, scrolling once up or down will also change pages
Prevent the user from accidentally changing pages
The bottom of the window displays which page you're on, and how much are displayed at a time
Some QStrings are replaced with tr() for possible future translation features

Replaced string concat with format

Renamed romlist FlowLayout widget

Changed method of accessing romlist layout object

page_info QLabel is now a child of the main window's QStatusBar object instead of main window
Moving headers to src/include

Moving translation files to src/gui/translations
TheoW03 and others added 20 commits March 31, 2025 12:47
refactor complete
now each address for a compoenent
get its own class
(like ppubaddr...)
[Refactor] As commit title suggests
[Refactor] Made less log calls in emulation code, added some text to help with log context

[Refactor] In emulation code, changed isPressed param in Execute::joypad1/2 and Bus::write_controller1/2 to be const bool rather than int

[Refactor] Simplified if else statements in Bus::write_controller1/2

[Refactor] Removed if statement in EmulatorWorker::process_cpu, specifically when checking if a controller is pressed
[Refactor] Project now uses SFML version 3.0.x instead of nightly builds
(screwed up 2 instr opcodes)
now Fill and fetch have read8_bit instead of directly reading
TheoW03 and others added 9 commits June 17, 2025 13:14
[Refactor] Cleaned up some includes across the project

[Refactor] File structure is more organized

[Refactor] Adjusted CMakeLists.txt

[Refactor] Adjusted build.bat to include the use of windeployqt6.exe

[Refactor] Adjusted build.bat by removing arguments leaving it to the end user to assign them with VSCode extensions or other methods
[Refactor] Added error message if environmental path is not set to find windeployqt6.exe
properly rest joypad
[Refactor] Rom data has gotten a slight overhaul:

They are now stored in the list rather than it being ptrs

Functions involving rom data are now passed via ref

Romdata constructor now has an empty constructor and no more optional parameters for the original constructor

RomData no longer inherits QObject

[Refactor] Optimizations added when getting rom data:

Data container now uses emplace_back rather than append

Data container allocates memory less often
[Refactor] Rom Data is now stored in a wrapper class for 2 different QLists

[Refactor] Moved 2 functions in util.h to the main window class due to circular import errors

[Refactor] Moved some globals around like enums and macros into util files because of circular import errors

[Refactor] Changed a lot of functions to pass through const reference
Fixed rom urls not working
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GUI

2 participants