X-Git-Url: https://vaikene.ee/gitweb/highlight.css?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); } }