Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI using QT #39

Draft
wants to merge 158 commits into
base: master
Choose a base branch
from
Draft

GUI using QT #39

wants to merge 158 commits into from

Conversation

TheoW03
Copy link
Owner

@TheoW03 TheoW03 commented Dec 16, 2024

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
Wolfmyths and others added 30 commits December 29, 2024 01:05
Added shader support, uses placeholder shader found online for now (details in crt_shader.frag)
Instead of there being a list of shared pointers, the list just stores raw pointers, this is for readability reasons

The rom data's memory will now be cleaned up by RomList's deconstructor function (when the program shuts down)

Updated a ton of getter function declarations to return a constant

Removed u_short typedef in-favor of a more standard typedef (uint16_t)

Replaced unsigned int declarations with uint32_t

Fixed a possible bug where the var data's validation wasn't being checked correctly in RomListItem::RomListItem()

Refactored some functions in RomList for better readablility

RomList should update if rom dirs was changed in the settings

Removed some assignments in header files and moved them into the class' constructor
Added a completer in the search bar on rom list

Refactored how the game title is parsed in GameDisplay::GameDisplay()
[Bugfix] Game title no longer disappears after a second of displaying

[Bugfix] Widgets in emulation settings have a more proper layout

[Readability] Added a ton of comments in Settings_Display.cpp
[Refactor] Replaced include guards with "#pragma once" for all header files
less reliant on constants more uniform vars
[Refactor] Moved emu_thread from gamedisplay class to the heap (Now is a QScopedPointer)

[Refactor] Moved member assignments from headers into the constructor in the gamedisplay class
[Refactor] Made emu_thread into a raw pointer
[Refactor] emu_thread in GameDisplay class now has a parent, removing the need for manual memory managment

[Refactor] emu_thread in GameDisplay now is called to quit regardless of if threading is turned on or not
[Bugfix] crt_shader no longer sets values every frame

[Refactor] Move sprite to the heap
[Tweak] Simplified the way the ms counter in GameDisplay is wrote
[Feature] Pause functionality finally works

[Tweak] Moved 2 event connection declarations from EmulatorWorker to GameDisplay (Result should be the same)

[Refactor] Removed QAction from GameDisplay as it did nothing, along with the slot function that connected to it

[Refactor] Removed QMutex member as it is not needed anymore

[Refactor] Removed mutex and m_paused params from EmulatorWorker constructor as it is not needed anymore

[Refactor] Removed some instances of x += 1 and replaced them with x++
[Tweak] Remove unused include
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GUI
2 participants