Game list: save and load column sizes, sort order, to QSettings
This commit is contained in:
		@@ -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,
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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...
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user