summaryrefslogtreecommitdiff
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)
100 current_worker = std::move(worker); 100 current_worker = std::move(worker);
101} 101}
102 102
103void GameList::SaveInterfaceLayout(QSettings& settings)
104{
105 settings.beginGroup("UILayout");
106 settings.setValue("gameListHeaderState", tree_view->header()->saveState());
107 settings.endGroup();
108}
109
110void GameList::LoadInterfaceLayout(QSettings& settings)
111{
112 auto header = tree_view->header();
113 settings.beginGroup("UILayout");
114 header->restoreState(settings.value("gameListHeaderState").toByteArray());
115 settings.endGroup();
116
117 item_model->sort(header->sortIndicatorSection(), header->sortIndicatorOrder());
118}
119
103void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool deep_scan) 120void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool deep_scan)
104{ 121{
105 const auto callback = [&](const std::string& directory, 122 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 @@
5#pragma once 5#pragma once
6 6
7#include <QModelIndex> 7#include <QModelIndex>
8#include <QSettings>
8#include <QStandardItem> 9#include <QStandardItem>
9#include <QStandardItemModel> 10#include <QStandardItemModel>
10#include <QString> 11#include <QString>
@@ -30,6 +31,9 @@ public:
30 31
31 void PopulateAsync(const QString& dir_path, bool deep_scan); 32 void PopulateAsync(const QString& dir_path, bool deep_scan);
32 33
34 void SaveInterfaceLayout(QSettings& settings);
35 void LoadInterfaceLayout(QSettings& settings);
36
33public slots: 37public slots:
34 void AddEntry(QList<QStandardItem*> entry_items); 38 void AddEntry(QList<QStandardItem*> entry_items);
35 39
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)
141 microProfileDialog->setVisible(settings.value("microProfileDialogVisible").toBool()); 141 microProfileDialog->setVisible(settings.value("microProfileDialogVisible").toBool());
142 settings.endGroup(); 142 settings.endGroup();
143 143
144 game_list->LoadInterfaceLayout(settings);
145
144 ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); 146 ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer);
145 SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); 147 SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked());
146 148
@@ -490,6 +492,7 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
490 settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked()); 492 settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
491 settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked()); 493 settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked());
492 settings.setValue("firstStart", false); 494 settings.setValue("firstStart", false);
495 game_list->SaveInterfaceLayout(settings);
493 SaveHotkeys(settings); 496 SaveHotkeys(settings);
494 497
495 // Shutdown session if the emu thread is active... 498 // Shutdown session if the emu thread is active...