summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/citra_qt/game_list.cpp17
-rw-r--r--src/citra_qt/game_list.h4
-rw-r--r--src/citra_qt/main.cpp3
3 files changed, 24 insertions, 0 deletions
diff --git a/src/citra_qt/game_list.cpp b/src/citra_qt/game_list.cpp
index f90e05374..dade3c212 100644
--- a/src/citra_qt/game_list.cpp
+++ b/src/citra_qt/game_list.cpp
@@ -100,6 +100,23 @@ void GameList::PopulateAsync(const QString& dir_path, bool deep_scan)
current_worker = std::move(worker);
}
+void GameList::SaveInterfaceLayout(QSettings& settings)
+{
+ settings.beginGroup("UILayout");
+ settings.setValue("gameListHeaderState", tree_view->header()->saveState());
+ settings.endGroup();
+}
+
+void GameList::LoadInterfaceLayout(QSettings& settings)
+{
+ auto header = tree_view->header();
+ settings.beginGroup("UILayout");
+ header->restoreState(settings.value("gameListHeaderState").toByteArray());
+ settings.endGroup();
+
+ item_model->sort(header->sortIndicatorSection(), header->sortIndicatorOrder());
+}
+
void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool deep_scan)
{
const auto callback = [&](const std::string& directory,
diff --git a/src/citra_qt/game_list.h b/src/citra_qt/game_list.h
index ab09edce3..0950d9622 100644
--- a/src/citra_qt/game_list.h
+++ b/src/citra_qt/game_list.h
@@ -5,6 +5,7 @@
#pragma once
#include <QModelIndex>
+#include <QSettings>
#include <QStandardItem>
#include <QStandardItemModel>
#include <QString>
@@ -30,6 +31,9 @@ public:
void PopulateAsync(const QString& dir_path, bool deep_scan);
+ void SaveInterfaceLayout(QSettings& settings);
+ void LoadInterfaceLayout(QSettings& settings);
+
public slots:
void AddEntry(QList<QStandardItem*> entry_items);
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index c5e338c91..298649aaf 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -141,6 +141,8 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
microProfileDialog->setVisible(settings.value("microProfileDialogVisible").toBool());
settings.endGroup();
+ game_list->LoadInterfaceLayout(settings);
+
ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer);
SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked());
@@ -490,6 +492,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked());
settings.setValue("firstStart", false);
+ game_list->SaveInterfaceLayout(settings);
SaveHotkeys(settings);
// Shutdown session if the emu thread is active...