diff --git a/gui/include/registdialog.h b/gui/include/registdialog.h index 4666993..332e6d6 100644 --- a/gui/include/registdialog.h +++ b/gui/include/registdialog.h @@ -47,7 +47,7 @@ class RegistDialog : public QDialog void ValidateInput(); public: - explicit RegistDialog(Settings *settings, QString host = QString(), QWidget *parent = nullptr); + explicit RegistDialog(Settings *settings, const QString &host = QString(), QWidget *parent = nullptr); ~RegistDialog(); public slots: diff --git a/gui/include/settingsdialog.h b/gui/include/settingsdialog.h index 09eb150..74a33f1 100644 --- a/gui/include/settingsdialog.h +++ b/gui/include/settingsdialog.h @@ -36,6 +36,7 @@ class SettingsDialog : public QDialog private slots: void UpdateRegisteredHosts(); void UpdateRegisteredHostsButtons(); + void RegisterNewHost(); void DeleteRegisteredHost(); public: diff --git a/gui/src/mainwindow.cpp b/gui/src/mainwindow.cpp index 7387289..d64c4cb 100644 --- a/gui/src/mainwindow.cpp +++ b/gui/src/mainwindow.cpp @@ -115,10 +115,15 @@ void MainWindow::ServerItemWidgetTriggered() return; const auto &server = display_servers[index]; - // TODO: check if already registered and connect - - RegistDialog regist_dialog(settings, server.GetHostAddr(), this); - regist_dialog.exec(); + if(server.registered) + { + // TODO: connect + } + else + { + RegistDialog regist_dialog(settings, server.GetHostAddr(), this); + regist_dialog.exec(); + } } void MainWindow::UpdateDiscoveryEnabled() diff --git a/gui/src/registdialog.cpp b/gui/src/registdialog.cpp index c352e0a..1d069cc 100644 --- a/gui/src/registdialog.cpp +++ b/gui/src/registdialog.cpp @@ -33,7 +33,7 @@ Q_DECLARE_METATYPE(ChiakiLogLevel) static const QRegularExpression pin_re(QString("[0-9]").repeated(PIN_LENGTH)); -RegistDialog::RegistDialog(Settings *settings, QString host, QWidget *parent) +RegistDialog::RegistDialog(Settings *settings, const QString &host, QWidget *parent) : QDialog(parent), settings(settings) { @@ -47,7 +47,10 @@ RegistDialog::RegistDialog(Settings *settings, QString host, QWidget *parent) host_edit = new QLineEdit(this); form_layout->addRow(tr("Host:"), host_edit); - host_edit->setText(host); + if(host.isEmpty()) + host_edit->setText("255.255.255.255"); + else + host_edit->setText(host); psn_id_edit = new QLineEdit(this); form_layout->addRow(tr("PSN ID (username):"), psn_id_edit); diff --git a/gui/src/settingsdialog.cpp b/gui/src/settingsdialog.cpp index 64769e2..785a6d7 100644 --- a/gui/src/settingsdialog.cpp +++ b/gui/src/settingsdialog.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -46,6 +47,7 @@ SettingsDialog::SettingsDialog(Settings *settings, QWidget *parent) : QDialog(pa auto register_new_button = new QPushButton(tr("Register New"), this); registered_hosts_buttons_layout->addWidget(register_new_button); + connect(register_new_button, &QPushButton::clicked, this, &SettingsDialog::RegisterNewHost); delete_registered_host_button = new QPushButton(tr("Delete"), this); registered_hosts_buttons_layout->addWidget(delete_registered_host_button); @@ -81,6 +83,12 @@ void SettingsDialog::UpdateRegisteredHostsButtons() delete_registered_host_button->setEnabled(registered_hosts_list_widget->currentIndex().isValid()); } +void SettingsDialog::RegisterNewHost() +{ + RegistDialog dialog(settings, QString(), this); + dialog.exec(); +} + void SettingsDialog::DeleteRegisteredHost() { auto item = registered_hosts_list_widget->currentItem();