summaryrefslogtreecommitdiffstats
path: root/src/pwgui/pwgui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pwgui/pwgui.cpp')
-rw-r--r--src/pwgui/pwgui.cpp39
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);
}