diff --git a/mainwindow.cpp b/mainwindow.cpp index 4c57191f..e856dfb3 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,5 +1,6 @@ #include "mainwindow.h" #include "ui_mainwindow.h" +#include "popupmanager.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -7,12 +8,13 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); - - myButton = new QPushButton(this); - myButton->setIcon(QIcon(":/res/icon128.png")); - myButton->setIconSize(QSize(128, 128)); - myButton->resize(QSize(128, 128)); - connect(myButton, &QAbstractButton::clicked, this, &MainWindow::on_actionExit_triggered); +// sample code for an iconized button performing an action +// will be useful to implement the game grid UI later +// myButton = new QPushButton(this); +// myButton->setIcon(QIcon(":/res/icon128.png")); +// myButton->setIconSize(QSize(128, 128)); +// myButton->resize(QSize(128, 128)); +// connect(myButton, &QAbstractButton::clicked, this, &MainWindow::on_actionExit_triggered); } void MainWindow::closeEvent(QCloseEvent *event) @@ -35,8 +37,6 @@ void MainWindow::closeEvent(QCloseEvent *event) MainWindow::~MainWindow() { delete ui; - delete myButton; - delete pinMsgBox; } void MainWindow::on_actionExit_triggered() @@ -46,39 +46,12 @@ void MainWindow::on_actionExit_triggered() void MainWindow::on_newHostBtn_clicked() { - bool ok; - QString responseHost - = QInputDialog::getText(this, tr("Add Host Manually"), - tr("IP Address or Hostname of GeForce PC"), - QLineEdit::Normal, - tr("default string"), - &ok); - if (ok && !responseHost.isEmpty()) { - // TODO: send pair request to "responseHost" - } else { - // silently close, user canceled + QString hostname = popupmanager::getHostnameDialog(); + if (!hostname.isEmpty()) { + //TODO: pairTo(hostname) } } -// this opens a non-blocking informative message telling the user to enter the given pin -// it is open-loop: if the user cancels, nothing happens -// it is expected that upon pairing completion, the ::closePinDialog function will be called. -void MainWindow::displayPinDialog(QString pin = tr("ERROR")) { - - pinMsgBox = new QMessageBox( this ); - pinMsgBox->setAttribute( Qt::WA_DeleteOnClose ); //makes sure the msgbox is deleted automatically when closed - pinMsgBox->setStandardButtons( QMessageBox::Ok ); - pinMsgBox->setText("Please enter the number " + pin + " on the GFE dialog on the computer."); - pinMsgBox->setInformativeText("This dialog will be dismissed once complete."); - pinMsgBox->open(); -} - -// to be called when the pairing is complete -void MainWindow::closePinDialog() { - pinMsgBox->close(); -} - - void MainWindow::addHostToDisplay(QMap hostMdnsMap) { QMapIterator i(hostMdnsMap); diff --git a/mainwindow.h b/mainwindow.h index 91b02c6f..58affa92 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -22,15 +22,11 @@ protected: private slots: void on_actionExit_triggered(); void on_newHostBtn_clicked(); - void displayPinDialog(QString pin); - void closePinDialog(); void addHostToDisplay(QMap); void on_selectHostComboBox_activated(const QString &); private: Ui::MainWindow *ui; - QAbstractButton *myButton = nullptr; - QMessageBox *pinMsgBox = nullptr; }; diff --git a/moonlight-qt.pro b/moonlight-qt.pro index cb58a097..4e5f4b53 100644 --- a/moonlight-qt.pro +++ b/moonlight-qt.pro @@ -28,14 +28,16 @@ SOURCES += \ mainwindow.cpp \ nvhttp.cpp \ nvpairingmanager.cpp \ - identitymanager.cpp + identitymanager.cpp \ + popupmanager.cpp HEADERS += \ mainwindow.h \ nvhttp.h \ nvpairingmanager.h \ identitymanager.h \ - utils.h + utils.h \ + popupmanager.h FORMS += \ mainwindow.ui diff --git a/popupmanager.cpp b/popupmanager.cpp new file mode 100644 index 00000000..5d968c14 --- /dev/null +++ b/popupmanager.cpp @@ -0,0 +1,38 @@ +#include "popupmanager.h" + +popupmanager::popupmanager(); + +// this opens a non-blocking informative message telling the user to enter the given pin +// it is open-loop: if the user cancels, nothing happens +// it is expected that upon pairing completion, the ::closePinDialog function will be called. +static void popupmanager::displayPinDialog(QString pin) { + + pinMsgBox = new QMessageBox( this ); + pinMsgBox->setAttribute( Qt::WA_DeleteOnClose ); //makes sure the msgbox is deleted automatically when closed + pinMsgBox->setStandardButtons( QMessageBox::Ok ); + pinMsgBox->setText("Please enter the number " + pin + " on the GFE dialog on the computer."); + pinMsgBox->setInformativeText("This dialog will be dismissed once complete."); + pinMsgBox->open(); +} + +// to be called when the pairing is complete +static void popupmanager::closePinDialog() { + pinMsgBox->close(); + delete pinMsgBox; +} + +static QString popupmanager::getHostnameDialog() { + bool ok; + QString responseHost + = QInputDialog::getText(this, tr("Add Host Manually"), + tr("IP Address or Hostname of GeForce PC"), + QLineEdit::Normal, + tr("default string"), + &ok); + if (ok && !responseHost.isEmpty()) { + return responseHost; + } else { + return tr(""); + } +} + diff --git a/popupmanager.h b/popupmanager.h new file mode 100644 index 00000000..3284af7e --- /dev/null +++ b/popupmanager.h @@ -0,0 +1,18 @@ +#ifndef POPUPMANAGER_H +#define POPUPMANAGER_H + +#include + +class popupmanager +{ +public: + popupmanager(); + static void displayPinDialog(QString pin); + static void closePinDialog(); + static QString getHostnameDialog(); + +private slots: + QMessageBox *pinMsgBox = nullptr; +}; + +#endif // POPUPMANAGER_H