Customizable saves path

This commit is contained in:
Simone Coco
2024-05-20 10:33:52 +02:00
parent 8cb30838ed
commit 315a522dbf
7 changed files with 54 additions and 3 deletions

View File

@@ -2,10 +2,16 @@
#include <QGroupBox>
#include <QVBoxLayout>
#include <QButtonGroup>
#include <QFileDialog>
#include <fmt/core.h>
std::string savePath = "";
SettingsWindow::SettingsWindow() : QWidget(nullptr) {
settings = JSONOpenOrCreate("resources/settings.json");
savePath = JSONGetField<std::string>(settings, "general", "savePath");
if (objectName().isEmpty())
setObjectName("Settings");
@@ -15,9 +21,31 @@ SettingsWindow::SettingsWindow() : QWidget(nullptr) {
cpuSettings = new CPUSettings(settings);
audioSettings = new AudioSettings(settings);
inputSettings = new InputSettings(settings);
generalSettings = new QWidget;
keyMap = inputSettings->GetMappedKeys();
folderLabelPrefix = new QLabel("Save files' path: ");
folderLabel = new QLabel(fmt::format("{}", savePath).c_str());
connect(folderBtn, &QPushButton::pressed, this, [&]() {
savePath = QFileDialog::getExistingDirectory(this, tr("Select directory")).toStdString();
folderLabel->setText(fmt::format("{}", savePath).c_str());
JSONSetField(settings, "general", "savePath", savePath);
apply->setEnabled(true);
});
auto generalLayout = new QHBoxLayout;
auto generalLayoutV = new QVBoxLayout;
generalLayout->addWidget(folderLabelPrefix);
generalLayout->addWidget(folderLabel);
generalLayout->addStretch();
generalLayout->addWidget(folderBtn);
generalLayoutV->addLayout(generalLayout);
generalLayoutV->addStretch();
generalSettings->setLayout(generalLayoutV);
auto* tabs = new QTabWidget;
tabs->addTab(generalSettings, tr("General"));
tabs->addTab(cpuSettings, tr("CPU"));
tabs->addTab(audioSettings, tr("Audio"));
tabs->addTab(inputSettings, tr("Input"));