87 lines
2.3 KiB
C++
87 lines
2.3 KiB
C++
|
#include "ArtConfigWindow.h"
|
||
|
|
||
|
#include <QDateEdit>
|
||
|
#include <QFile>
|
||
|
#include <QFileInfo>
|
||
|
#include <QFormLayout>
|
||
|
#include <QGroupBox>
|
||
|
#include <QHBoxLayout>
|
||
|
#include <QJsonArray>
|
||
|
#include <QJsonDocument>
|
||
|
#include <QLabel>
|
||
|
#include <QLineEdit>
|
||
|
#include <QPushButton>
|
||
|
#include <QScrollArea>
|
||
|
#include <QTextEdit>
|
||
|
|
||
|
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();
|
||
|
}
|
||
|
|