yuzu-emu
/
yuzu-mainline
Archived
1
0
Fork 0

Game list: save and load column sizes, sort order, to QSettings

This commit is contained in:
archshift 2015-09-06 23:51:57 -07:00
parent 797b91a449
commit 0fae76c741
3 changed files with 24 additions and 0 deletions

View File

@ -100,6 +100,23 @@ void GameList::PopulateAsync(const QString& dir_path, bool deep_scan)
current_worker = std::move(worker); 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) void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, bool deep_scan)
{ {
const auto callback = [&](const std::string& directory, const auto callback = [&](const std::string& directory,

View File

@ -5,6 +5,7 @@
#pragma once #pragma once
#include <QModelIndex> #include <QModelIndex>
#include <QSettings>
#include <QStandardItem> #include <QStandardItem>
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QString> #include <QString>
@ -30,6 +31,9 @@ public:
void PopulateAsync(const QString& dir_path, bool deep_scan); void PopulateAsync(const QString& dir_path, bool deep_scan);
void SaveInterfaceLayout(QSettings& settings);
void LoadInterfaceLayout(QSettings& settings);
public slots: public slots:
void AddEntry(QList<QStandardItem*> entry_items); void AddEntry(QList<QStandardItem*> entry_items);

View File

@ -141,6 +141,8 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
microProfileDialog->setVisible(settings.value("microProfileDialogVisible").toBool()); microProfileDialog->setVisible(settings.value("microProfileDialogVisible").toBool());
settings.endGroup(); settings.endGroup();
game_list->LoadInterfaceLayout(settings);
ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer);
SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); 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("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked()); settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked());
settings.setValue("firstStart", false); settings.setValue("firstStart", false);
game_list->SaveInterfaceLayout(settings);
SaveHotkeys(settings); SaveHotkeys(settings);
// Shutdown session if the emu thread is active... // Shutdown session if the emu thread is active...