diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
index dfb41bd..3820a80 100644
--- a/gui/CMakeLists.txt
+++ b/gui/CMakeLists.txt
@@ -42,7 +42,9 @@ add_executable(chiaki
include/registdialog.h
src/registdialog.cpp
include/host.h
- src/host.cpp)
+ src/host.cpp
+ include/settingsdialog.h
+ src/settingsdialog.cpp)
target_include_directories(chiaki PRIVATE include)
target_link_libraries(chiaki chiaki-lib chiaki-cli-lib)
diff --git a/gui/include/settingsdialog.h b/gui/include/settingsdialog.h
new file mode 100644
index 0000000..7f2d255
--- /dev/null
+++ b/gui/include/settingsdialog.h
@@ -0,0 +1,39 @@
+/*
+ * This file is part of Chiaki.
+ *
+ * Chiaki is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chiaki is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Chiaki. If not, see .
+ */
+
+#ifndef CHIAKI_SETTINGSDIALOG_H
+#define CHIAKI_SETTINGSDIALOG_H
+
+#include
+
+class Settings;
+class QListWidget;
+
+class SettingsDialog : public QDialog
+{
+ Q_OBJECT
+
+ private:
+ Settings *settings;
+
+ QListWidget *registered_hosts_list_widget;
+
+ public:
+ SettingsDialog(Settings *settings, QWidget *parent = nullptr);
+};
+
+#endif // CHIAKI_SETTINGSDIALOG_H
diff --git a/gui/src/mainwindow.cpp b/gui/src/mainwindow.cpp
index 08176a3..55caa1d 100644
--- a/gui/src/mainwindow.cpp
+++ b/gui/src/mainwindow.cpp
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
#include
#include
@@ -128,7 +129,8 @@ void MainWindow::UpdateDiscoveryEnabled()
void MainWindow::ShowSettings()
{
- qDebug() << "TODO: ShowSettings()";
+ SettingsDialog dialog(settings, this);
+ dialog.exec();
}
void MainWindow::UpdateDisplayServers()
diff --git a/gui/src/settingsdialog.cpp b/gui/src/settingsdialog.cpp
new file mode 100644
index 0000000..1e94a48
--- /dev/null
+++ b/gui/src/settingsdialog.cpp
@@ -0,0 +1,56 @@
+/*
+ * This file is part of Chiaki.
+ *
+ * Chiaki is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Chiaki is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Chiaki. If not, see .
+ */
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+SettingsDialog::SettingsDialog(Settings *settings, QWidget *parent) : QDialog(parent)
+{
+ this->settings = settings;
+
+ auto layout = new QVBoxLayout(this);
+ setLayout(layout);
+
+ auto registered_hosts_group_box = new QGroupBox(tr("Registered Consoles"));
+ layout->addWidget(registered_hosts_group_box);
+
+ auto registered_hosts_layout = new QHBoxLayout();
+ registered_hosts_group_box->setLayout(registered_hosts_layout);
+
+ registered_hosts_list_widget = new QListWidget(this);
+ registered_hosts_layout->addWidget(registered_hosts_list_widget);
+
+ auto registered_hosts_buttons_layout = new QVBoxLayout();
+ registered_hosts_layout->addLayout(registered_hosts_buttons_layout);
+
+ auto register_new_button = new QPushButton(tr("Register New"), this);
+ registered_hosts_buttons_layout->addWidget(register_new_button);
+
+ auto delete_host_button = new QPushButton(tr("Delete"), this);
+ registered_hosts_buttons_layout->addWidget(delete_host_button);
+
+ registered_hosts_buttons_layout->addStretch();
+
+ auto button_box = new QDialogButtonBox(QDialogButtonBox::Close, this);
+ layout->addWidget(button_box);
+ connect(button_box, &QDialogButtonBox::rejected, this, &QDialog::reject);
+}
\ No newline at end of file