diff options
Diffstat (limited to 'src/pwgui/pwgui.cpp')
-rw-r--r-- | src/pwgui/pwgui.cpp | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/pwgui/pwgui.cpp b/src/pwgui/pwgui.cpp index 448cee8..24c7b0c 100644 --- a/src/pwgui/pwgui.cpp +++ b/src/pwgui/pwgui.cpp @@ -4,14 +4,18 @@ #include <QTimer> #include <QDesktopWidget> +#define BUFLEN 400 + // ____________________________________________________________________________ -PwGui::PwGui(int pfd, QWidget *parent) : +PwGui::PwGui(int pfd, char *user, QWidget *parent) : QMainWindow(parent), ui(new Ui::PwGui), pipefd(pfd) { // Initialize UI - initializeUI(); + initializeUI(user); + connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(on_accept())); + connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(on_reject())); } // ____________________________________________________________________________ @@ -21,16 +25,14 @@ PwGui::~PwGui() } // ____________________________________________________________________________ -void PwGui::initializeUI() +void PwGui::initializeUI(char *user) { ui->setupUi(this); - /* // Prefill username - if (this->user != NULL) { + if (user != NULL) { ui->lineEditUser->setText(QString::fromUtf8(user)); } - */ // Protect password from being seen ui->lineEditPass->setEchoMode(QLineEdit::Password); @@ -43,23 +45,26 @@ void PwGui::initializeUI() // center dialog on screen center QRect desktopRect = QApplication::desktop()->screenGeometry(this); this->move( desktopRect.width()/2-this->width()/2, - desktopRect.height()/2-this->height()/2); + desktopRect.height()/2-this->height()/2 ); } -/* -void PwGui::on_buttonCancel_clicked() +// ____________________________________________________________________________ +void PwGui::on_accept() { - // Quit with code 1 - QCoreApplication::instance()->exit(1); + char buffer[BUFLEN + 1]; + int len = snprintf(buffer, BUFLEN, "%s%c%s%c", ui->lineEditUser->text().toUtf8().constData(), 0, ui->lineEditPass->text().toUtf8().constData(), 0); + if (len > BUFLEN) len = BUFLEN; + buffer[len] = '\0'; + ::write(pipefd, buffer, len); + ::close(pipefd); + // Quit with code 0 + QCoreApplication::instance()->exit(0); } -*/ // ____________________________________________________________________________ -void PwGui::on_checkStatusTimer() +void PwGui::on_reject() { - static int retries = 0; - if (++retries > 20) { - QCoreApplication::instance()->quit(); - } + // Quit with code 1 + QCoreApplication::instance()->exit(1); } |