Roms List improvements

This commit is contained in:
2026-06-14 22:30:10 +02:00
parent 95d202f378
commit 10d3daf86a
7 changed files with 160 additions and 92 deletions
+27
View File
@@ -3,6 +3,7 @@
#include <QFileDialog>
#include <QCoreApplication>
#include <log.hpp>
#include <QPushButton>
GeneralSettings::GeneralSettings() : settings(QSettings::UserScope) {
selectedRomsFolderLabel = new QLabel(Options::GetRomsPath().c_str());
@@ -19,6 +20,9 @@ GeneralSettings::GeneralSettings() : settings(QSettings::UserScope) {
auto dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), QCoreApplication::applicationDirPath(),
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
if (dir.isEmpty())
return;
selectedSavesFolderLabel->setText(dir);
Options::SetSavesPath(dir.toStdString());
settings.setValue("saves_path", dir);
@@ -29,6 +33,9 @@ GeneralSettings::GeneralSettings() : settings(QSettings::UserScope) {
auto dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), QCoreApplication::applicationDirPath(),
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
if (dir.isEmpty())
return;
selectedRomsFolderLabel->setText(dir);
Options::SetRomsPath(dir.toStdString());
settings.setValue("roms_path", dir);
@@ -38,12 +45,32 @@ GeneralSettings::GeneralSettings() : settings(QSettings::UserScope) {
gl = new QGridLayout();
QPushButton *clearRoms = new QPushButton("Clear");
connect(clearRoms, &QPushButton::clicked, this, [&] {
selectedRomsFolderLabel->clear();
Options::SetRomsPath("");
settings.setValue("roms_path", "");
settings.sync();
emit romFolderCleared();
});
QPushButton *clearSaves = new QPushButton("Clear");
connect(clearSaves, &QPushButton::clicked, this, [&] {
selectedSavesFolderLabel->clear();
Options::SetSavesPath("");
settings.setValue("saves_path", "");
settings.sync();
});
gl->addWidget(new QLabel("ROMs path:"), 0, 0);
gl->addWidget(selectedRomsFolderLabel, 0, 1);
gl->addWidget(romsFolderSelectButton, 0, 2);
gl->addWidget(clearRoms, 0, 3);
gl->addWidget(new QLabel("Saves path:"), 1, 0);
gl->addWidget(selectedSavesFolderLabel, 1, 1);
gl->addWidget(savesFolderSelectButton, 1, 2);
gl->addWidget(clearSaves, 1, 3);
setLayout(gl);
}
@@ -19,4 +19,5 @@ class GeneralSettings final : public QWidget {
signals:
void romFolderSelected();
void romFolderCleared();
};