X-Git-Url: https://vaikene.ee/gitweb/pswgen09.html?a=blobdiff_plain;f=src%2Fapps%2FPswGen%2FGUI%2Fgui.cpp;h=9ab2645b9bb745b5aa61ab95bbb0a5a8beecb64c;hb=f92a5564be90f1e631b43e4978b798a146f70d59;hp=5ebbf105d35de903c65b4f70beda24baad01afec;hpb=a1941ef19ec631bf25c883c541f6841f8e2d7252;p=evaf
diff --git a/src/apps/PswGen/GUI/gui.cpp b/src/apps/PswGen/GUI/gui.cpp
index 5ebbf10..9ab2645 100644
--- a/src/apps/PswGen/GUI/gui.cpp
+++ b/src/apps/PswGen/GUI/gui.cpp
@@ -3,7 +3,7 @@
* @brief GUI for the PswGen application
* @author Enar Vaikene
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2012 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
@@ -27,18 +27,18 @@
#include
#include
#include
+#include
#include
-using namespace eVaf;
-
VER_EXPORT_VERSION_INFO()
-Q_EXPORT_PLUGIN2(VER_MODULE_NAME_STR, PswGen::GUI::Module)
+Q_EXPORT_PLUGIN2(VER_MODULE_NAME_STR, eVaf::PswGen::GUI::Module)
//-------------------------------------------------------------------
+using namespace eVaf;
using namespace eVaf::PswGen::GUI;
int const Module::DefaultPasswordLength = 16;
@@ -75,17 +75,30 @@ bool Module::init(QString const & args)
SdiWindow::iSdiWindow * win = evafQueryInterface("iSdiWindow");
EVAF_TEST_X(win, "No iSdiWindow interface");
+ Gui::Panel * panel = new Gui::Panel;
+ win->addPanel("PswGen", panel);
+
QVBoxLayout * v = new QVBoxLayout;
- win->widget()->setLayout(v);
+ panel->setLayout(v);
QGridLayout * g = new QGridLayout;
v->addLayout(g);
g->setColumnStretch(2, 2);
- QLabel * l = new QLabel(tr("Web site or application &name:", VER_MODULE_NAME_STR));
+ QLabel * l = new QLabel(tr("Master &password:", VER_MODULE_NAME_STR));
l->setAlignment(Qt::AlignRight);
g->addWidget(l, 0, 0);
+ wMasterPassword = new QLineEdit;
+ l->setBuddy(wMasterPassword);
+ connect(wMasterPassword, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
+ wMasterPassword->setEchoMode(QLineEdit::Password);
+ g->addWidget(wMasterPassword, 0, 1, 1, 2);
+
+ l = new QLabel(tr("Web site or application &name:", VER_MODULE_NAME_STR));
+ l->setAlignment(Qt::AlignRight);
+ g->addWidget(l, 1, 0);
+
wName = new QLineEdit;
l->setBuddy(wName);
if (mStorage) {
@@ -95,37 +108,38 @@ bool Module::init(QString const & args)
wName->setCompleter(completer);
}
connect(wName, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
- g->addWidget(wName, 0, 1, 1, 2);
- win->widget()->setFocusProxy(wName);
+ g->addWidget(wName, 1, 1, 1, 2);
+ panel->setFocusProxy(wName);
- l = new QLabel(tr("Master &password:", VER_MODULE_NAME_STR));
+ l = new QLabel(tr("&Suffix:", VER_MODULE_NAME_STR));
l->setAlignment(Qt::AlignRight);
- g->addWidget(l, 1, 0);
+ g->addWidget(l, 2, 0);
- wMasterPassword = new QLineEdit;
- l->setBuddy(wMasterPassword);
- connect(wMasterPassword, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
- wMasterPassword->setEchoMode(QLineEdit::Password);
- g->addWidget(wMasterPassword, 1, 1, 1, 2);
+ wSuffix = new QLineEdit;
+ l->setBuddy(wSuffix);
+ g->addWidget(wSuffix, 2, 1, 1, 2);
l = new QLabel(tr("&Length of the password:", VER_MODULE_NAME_STR));
l->setAlignment(Qt::AlignRight);
- g->addWidget(l, 2, 0);
+ g->addWidget(l, 3, 0);
wLength = new QSpinBox;
l->setBuddy(wLength);
wLength->setRange(0, mGenerator->maxLength());
wLength->setValue(DefaultPasswordLength);
wLength->setSpecialValueText(tr("Maximum", VER_MODULE_NAME_STR));
- g->addWidget(wLength, 2, 1);
+ g->addWidget(wLength, 3, 1);
+
+ wAlNum = new QCheckBox(tr("&Alpha-Numeric only", VER_MODULE_NAME_STR));
+ g->addWidget(wAlNum, 3, 2);
l = new QLabel(tr("Password:"));
l->setAlignment(Qt::AlignRight);
- g->addWidget(l, 3, 0);
+ g->addWidget(l, 4, 0);
wPassword = new QLineEdit;
wPassword->setReadOnly(true);
- g->addWidget(wPassword, 3, 1, 1, 2);
+ g->addWidget(wPassword, 4, 1, 1, 2);
v->addStretch();
@@ -144,15 +158,15 @@ bool Module::init(QString const & args)
connect(wCopy, SIGNAL(clicked()), this, SLOT(copyClicked()));
h->addWidget(wCopy);
- QAction * a = new QAction(win->widget());
+ QAction * a = new QAction(panel);
a->setShortcut(Qt::Key_Return);
connect(a, SIGNAL(triggered()), this, SLOT(generateClicked()));
- win->widget()->addAction(a);
+ panel->addAction(a);
- a = new QAction(win->widget());
+ a = new QAction(panel);
a->setShortcut(Qt::Key_Escape);
connect(a, SIGNAL(triggered()), qApp, SLOT(quit()));
- win->widget()->addAction(a);
+ panel->addAction(a);
mReady = true;
@@ -173,8 +187,11 @@ void Module::textChanged(QString const &)
wGenerate->setDisabled(wMasterPassword->text().isEmpty() || wName->text().isEmpty());
if (!wName->text().isEmpty() && mStorage) {
QExplicitlySharedDataPointer data = mStorage->query(wName->text());
- if (data)
+ if (data) {
wLength->setValue(data->length());
+ wSuffix->setText(data->suffix());
+ wAlNum->setChecked(data->flags() & uint(iGenerator::ALPHANUMERIC));
+ }
}
}
@@ -182,14 +199,27 @@ void Module::generateClicked()
{
if (wMasterPassword->text().isEmpty() || wName->text().isEmpty())
return;
- wPassword->setText(mGenerator->generatePassword(wName->text(), wMasterPassword->text(), wLength->value()));
+ uint flags = 0;
+ if (wAlNum->isChecked())
+ flags |= iGenerator::ALPHANUMERIC;
+ wPassword->setText(mGenerator->generatePassword(wName->text() + wSuffix->text(),
+ wMasterPassword->text(),
+ wLength->value(),
+ flags));
wCopy->setEnabled(true);
if (mStorage) {
QExplicitlySharedDataPointer data = mStorage->query(wName->text());
- if (!data)
- data = new Storage::Data(wLength->value());
- else
+ if (!data) {
+ data = new Storage::Data(wName->text(), wSuffix->text(), wLength->value());
+ }
+ else {
+ data->setSuffix(wSuffix->text());
data->setLength(wLength->value());
+ if (wAlNum->isChecked())
+ data->setFlags(data->flags() | iGenerator::ALPHANUMERIC);
+ else
+ data->setFlags(data->flags() & ~uint(iGenerator::ALPHANUMERIC));
+ }
mStorage->save(wName->text(), data);
}
}