Add RegistDialog

This commit is contained in:
Florian Märkl 2019-08-14 22:49:18 +02:00
commit 3d325221d1
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
4 changed files with 109 additions and 1 deletions

View file

@ -38,7 +38,9 @@ add_executable(chiaki
include/servericonwidget.h
src/servericonwidget.cpp
include/settings.h
src/settings.cpp)
src/settings.cpp
include/registdialog.h
src/registdialog.cpp)
target_include_directories(chiaki PRIVATE include)
target_link_libraries(chiaki chiaki-lib chiaki-cli-lib)

View file

@ -0,0 +1,48 @@
/*
* 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 <https://www.gnu.org/licenses/>.
*/
#ifndef CHIAKI_REGISTDIALOG_H
#define CHIAKI_REGISTDIALOG_H
#include <chiaki/regist.h>
#include <QDialog>
class Settings;
class QLineEdit;
class RegistDialog : public QDialog
{
Q_OBJECT
private:
Settings *settings;
ChiakiRegist regist;
bool regist_active;
QLineEdit *host_edit;
QLineEdit *psn_id_edit;
QLineEdit *pin_edit;
public:
explicit RegistDialog(Settings *settings, QWidget *parent = nullptr);
~RegistDialog();
};
#endif // CHIAKI_REGISTDIALOG_H

View file

@ -19,6 +19,7 @@
#include <dynamicgridwidget.h>
#include <serveritemwidget.h>
#include <settings.h>
#include <registdialog.h>
#include <QTableWidget>
#include <QVBoxLayout>
@ -50,6 +51,13 @@ MainWindow::MainWindow(Settings *settings, QWidget *parent)
tool_bar_spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Ignored);
tool_bar->addWidget(tool_bar_spacer);
auto regist_action = new QAction(tr("Register"), this);
tool_bar->addAction(regist_action);
connect(regist_action, &QAction::triggered, this, [this]() {
RegistDialog dialog(this->settings, this);
dialog.exec();
});
auto settings_action = new QAction(tr("Settings"), this);
tool_bar->addAction(settings_action);
connect(settings_action, &QAction::triggered, this, &MainWindow::ShowSettings);

50
gui/src/registdialog.cpp Normal file
View file

@ -0,0 +1,50 @@
/*
* 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 <https://www.gnu.org/licenses/>.
*/
#include <registdialog.h>
#include <QFormLayout>
#include <QLineEdit>
#include <QRegularExpressionValidator>
static const QRegularExpression pin_re("[0-9][0-9][0-9][0-9][0-9][0-9]");
RegistDialog::RegistDialog(Settings *settings, QWidget *parent)
: QDialog(parent),
settings(settings)
{
regist_active = false;
auto layout = new QFormLayout(this);
setLayout(layout);
host_edit = new QLineEdit(this);
layout->addRow(tr("Host:"), host_edit);
psn_id_edit = new QLineEdit(this);
layout->addRow(tr("PSN ID (username):"), psn_id_edit);
pin_edit = new QLineEdit(this);
pin_edit->setValidator(new QRegularExpressionValidator(pin_re, pin_edit));
layout->addRow(tr("PIN:"), pin_edit);
}
RegistDialog::~RegistDialog()
{
if(regist_active)
chiaki_regist_fini(&regist);
}