From 41329fae5f819eee8c394571125f11f0a0b67cd9 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 23 Jun 2018 12:50:10 +0200 Subject: Add ConfigurationEditor plugin Removed poi-config --- config/settingsdialog.cpp | 98 ----------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 config/settingsdialog.cpp (limited to 'config/settingsdialog.cpp') diff --git a/config/settingsdialog.cpp b/config/settingsdialog.cpp deleted file mode 100644 index 5ff4328..0000000 --- a/config/settingsdialog.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * This file is part of smolbote. It's copyrighted by the contributors recorded - * in the version control history of the file, available from its original - * location: https://neueland.iserlohn-fortress.net/smolbote.hg - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "settingsdialog.h" -#include -#include -#include -#include -#include -#include -#include - -SettingsDialog::SettingsDialog(Configuration *config, QWidget *parent) - : QMainWindow(parent) -{ - resize(800, 600); - - // main menu - settingsMenu.setTitle(tr("Settings")); - - auto *saveAction = settingsMenu.addAction(tr("Save")); - saveAction->setShortcut(QKeySequence::Save); - - auto *saveAsAction = settingsMenu.addAction(tr("Save As")); - saveAsAction->setShortcut(QKeySequence::SaveAs); - - settingsMenu.addAction(tr("Quit"), qApp, &QApplication::quit, QKeySequence::Quit); - - menuBar()->addMenu(&settingsMenu); - - setCentralWidget(&treeWidget); - treeWidget.setColumnCount(2); - treeWidget.setHeaderLabels({ tr("setting"), tr("value") }); - treeWidget.setEditTriggers(QTreeWidget::NoEditTriggers); - connect(&treeWidget, &QTreeWidget::itemDoubleClicked, this, &SettingsDialog::editItem); - - for(const auto &option : config->options()) { - auto *item = new QTreeWidgetItem(&treeWidget); - item->setText(0, QString::fromStdString(option->long_name())); - item->setText(1, QString::fromStdString(config->value(option->long_name().c_str()).value_or(std::string()))); - item->setFlags(item->flags() | Qt::ItemIsEditable); - } - - treeWidget.resizeColumnToContents(0); - - // connect signals - connect(saveAction, &QAction::triggered, this, [this]() { - write(configPath); - statusBar()->showMessage(tr("Configuration saved to: ") + configPath, 3000); - }); - - connect(saveAsAction, &QAction::triggered, this, [this]() { - QString path = QFileDialog::getSaveFileName(this, tr("Save Configuration"), configPath, tr("smolbote config (smolbote.cfg)")); - if(!path.isEmpty()) { - write(path); - statusBar()->showMessage(tr("Configuration saved to: ") + path, 3000); - } - }); -} - -SettingsDialog::~SettingsDialog() -{ - if(unsavedChanges) - write(configPath); -} - -void SettingsDialog::editItem(QTreeWidgetItem *item, int column) -{ - if(column == 1) { - treeWidget.editItem(item, column); - unsavedChanges = true; - - if(!windowTitle().endsWith('*')) { - setWindowTitle(windowTitle() + '*'); - } - } -} - -void SettingsDialog::write(const QString &path) -{ - QFile output(path); - output.open(QIODevice::WriteOnly); - - for(int i = 0; i < treeWidget.topLevelItemCount(); ++i) { - auto *item = treeWidget.topLevelItem(i); - output.write(QString(item->text(0) + " = " + item->text(1) + "\n").toUtf8()); - } - - output.close(); - - unsavedChanges = false; - setWindowTitle(configPath); -} -- cgit v1.2.1