#include "ArtConfigWindow.h" #include #include #include #include #include #include #include #include #include ArtConfigWindow::ArtConfigWindow(const QString& filename, QWidget* parent) : QDialog(parent) { setWindowModality(Qt::WindowModality::WindowModal); setWindowTitle(filename); auto mainLayout = new QHBoxLayout(); setLayout(mainLayout); auto formLayout = new QFormLayout(); auto formLayoutWidget = new QWidget(); formLayoutWidget->setMaximumWidth(450); formLayoutWidget->setLayout(formLayout); mainLayout->addWidget(formLayoutWidget); QScrollArea* galleryScrollArea = new QScrollArea(); formLayout->addWidget(galleryScrollArea); m_newBannerEdit = new QLineEdit(); formLayout->addRow("New Banner", m_newBannerEdit); m_commissionsOpen = new QCheckBox(); formLayout->addRow("Commissions Open", m_commissionsOpen); auto bottomButtonLayout = new QHBoxLayout(); formLayout->addRow(bottomButtonLayout); auto cancelButton = new QPushButton(QIcon::fromTheme("dialog-close"), "Cancel"); connect(cancelButton, &QPushButton::clicked, this, [=] { close(); }); bottomButtonLayout->addWidget(cancelButton); bottomButtonLayout->addStretch(1); auto saveButton = new QPushButton(QIcon::fromTheme("dialog-ok"), "Save"); connect(saveButton, &QPushButton::clicked, this, [=] { saveData(filename); }); bottomButtonLayout->addWidget(saveButton); if(QFile::exists(filename)) { loadData(filename); } } void ArtConfigWindow::loadData(const QString& filename) { qDebug() << "Loading data from" << filename; QFile artFile(filename); artFile.open(QFile::ReadOnly); QJsonDocument artJson = QJsonDocument::fromJson(artFile.readAll()); m_newBannerEdit->setText(artJson["new-banner"].toString()); m_commissionsOpen->setChecked(artJson["commissions"].toBool()); } void ArtConfigWindow::saveData(const QString& filename) { qDebug() << "Saving data to" << filename; QJsonObject object; object["new-banner"] = m_newBannerEdit->text(); object["commissions"] = m_commissionsOpen->isChecked(); QJsonDocument jsonDoc(object); QFile file(filename); file.open(QFile::WriteOnly); file.write(jsonDoc.toJson()); file.close(); close(); }