- Gui rewrite.

- Gui: Bug fixes and cleanup.
- Gui: Performance improvement (loading, resizing...etc)
- Added a simple PKG Viewer(Settings-> Utils -> PKG Viewer), added pkg folders will be saved.
- PKG Viewer: Shows game info(name, id, region...etc)
- PKG Viewer: Right click -> Install PKG to install/extract a game. Patch installation is also possible.
- Added option to dump game list  (Settings -> Utils -> Dump Game List), will be dumped to emu folder GameList.txt
This commit is contained in:
raziel1000 2024-03-28 23:43:46 -06:00 committed by Jonah
parent 2d0414c365
commit ca6f582ea8
28 changed files with 1315 additions and 1744 deletions

View file

@ -7,8 +7,13 @@
#include <QDragEnterEvent>
#include <QMainWindow>
#include <QMimeData>
#include "game_grid_frame.h"
#include "game_info.h"
#include "game_list_frame.h"
#include "game_list_utils.h"
#include "main_window_themes.h"
#include "main_window_ui.h"
#include "pkg_viewer.h"
class GuiSettings;
class GameListFrame;
@ -21,6 +26,8 @@ class MainWindow : public QMainWindow {
bool m_is_list_mode = true;
bool m_save_slider_pos = false;
int m_other_slider_pos = 0;
signals:
void WindowResized(QResizeEvent* event);
public:
explicit MainWindow(std::shared_ptr<GuiSettings> gui_settings, QWidget* parent = nullptr);
@ -32,20 +39,24 @@ public:
private Q_SLOTS:
void ConfigureGuiFromSettings();
void SetIconSizeActions(int idx) const;
void ResizeIcons(int index);
void SaveWindowState() const;
void SearchGameTable(const QString& text);
void RefreshGameTable();
void HandleResize(QResizeEvent* event);
private:
void AddUiWidgets();
void CreateActions();
void CreateDockWindows();
void LoadGameLists();
void CreateConnects();
void SetLastUsedTheme();
void SetLastIconSizeBullet();
void SetUiIcons(bool isWhite);
QIcon recolorIcon(const QIcon& icon, bool isWhite);
QIcon RecolorIcon(const QIcon& icon, bool isWhite);
bool isIconBlack = false;
bool isTableList = true;
QActionGroup* m_icon_size_act_group = nullptr;
QActionGroup* m_list_mode_act_group = nullptr;
@ -53,9 +64,18 @@ private:
// Dockable widget frames
QMainWindow* m_main_window = nullptr;
GameListFrame* m_game_list_frame = nullptr;
WindowThemes m_window_themes;
GameListUtils m_game_list_utils;
QDockWidget* m_dock_widget = nullptr;
// Game Lists
GameListFrame* m_game_list_frame = nullptr;
GameGridFrame* m_game_grid_frame = nullptr;
// Packge Viewer
PKGViewer* m_pkg_viewer = nullptr;
// Status Bar.
QStatusBar* statusBar = nullptr;
std::shared_ptr<GameInfoClass> m_game_info = std::make_shared<GameInfoClass>();
std::shared_ptr<GuiSettings> m_gui_settings;
protected:
@ -77,4 +97,6 @@ protected:
}
}
}
void resizeEvent(QResizeEvent* event) override;
};