From 40de7d18bb5e91c049947344b8c632c40989ad10 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 5 Mar 2018 15:35:32 +0100 Subject: Added poi-config - view default configuration --- config/CMakeLists.txt | 15 +++++++++++++++ config/main.cpp | 21 +++++++++++++++++++++ config/settingsdialog.cpp | 37 +++++++++++++++++++++++++++++++++++++ config/settingsdialog.h | 31 +++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 config/CMakeLists.txt create mode 100644 config/main.cpp create mode 100644 config/settingsdialog.cpp create mode 100644 config/settingsdialog.h (limited to 'config') diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt new file mode 100644 index 0000000..129b2f2 --- /dev/null +++ b/config/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.1.0) + +# Find includes in corresponding build directories +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +add_executable(poi-config + main.cpp + settingsdialog.cpp + settingsdialog.h + ../src/configuration.h + ../src/configuration.cpp + ) + +target_link_libraries(poi-config Qt5::Core Qt5::Widgets) +target_link_libraries(poi-config ${Boost_LIBRARIES}) diff --git a/config/main.cpp b/config/main.cpp new file mode 100644 index 0000000..25751e6 --- /dev/null +++ b/config/main.cpp @@ -0,0 +1,21 @@ +/* + * 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 + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + app.setQuitOnLastWindowClosed(true); + + SettingsDialog dlg; + dlg.show(); + + return app.exec(); +} \ No newline at end of file diff --git a/config/settingsdialog.cpp b/config/settingsdialog.cpp new file mode 100644 index 0000000..56acc01 --- /dev/null +++ b/config/settingsdialog.cpp @@ -0,0 +1,37 @@ +/* + * 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 + +SettingsDialog::SettingsDialog(QWidget *parent) + : QMainWindow(parent) +{ + resize(800, 600); + + // main menu + settingsMenu.setTitle(tr("Settings")); + settingsMenu.addAction(tr("Quit"), qApp, &QApplication::quit, QKeySequence("Ctrl+Q")); + menuBar()->addMenu(&settingsMenu); + + setCentralWidget(&treeWidget); + treeWidget.setColumnCount(2); + + //config.read() + + 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()))); + } +} + +SettingsDialog::~SettingsDialog() = default; diff --git a/config/settingsdialog.h b/config/settingsdialog.h new file mode 100644 index 0000000..82cd1be --- /dev/null +++ b/config/settingsdialog.h @@ -0,0 +1,31 @@ +/* + * 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 + */ + +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include "../src/configuration.h" +#include +#include +#include + +class SettingsDialog : public QMainWindow +{ + Q_OBJECT + +public: + explicit SettingsDialog(QWidget *parent = nullptr); + ~SettingsDialog() override; + +private: + QMenu settingsMenu; + QTreeWidget treeWidget; + Configuration config; +}; + +#endif // SETTINGSDIALOG_H -- cgit v1.2.1