diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-06-23 16:24:24 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-06-23 16:24:24 +0200 |
commit | dd3115fee8fbc20c8d9ac71eb3a13198d29d7f53 (patch) | |
tree | 516ed976f2463504c46ffc2f1eb28d61acfee9f2 /plugins/ConfigurationEditor/forms/configurationdialog.cpp | |
parent | Sort commands alphabetically (diff) | |
download | smolbote-dd3115fee8fbc20c8d9ac71eb3a13198d29d7f53.tar.xz |
Split shortcuts into new tab
Diffstat (limited to 'plugins/ConfigurationEditor/forms/configurationdialog.cpp')
-rw-r--r-- | plugins/ConfigurationEditor/forms/configurationdialog.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/plugins/ConfigurationEditor/forms/configurationdialog.cpp b/plugins/ConfigurationEditor/forms/configurationdialog.cpp new file mode 100644 index 0000000..ffe7f9c --- /dev/null +++ b/plugins/ConfigurationEditor/forms/configurationdialog.cpp @@ -0,0 +1,41 @@ +#include "configurationdialog.h" +#include "ui_configurationdialog.h" +#include <configuration.h> +#include <QKeySequenceEdit> + +ConfigurationDialog::ConfigurationDialog(Configuration *conf, QWidget *parent) : + QDialog(parent), + ui(new Ui::ConfigurationDialog) +{ + ui->setupUi(this); + Q_CHECK_PTR(conf); + + for(const auto &option : conf->options()) { + auto path = QString::fromStdString(option->long_name()); + auto value = QString::fromStdString(conf->value<std::string>(option->long_name().c_str()).value_or("")); + + QTreeWidgetItem *item = nullptr; + if(path.contains("shortcut")) { + item = new QTreeWidgetItem(ui->shortcuts_treeWidget); + auto *edit = new QKeySequenceEdit(value); + connect(edit, &QKeySequenceEdit::keySequenceChanged, this, [=](const QKeySequence &keySequqnce) { + conf->setValue(qUtf8Printable(path), keySequqnce.toString()); + }); + ui->shortcuts_treeWidget->setItemWidget(item, 1, edit); + } else { + item = new QTreeWidgetItem(ui->settings_treeWidget); + item->setText(1, value); + } + + item->setText(0, path); + + } + + ui->settings_treeWidget->resizeColumnToContents(0); + ui->shortcuts_treeWidget->resizeColumnToContents(0); +} + +ConfigurationDialog::~ConfigurationDialog() +{ + delete ui; +} |