mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-07-11 01:24:54 +02:00
Qt: use readable strings for windowState and visibility in gui settings
This commit is contained in:
@@ -647,7 +647,7 @@ void gs_frame::hide_on_close()
|
|||||||
{
|
{
|
||||||
// Make sure not to save the hidden state, which is useless to us.
|
// Make sure not to save the hidden state, which is useless to us.
|
||||||
const Visibility current_visibility = visibility();
|
const Visibility current_visibility = visibility();
|
||||||
m_gui_settings->SetValue(gui::gs_visibility, current_visibility == Visibility::Hidden ? m_visibility : current_visibility, false);
|
m_gui_settings->SetValue(gui::gs_visibility, gui::visibility_to_string(current_visibility == Visibility::Hidden ? m_visibility : current_visibility), false);
|
||||||
m_gui_settings->SetValue(gui::gs_geometry, geometry(), true);
|
m_gui_settings->SetValue(gui::gs_geometry, geometry(), true);
|
||||||
|
|
||||||
if (!g_progr_text)
|
if (!g_progr_text)
|
||||||
@@ -718,10 +718,10 @@ void gs_frame::show()
|
|||||||
{
|
{
|
||||||
setVisibility(FullScreen);
|
setVisibility(FullScreen);
|
||||||
}
|
}
|
||||||
else if (const QVariant var = m_gui_settings->GetValue(gui::gs_visibility); var.canConvert<Visibility>())
|
else if (const QVariant var = m_gui_settings->GetValue(gui::gs_visibility); var.canConvert<QString>())
|
||||||
{
|
{
|
||||||
// Restore saved visibility from last time. Make sure not to hide the window, or the user can't access it anymore.
|
// Restore saved visibility from last time. Make sure not to hide the window, or the user can't access it anymore.
|
||||||
if (const Visibility visibility = var.value<Visibility>(); visibility != Visibility::Hidden)
|
if (const Visibility visibility = gui::string_to_visibility(var.value<QString>()); visibility != Visibility::Hidden)
|
||||||
{
|
{
|
||||||
setVisibility(visibility);
|
setVisibility(visibility);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,6 +102,45 @@ namespace gui
|
|||||||
|
|
||||||
fmt::throw_exception("get_trophy_game_list_column_name: Invalid column");
|
fmt::throw_exception("get_trophy_game_list_column_name: Invalid column");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString window_states_to_string(Qt::WindowStates states)
|
||||||
|
{
|
||||||
|
if (states & Qt::WindowFullScreen) return "FullScreen";
|
||||||
|
if (states & Qt::WindowMaximized) return "Maximized";
|
||||||
|
if (states & Qt::WindowMinimized) return "Minimized";
|
||||||
|
return "Windowed";
|
||||||
|
}
|
||||||
|
|
||||||
|
Qt::WindowState string_to_window_states(const QString& state)
|
||||||
|
{
|
||||||
|
const QString lower = state.toLower(); // Allow for better user experience
|
||||||
|
if (lower == "fullscreen") return Qt::WindowFullScreen;
|
||||||
|
if (lower == "maximized") return Qt::WindowMaximized;
|
||||||
|
if (lower == "minimized") return Qt::WindowMinimized;
|
||||||
|
return Qt::WindowNoState;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString visibility_to_string(QWindow::Visibility visibility)
|
||||||
|
{
|
||||||
|
switch (visibility)
|
||||||
|
{
|
||||||
|
case QWindow::Visibility::Windowed: return "Windowed";
|
||||||
|
case QWindow::Visibility::Minimized: return "Minimized";
|
||||||
|
case QWindow::Visibility::Maximized: return "Maximized";
|
||||||
|
case QWindow::Visibility::FullScreen: return "FullScreen";
|
||||||
|
default: return "AutomaticVisibility";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QWindow::Visibility string_to_visibility(const QString& visibility)
|
||||||
|
{
|
||||||
|
const QString lower = visibility.toLower(); // Allow for better user experience
|
||||||
|
if (lower == "windowed") return QWindow::Visibility::Windowed;
|
||||||
|
if (lower == "minimized") return QWindow::Visibility::Minimized;
|
||||||
|
if (lower == "maximized") return QWindow::Visibility::Maximized;
|
||||||
|
if (lower == "fullscreen") return QWindow::Visibility::FullScreen;
|
||||||
|
return QWindow::Visibility::AutomaticVisibility;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gui_settings::gui_settings(QObject* parent) : settings(parent)
|
gui_settings::gui_settings(QObject* parent) : settings(parent)
|
||||||
|
|||||||
@@ -109,6 +109,12 @@ namespace gui
|
|||||||
return q_string_pair(path, title.simplified()); // simplified() forces single line text
|
return q_string_pair(path, title.simplified()); // simplified() forces single line text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString window_states_to_string(Qt::WindowStates states);
|
||||||
|
Qt::WindowState string_to_window_states(const QString& state);
|
||||||
|
|
||||||
|
QString visibility_to_string(QWindow::Visibility visibility);
|
||||||
|
QWindow::Visibility string_to_visibility(const QString& visibility);
|
||||||
|
|
||||||
const QString Settings = "CurrentSettings";
|
const QString Settings = "CurrentSettings";
|
||||||
const QString DefaultStylesheet = "default";
|
const QString DefaultStylesheet = "default";
|
||||||
const QString NoStylesheet = "none";
|
const QString NoStylesheet = "none";
|
||||||
@@ -180,6 +186,7 @@ namespace gui
|
|||||||
const gui_save mw_geometry = gui_save(main_window, "geometry", QByteArray());
|
const gui_save mw_geometry = gui_save(main_window, "geometry", QByteArray());
|
||||||
const gui_save mw_windowState = gui_save(main_window, "windowState", QByteArray());
|
const gui_save mw_windowState = gui_save(main_window, "windowState", QByteArray());
|
||||||
const gui_save mw_mwState = gui_save(main_window, "mwState", QByteArray());
|
const gui_save mw_mwState = gui_save(main_window, "mwState", QByteArray());
|
||||||
|
const gui_save mw_visibility = gui_save(main_window, "visibility", window_states_to_string(Qt::WindowNoState));
|
||||||
|
|
||||||
const gui_save cat_hdd_game = gui_save(game_list, "categoryVisibleHDDGame", true);
|
const gui_save cat_hdd_game = gui_save(game_list, "categoryVisibleHDDGame", true);
|
||||||
const gui_save cat_disc_game = gui_save(game_list, "categoryVisibleDiscGame", true);
|
const gui_save cat_disc_game = gui_save(game_list, "categoryVisibleDiscGame", true);
|
||||||
@@ -272,7 +279,7 @@ namespace gui
|
|||||||
const gui_save gs_hideMouseIdle = gui_save(gs_frame, "hideMouseOnIdle", false);
|
const gui_save gs_hideMouseIdle = gui_save(gs_frame, "hideMouseOnIdle", false);
|
||||||
const gui_save gs_hideMouseIdleTime = gui_save(gs_frame, "hideMouseOnIdleTime", 2000);
|
const gui_save gs_hideMouseIdleTime = gui_save(gs_frame, "hideMouseOnIdleTime", 2000);
|
||||||
const gui_save gs_geometry = gui_save(gs_frame, "geometry", QRect());
|
const gui_save gs_geometry = gui_save(gs_frame, "geometry", QRect());
|
||||||
const gui_save gs_visibility = gui_save(gs_frame, "visibility", QWindow::Visibility::AutomaticVisibility);
|
const gui_save gs_visibility = gui_save(gs_frame, "visibility", visibility_to_string(QWindow::Visibility::AutomaticVisibility));
|
||||||
|
|
||||||
const gui_save ss_icon_color = gui_save(trophy, "icon_color", gl_icon_color);
|
const gui_save ss_icon_color = gui_save(trophy, "icon_color", gl_icon_color);
|
||||||
const gui_save ss_game_icon_size = gui_save(trophy, "game_icon_size", 25);
|
const gui_save ss_game_icon_size = gui_save(trophy, "game_icon_size", 25);
|
||||||
|
|||||||
@@ -1923,6 +1923,7 @@ void main_window::DecryptSPRXLibraries()
|
|||||||
void main_window::SaveWindowState() const
|
void main_window::SaveWindowState() const
|
||||||
{
|
{
|
||||||
// Save gui settings
|
// Save gui settings
|
||||||
|
m_gui_settings->SetValue(gui::mw_visibility, gui::window_states_to_string(windowState()), false);
|
||||||
m_gui_settings->SetValue(gui::mw_geometry, saveGeometry(), false);
|
m_gui_settings->SetValue(gui::mw_geometry, saveGeometry(), false);
|
||||||
m_gui_settings->SetValue(gui::mw_windowState, saveState(), false);
|
m_gui_settings->SetValue(gui::mw_windowState, saveState(), false);
|
||||||
|
|
||||||
@@ -1999,14 +2000,7 @@ void main_window::RepaintToolBarIcons()
|
|||||||
ui->sysPauseAct->setIcon(m_icon_play);
|
ui->sysPauseAct->setIcon(m_icon_play);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isFullScreen())
|
ui->toolbar_fullscreen->setIcon(isFullScreen() ? m_icon_fullscreen_off : m_icon_fullscreen_on);
|
||||||
{
|
|
||||||
ui->toolbar_fullscreen->setIcon(m_icon_fullscreen_off);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ui->toolbar_fullscreen->setIcon(m_icon_fullscreen_on);
|
|
||||||
}
|
|
||||||
|
|
||||||
const QColor& new_color = new_colors[QIcon::Normal];
|
const QColor& new_color = new_colors[QIcon::Normal];
|
||||||
ui->sizeSlider->setStyleSheet(ui->sizeSlider->styleSheet().append("QSlider::handle:horizontal{ background: rgba(%1, %2, %3, %4); }")
|
ui->sizeSlider->setStyleSheet(ui->sizeSlider->styleSheet().append("QSlider::handle:horizontal{ background: rgba(%1, %2, %3, %4); }")
|
||||||
@@ -3941,6 +3935,10 @@ void main_window::ConfigureGuiFromSettings()
|
|||||||
|
|
||||||
// Gamelist
|
// Gamelist
|
||||||
m_game_list_frame->LoadSettings();
|
m_game_list_frame->LoadSettings();
|
||||||
|
|
||||||
|
// Restore saved visibility from last time.
|
||||||
|
setWindowState(gui::string_to_window_states(m_gui_settings->GetValue(gui::mw_visibility).toString()));
|
||||||
|
ui->toolbar_fullscreen->setIcon(isFullScreen() ? m_icon_fullscreen_off : m_icon_fullscreen_on);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_window::SetIconSizeActions(int idx) const
|
void main_window::SetIconSizeActions(int idx) const
|
||||||
@@ -4060,7 +4058,7 @@ void main_window::CreateFirmwareCache()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_window::mouseDoubleClickEvent(QMouseEvent *event)
|
void main_window::mouseDoubleClickEvent(QMouseEvent* event)
|
||||||
{
|
{
|
||||||
if (isFullScreen())
|
if (isFullScreen())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -125,9 +125,9 @@ private Q_SLOTS:
|
|||||||
void update_gui_pad_thread();
|
void update_gui_pad_thread();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent* event) override;
|
||||||
void changeEvent(QEvent *event) override;
|
void changeEvent(QEvent* event) override;
|
||||||
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
void mouseDoubleClickEvent(QMouseEvent* event) override;
|
||||||
void dropEvent(QDropEvent* event) override;
|
void dropEvent(QDropEvent* event) override;
|
||||||
void dragEnterEvent(QDragEnterEvent* event) override;
|
void dragEnterEvent(QDragEnterEvent* event) override;
|
||||||
void dragMoveEvent(QDragMoveEvent* event) override;
|
void dragMoveEvent(QDragMoveEvent* event) override;
|
||||||
@@ -184,7 +184,7 @@ private:
|
|||||||
QActionGroup* m_category_visible_act_group = nullptr;
|
QActionGroup* m_category_visible_act_group = nullptr;
|
||||||
|
|
||||||
// Dockable widget frames
|
// Dockable widget frames
|
||||||
QMainWindow *m_mw = nullptr;
|
QMainWindow* m_mw = nullptr;
|
||||||
log_frame* m_log_frame = nullptr;
|
log_frame* m_log_frame = nullptr;
|
||||||
debugger_frame* m_debugger_frame = nullptr;
|
debugger_frame* m_debugger_frame = nullptr;
|
||||||
game_list_frame* m_game_list_frame = nullptr;
|
game_list_frame* m_game_list_frame = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user