mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-27 14:37:22 +00:00
Qt: sync gui settings by default after setting or removing values
This commit is contained in:
parent
56d35bf409
commit
4a4762654b
@ -248,7 +248,6 @@ bool debugger_frame::eventFilter(QObject* object, QEvent* event)
|
||||
void debugger_frame::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
SaveSettings();
|
||||
m_gui_settings->sync();
|
||||
|
||||
QDockWidget::closeEvent(event);
|
||||
Q_EMIT DebugFrameClosed();
|
||||
|
@ -70,9 +70,9 @@ game_list_frame::game_list_frame(std::shared_ptr<gui_settings> gui_settings, std
|
||||
m_old_layout_is_list = m_is_list_layout;
|
||||
|
||||
// Save factors for first setup
|
||||
m_gui_settings->SetValue(gui::gl_iconColor, m_icon_color);
|
||||
m_gui_settings->SetValue(gui::gl_marginFactor, m_margin_factor);
|
||||
m_gui_settings->SetValue(gui::gl_textFactor, m_text_factor);
|
||||
m_gui_settings->SetValue(gui::gl_iconColor, m_icon_color, false);
|
||||
m_gui_settings->SetValue(gui::gl_marginFactor, m_margin_factor, false);
|
||||
m_gui_settings->SetValue(gui::gl_textFactor, m_text_factor, true);
|
||||
|
||||
m_game_dock = new QMainWindow(this);
|
||||
m_game_dock->setWindowFlags(Qt::Widget);
|
||||
@ -260,8 +260,8 @@ void game_list_frame::OnColClicked(int col)
|
||||
}
|
||||
m_sort_column = col;
|
||||
|
||||
m_gui_settings->SetValue(gui::gl_sortAsc, m_col_sort_order == Qt::AscendingOrder);
|
||||
m_gui_settings->SetValue(gui::gl_sortCol, col);
|
||||
m_gui_settings->SetValue(gui::gl_sortAsc, m_col_sort_order == Qt::AscendingOrder, false);
|
||||
m_gui_settings->SetValue(gui::gl_sortCol, col, true);
|
||||
|
||||
m_game_list->sort(m_game_data.count(), m_sort_column, m_col_sort_order);
|
||||
}
|
||||
@ -573,17 +573,17 @@ void game_list_frame::OnParsingFinished()
|
||||
// Read persistent_settings values
|
||||
const QString note = m_persistent_settings->GetValue(gui::persistent::notes, serial, "").toString();
|
||||
const QString title = m_persistent_settings->GetValue(gui::persistent::titles, serial, "").toString().simplified();
|
||||
QString last_played = m_persistent_settings->GetValue(gui::persistent::last_played, serial, "").toString();
|
||||
quint64 playtime = m_persistent_settings->GetValue(gui::persistent::playtime, serial, 0).toULongLong();
|
||||
const QString last_played = m_persistent_settings->GetValue(gui::persistent::last_played, serial, "").toString();
|
||||
const quint64 playtime = m_persistent_settings->GetValue(gui::persistent::playtime, serial, 0).toULongLong();
|
||||
|
||||
// Set persistent_settings values if values exist
|
||||
if (!last_played.isEmpty())
|
||||
{
|
||||
m_persistent_settings->SetLastPlayed(serial, last_played);
|
||||
m_persistent_settings->SetLastPlayed(serial, last_played, false); // No need to sync here. It would slow down the refresh anyway.
|
||||
}
|
||||
if (playtime > 0)
|
||||
{
|
||||
m_persistent_settings->SetPlaytime(serial, playtime);
|
||||
m_persistent_settings->SetPlaytime(serial, playtime, false); // No need to sync here. It would slow down the refresh anyway.
|
||||
}
|
||||
|
||||
m_serials.insert(serial);
|
||||
@ -851,9 +851,9 @@ void game_list_frame::SaveSettings()
|
||||
{
|
||||
m_gui_settings->SetGamelistColVisibility(static_cast<gui::game_list_columns>(col), m_columnActs[col]->isChecked());
|
||||
}
|
||||
m_gui_settings->SetValue(gui::gl_sortCol, m_sort_column);
|
||||
m_gui_settings->SetValue(gui::gl_sortAsc, m_col_sort_order == Qt::AscendingOrder);
|
||||
m_gui_settings->SetValue(gui::gl_state, m_game_list->horizontalHeader()->saveState());
|
||||
m_gui_settings->SetValue(gui::gl_sortCol, m_sort_column, false);
|
||||
m_gui_settings->SetValue(gui::gl_sortAsc, m_col_sort_order == Qt::AscendingOrder, false);
|
||||
m_gui_settings->SetValue(gui::gl_state, m_game_list->horizontalHeader()->saveState(), true);
|
||||
}
|
||||
|
||||
void game_list_frame::doubleClickedSlot(QTableWidgetItem *item)
|
||||
@ -1627,9 +1627,8 @@ void game_list_frame::ShowContextMenu(const QPoint &pos)
|
||||
{
|
||||
if (QMessageBox::question(this, tr("Confirm Reset"), tr("Reset time played?\n\n%0 [%1]").arg(name).arg(serial)) == QMessageBox::Yes)
|
||||
{
|
||||
m_persistent_settings->SetPlaytime(serial, 0);
|
||||
m_persistent_settings->SetLastPlayed(serial, 0);
|
||||
m_persistent_settings->sync();
|
||||
m_persistent_settings->SetPlaytime(serial, 0, false);
|
||||
m_persistent_settings->SetLastPlayed(serial, 0, true);
|
||||
Refresh();
|
||||
}
|
||||
});
|
||||
@ -2432,7 +2431,6 @@ void game_list_frame::FocusAndSelectFirstEntryIfNoneIs()
|
||||
void game_list_frame::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
SaveSettings();
|
||||
m_gui_settings->sync();
|
||||
|
||||
QDockWidget::closeEvent(event);
|
||||
Q_EMIT GameListFrameClosed();
|
||||
|
@ -637,9 +637,8 @@ void gs_frame::hide_on_close()
|
||||
{
|
||||
// Make sure not to save the hidden state, which is useless to us.
|
||||
const Visibility current_visibility = visibility();
|
||||
m_gui_settings->SetValue(gui::gs_visibility, current_visibility == Visibility::Hidden ? Visibility::AutomaticVisibility : current_visibility);
|
||||
m_gui_settings->SetValue(gui::gs_geometry, geometry());
|
||||
m_gui_settings->sync();
|
||||
m_gui_settings->SetValue(gui::gs_visibility, current_visibility == Visibility::Hidden ? Visibility::AutomaticVisibility : current_visibility, false);
|
||||
m_gui_settings->SetValue(gui::gs_geometry, geometry(), true);
|
||||
|
||||
if (!g_progr.load())
|
||||
{
|
||||
|
@ -166,8 +166,6 @@ bool gui_application::Init()
|
||||
{
|
||||
m_gui_settings->SetValue(gui::m_currentStylesheet, "Darker Style by TheMitoSan");
|
||||
}
|
||||
|
||||
m_gui_settings->sync();
|
||||
}
|
||||
|
||||
// Check maxfiles
|
||||
@ -819,7 +817,7 @@ void gui_application::StartPlaytime(bool start_playtime = true)
|
||||
return;
|
||||
}
|
||||
|
||||
m_persistent_settings->SetLastPlayed(serial, QDateTime::currentDateTime().toString(gui::persistent::last_played_date_format));
|
||||
m_persistent_settings->SetLastPlayed(serial, QDateTime::currentDateTime().toString(gui::persistent::last_played_date_format), true);
|
||||
m_timer_playtime.start();
|
||||
m_timer.start(10000); // Update every 10 seconds in case the emulation crashes
|
||||
}
|
||||
@ -840,8 +838,8 @@ void gui_application::UpdatePlaytime()
|
||||
return;
|
||||
}
|
||||
|
||||
m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart());
|
||||
m_persistent_settings->SetLastPlayed(serial, QDateTime::currentDateTime().toString(gui::persistent::last_played_date_format));
|
||||
m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart(), false);
|
||||
m_persistent_settings->SetLastPlayed(serial, QDateTime::currentDateTime().toString(gui::persistent::last_played_date_format), true);
|
||||
}
|
||||
|
||||
void gui_application::StopPlaytime()
|
||||
@ -858,8 +856,8 @@ void gui_application::StopPlaytime()
|
||||
return;
|
||||
}
|
||||
|
||||
m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart());
|
||||
m_persistent_settings->SetLastPlayed(serial, QDateTime::currentDateTime().toString(gui::persistent::last_played_date_format));
|
||||
m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart(), false);
|
||||
m_persistent_settings->SetLastPlayed(serial, QDateTime::currentDateTime().toString(gui::persistent::last_played_date_format), true);
|
||||
m_timer_playtime.invalidate();
|
||||
}
|
||||
|
||||
|
@ -273,10 +273,10 @@ void log_frame::CreateAndConnectActions()
|
||||
m_ansi_act_tty = new QAction(tr("ANSI Code (TTY)"), this);
|
||||
m_ansi_act_tty->setCheckable(true);
|
||||
connect(m_ansi_act_tty, &QAction::toggled, [this](bool checked)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::l_ansi_code, checked);
|
||||
m_ansi_tty = checked;
|
||||
});
|
||||
{
|
||||
m_gui_settings->SetValue(gui::l_ansi_code, checked);
|
||||
m_ansi_tty = checked;
|
||||
});
|
||||
|
||||
m_tty_channel_acts = new QActionGroup(this);
|
||||
// Special Channel: All
|
||||
|
@ -1731,16 +1731,14 @@ void main_window::DecryptSPRXLibraries()
|
||||
void main_window::SaveWindowState() const
|
||||
{
|
||||
// Save gui settings
|
||||
m_gui_settings->SetValue(gui::mw_geometry, saveGeometry());
|
||||
m_gui_settings->SetValue(gui::mw_windowState, saveState());
|
||||
m_gui_settings->SetValue(gui::mw_mwState, m_mw->saveState());
|
||||
m_gui_settings->SetValue(gui::mw_geometry, saveGeometry(), false);
|
||||
m_gui_settings->SetValue(gui::mw_windowState, saveState(), false);
|
||||
m_gui_settings->SetValue(gui::mw_mwState, m_mw->saveState(), true);
|
||||
|
||||
// Save column settings
|
||||
m_game_list_frame->SaveSettings();
|
||||
// Save splitter state
|
||||
m_debugger_frame->SaveSettings();
|
||||
|
||||
m_gui_settings->sync();
|
||||
}
|
||||
|
||||
void main_window::RepaintThumbnailIcons()
|
||||
|
@ -233,7 +233,6 @@ pad_settings_dialog::pad_settings_dialog(std::shared_ptr<gui_settings> gui_setti
|
||||
void pad_settings_dialog::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::pads_geometry, saveGeometry());
|
||||
m_gui_settings->sync();
|
||||
|
||||
QDialog::closeEvent(event);
|
||||
}
|
||||
|
@ -154,9 +154,8 @@ patch_manager_dialog::patch_manager_dialog(std::shared_ptr<gui_settings> gui_set
|
||||
void patch_manager_dialog::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
// Save gui settings
|
||||
m_gui_settings->SetValue(gui::pm_geometry, saveGeometry());
|
||||
m_gui_settings->SetValue(gui::pm_splitter_state, ui->splitter->saveState());
|
||||
m_gui_settings->sync();
|
||||
m_gui_settings->SetValue(gui::pm_geometry, saveGeometry(), false);
|
||||
m_gui_settings->SetValue(gui::pm_splitter_state, ui->splitter->saveState(), true);
|
||||
|
||||
QDialog::closeEvent(event);
|
||||
}
|
||||
|
@ -11,16 +11,16 @@ persistent_settings::persistent_settings(QObject* parent) : settings(parent)
|
||||
m_settings.reset(new QSettings(ComputeSettingsDir() + gui::persistent::persistent_file_name + ".dat", QSettings::Format::IniFormat, parent));
|
||||
}
|
||||
|
||||
void persistent_settings::SetPlaytime(const QString& serial, quint64 playtime)
|
||||
void persistent_settings::SetPlaytime(const QString& serial, quint64 playtime, bool sync)
|
||||
{
|
||||
m_playtime[serial] = playtime;
|
||||
SetValue(gui::persistent::playtime, serial, playtime);
|
||||
SetValue(gui::persistent::playtime, serial, playtime, sync);
|
||||
}
|
||||
|
||||
void persistent_settings::AddPlaytime(const QString& serial, quint64 elapsed)
|
||||
void persistent_settings::AddPlaytime(const QString& serial, quint64 elapsed, bool sync)
|
||||
{
|
||||
const quint64 playtime = GetValue(gui::persistent::playtime, serial, 0).toULongLong();
|
||||
SetPlaytime(serial, playtime + elapsed);
|
||||
SetPlaytime(serial, playtime + elapsed, sync);
|
||||
}
|
||||
|
||||
quint64 persistent_settings::GetPlaytime(const QString& serial)
|
||||
@ -28,10 +28,10 @@ quint64 persistent_settings::GetPlaytime(const QString& serial)
|
||||
return m_playtime[serial];
|
||||
}
|
||||
|
||||
void persistent_settings::SetLastPlayed(const QString& serial, const QString& date)
|
||||
void persistent_settings::SetLastPlayed(const QString& serial, const QString& date, bool sync)
|
||||
{
|
||||
m_last_played[serial] = date;
|
||||
SetValue(gui::persistent::last_played, serial, date);
|
||||
SetValue(gui::persistent::last_played, serial, date, sync);
|
||||
}
|
||||
|
||||
QString persistent_settings::GetLastPlayed(const QString& serial)
|
||||
|
@ -38,11 +38,11 @@ public:
|
||||
QString GetCurrentUser(const QString& fallback) const;
|
||||
|
||||
public Q_SLOTS:
|
||||
void SetPlaytime(const QString& serial, quint64 playtime);
|
||||
void AddPlaytime(const QString& serial, quint64 elapsed);
|
||||
void SetPlaytime(const QString& serial, quint64 playtime, bool sync);
|
||||
void AddPlaytime(const QString& serial, quint64 elapsed, bool sync);
|
||||
quint64 GetPlaytime(const QString& serial);
|
||||
|
||||
void SetLastPlayed(const QString& serial, const QString& date);
|
||||
void SetLastPlayed(const QString& serial, const QString& date, bool sync);
|
||||
QString GetLastPlayed(const QString& serial);
|
||||
private:
|
||||
QMap<QString, quint64> m_playtime;
|
||||
|
@ -265,9 +265,8 @@ void rsx_debugger::closeEvent(QCloseEvent* event)
|
||||
for (int i = 0; i < m_tw_rsx->count(); i++)
|
||||
states[QString::number(i)] = (static_cast<QTableWidget*>(m_tw_rsx->widget(i)))->horizontalHeader()->saveState();
|
||||
|
||||
m_gui_settings->SetValue(gui::rsx_states, states);
|
||||
m_gui_settings->SetValue(gui::rsx_geometry, saveGeometry());
|
||||
m_gui_settings->sync();
|
||||
m_gui_settings->SetValue(gui::rsx_states, states, false);
|
||||
m_gui_settings->SetValue(gui::rsx_geometry, saveGeometry(), true);
|
||||
|
||||
QDialog::closeEvent(event);
|
||||
}
|
||||
|
@ -585,13 +585,12 @@ void save_manager_dialog::SetIconSize(int size)
|
||||
{
|
||||
m_icon_size = QSize(size, size * 176 / 320);
|
||||
UpdateIcons();
|
||||
m_gui_settings->SetValue(gui::sd_icon_size, size);
|
||||
m_gui_settings->SetValue(gui::sd_icon_size, size, false); // Don't sync while sliding
|
||||
}
|
||||
|
||||
void save_manager_dialog::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::sd_geometry, saveGeometry());
|
||||
m_gui_settings->sync();
|
||||
|
||||
QDialog::closeEvent(event);
|
||||
}
|
||||
|
@ -32,19 +32,24 @@ QString settings::ComputeSettingsDir()
|
||||
return QString::fromStdString(fs::get_config_dir()) + "/GuiConfigs/";
|
||||
}
|
||||
|
||||
void settings::RemoveValue(const QString& key, const QString& name) const
|
||||
void settings::RemoveValue(const QString& key, const QString& name, bool sync) const
|
||||
{
|
||||
if (m_settings)
|
||||
{
|
||||
m_settings->beginGroup(key);
|
||||
m_settings->remove(name);
|
||||
m_settings->endGroup();
|
||||
|
||||
if (sync)
|
||||
{
|
||||
m_settings->sync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void settings::RemoveValue(const gui_save& entry) const
|
||||
void settings::RemoveValue(const gui_save& entry, bool sync) const
|
||||
{
|
||||
RemoveValue(entry.key, entry.name);
|
||||
RemoveValue(entry.key, entry.name, sync);
|
||||
}
|
||||
|
||||
QVariant settings::GetValue(const QString& key, const QString& name, const QVariant& def) const
|
||||
@ -74,30 +79,35 @@ q_pair_list settings::Var2List(const QVariant& var)
|
||||
return list;
|
||||
}
|
||||
|
||||
void settings::SetValue(const gui_save& entry, const QVariant& value) const
|
||||
void settings::SetValue(const gui_save& entry, const QVariant& value, bool sync) const
|
||||
{
|
||||
if (m_settings)
|
||||
{
|
||||
m_settings->beginGroup(entry.key);
|
||||
m_settings->setValue(entry.name, value);
|
||||
m_settings->endGroup();
|
||||
}
|
||||
SetValue(entry.key, entry.name, value, sync);
|
||||
}
|
||||
|
||||
void settings::SetValue(const QString& key, const QVariant& value) const
|
||||
void settings::SetValue(const QString& key, const QVariant& value, bool sync) const
|
||||
{
|
||||
if (m_settings)
|
||||
{
|
||||
m_settings->setValue(key, value);
|
||||
|
||||
if (sync)
|
||||
{
|
||||
m_settings->sync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void settings::SetValue(const QString& key, const QString& name, const QVariant& value) const
|
||||
void settings::SetValue(const QString& key, const QString& name, const QVariant& value, bool sync) const
|
||||
{
|
||||
if (m_settings)
|
||||
{
|
||||
m_settings->beginGroup(key);
|
||||
m_settings->setValue(name, value);
|
||||
m_settings->endGroup();
|
||||
|
||||
if (sync)
|
||||
{
|
||||
m_settings->sync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -40,13 +40,13 @@ public:
|
||||
|
||||
public Q_SLOTS:
|
||||
/** Remove entry */
|
||||
void RemoveValue(const QString& key, const QString& name) const;
|
||||
void RemoveValue(const gui_save& entry) const;
|
||||
void RemoveValue(const QString& key, const QString& name, bool sync = true) const;
|
||||
void RemoveValue(const gui_save& entry, bool sync = true) const;
|
||||
|
||||
/** Write value to entry */
|
||||
void SetValue(const gui_save& entry, const QVariant& value) const;
|
||||
void SetValue(const QString& key, const QVariant& value) const;
|
||||
void SetValue(const QString& key, const QString& name, const QVariant& value) const;
|
||||
void SetValue(const gui_save& entry, const QVariant& value, bool sync = true) const;
|
||||
void SetValue(const QString& key, const QVariant& value, bool sync = true) const;
|
||||
void SetValue(const QString& key, const QString& name, const QVariant& value, bool sync = true) const;
|
||||
|
||||
protected:
|
||||
static QString ComputeSettingsDir();
|
||||
|
@ -200,8 +200,8 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
||||
Q_EMIT EmuSettingsApplied();
|
||||
|
||||
// Discord Settings can be saved regardless of WITH_DISCORD_RPC
|
||||
m_gui_settings->SetValue(gui::m_richPresence, m_use_discord);
|
||||
m_gui_settings->SetValue(gui::m_discordState, m_discord_state);
|
||||
m_gui_settings->SetValue(gui::m_richPresence, m_use_discord, false);
|
||||
m_gui_settings->SetValue(gui::m_discordState, m_discord_state, true);
|
||||
|
||||
#ifdef WITH_DISCORD_RPC
|
||||
if (m_use_discord != use_discord_old)
|
||||
@ -2471,7 +2471,6 @@ void settings_dialog::refresh_countrybox()
|
||||
void settings_dialog::closeEvent([[maybe_unused]] QCloseEvent* event)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::cfg_geometry, saveGeometry());
|
||||
m_gui_settings->sync();
|
||||
}
|
||||
|
||||
settings_dialog::~settings_dialog()
|
||||
|
@ -91,8 +91,9 @@ void shortcut_dialog::save()
|
||||
|
||||
for (const auto& entry : m_values)
|
||||
{
|
||||
m_gui_settings->SetValue(sc_settings.get_shortcut_gui_save(entry.first), entry.second);
|
||||
m_gui_settings->SetValue(sc_settings.get_shortcut_gui_save(entry.first), entry.second, false);
|
||||
}
|
||||
m_gui_settings->sync();
|
||||
|
||||
Q_EMIT saved();
|
||||
}
|
||||
|
@ -1300,11 +1300,10 @@ bool trophy_manager_dialog::eventFilter(QObject *object, QEvent *event)
|
||||
void trophy_manager_dialog::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
// Save gui settings
|
||||
m_gui_settings->SetValue(gui::tr_geometry, saveGeometry());
|
||||
m_gui_settings->SetValue(gui::tr_splitterState, m_splitter->saveState());
|
||||
m_gui_settings->SetValue(gui::tr_games_state, m_game_table->horizontalHeader()->saveState());
|
||||
m_gui_settings->SetValue(gui::tr_trophy_state, m_trophy_table->horizontalHeader()->saveState());
|
||||
m_gui_settings->sync();
|
||||
m_gui_settings->SetValue(gui::tr_geometry, saveGeometry(), false);
|
||||
m_gui_settings->SetValue(gui::tr_splitterState, m_splitter->saveState(), false);
|
||||
m_gui_settings->SetValue(gui::tr_games_state, m_game_table->horizontalHeader()->saveState(), false);
|
||||
m_gui_settings->SetValue(gui::tr_trophy_state, m_trophy_table->horizontalHeader()->saveState(), true);
|
||||
|
||||
QWidget::closeEvent(event);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user