summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/pwgenwndimpl.cpp
authorulf69 <ulf69>2004-09-15 17:53:22 (UTC)
committer ulf69 <ulf69>2004-09-15 17:53:22 (UTC)
commitd3925ba5bd25224bc4a60d3d6a107c464994a1ea (patch) (side-by-side diff)
tree60f69da1d2b79ee3081e7ef5c09a46470ca6eda0 /pwmanager/pwmanager/pwgenwndimpl.cpp
parentce83a3479d23b9e8a59c745ccd0a0b14f64ef4e8 (diff)
downloadkdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.zip
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.gz
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.bz2
initial revision
Diffstat (limited to 'pwmanager/pwmanager/pwgenwndimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/pwgenwndimpl.cpp112
1 files changed, 112 insertions, 0 deletions
diff --git a/pwmanager/pwmanager/pwgenwndimpl.cpp b/pwmanager/pwmanager/pwgenwndimpl.cpp
new file mode 100644
index 0000000..01f5740
--- a/dev/null
+++ b/pwmanager/pwmanager/pwgenwndimpl.cpp
@@ -0,0 +1,112 @@
+/***************************************************************************
+ * *
+ * copyright (C) 2004 by Michael Buesch *
+ * email: mbuesch@freenet.de *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License version 2 *
+ * as published by the Free Software Foundation. *
+ * *
+ ***************************************************************************/
+
+/***************************************************************************
+ * copyright (C) 2004 by Ulf Schenk
+ * This file is originaly based on version 1.0.1 of pwmanager
+ * and was modified to run on embedded devices that run microkde
+ *
+ * $Id$
+ **************************************************************************/
+
+#include "pwgenwndimpl.h"
+#include "pwmexception.h"
+#include "genpasswd.h"
+
+#include <qtabwidget.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <qlineedit.h>
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+
+PwGenWndImpl::PwGenWndImpl(QWidget *parent,
+ const char *name,
+ bool modal,
+ WFlags fl)
+ : pwGenWnd(parent, name, modal, fl)
+{
+}
+
+PwGenWndImpl::~PwGenWndImpl()
+{
+}
+
+void PwGenWndImpl::genButton_slot()
+{
+ // internal generator
+ if (!optionsSanityIntGen())
+ return;
+ if (startIntGen())
+ goto exit_success;
+ done(0);
+exit_success:
+ done(1);
+}
+
+void PwGenWndImpl::cancelButton_slot()
+{
+ done(0);
+}
+
+bool PwGenWndImpl::optionsSanityIntGen()
+{
+ if (int_charLowerCheckBox->isChecked())
+ return true;
+ if (int_charUpperCheckBox->isChecked())
+ return true;
+ if (int_charNumCheckBox->isChecked())
+ return true;
+ if (int_charSpecCheckBox->isChecked())
+ return true;
+ if (int_charUserCheckBox->isChecked()) {
+ if (int_userDefLineEdit->text().length() >= 2)
+ return true;
+ if (int_charBlankCheckBox->isChecked())
+ return true;
+ }
+ KMessageBox::error(this,
+ i18n("Incorrect Charset selection!\n"
+ "It's impossible to generate a sane "
+ "password with the selected charset(s).\n"
+ "Please select more charsets."),
+ i18n("Incorrect Charset selection"));
+ return false;
+}
+
+bool PwGenWndImpl::startIntGen()
+{
+ GenPasswd gen;
+ gen.setLen(int_lenSpinBox->value());
+ gen.setUseFilter(int_filterCheckBox->isChecked());
+ gen.setCharset(int_charLowerCheckBox->isChecked(),
+ int_charUpperCheckBox->isChecked(),
+ int_charNumCheckBox->isChecked(),
+ int_charSpecCheckBox->isChecked(),
+ int_charBlankCheckBox->isChecked(),
+ int_charUserCheckBox->isChecked() ?
+ int_userDefLineEdit->text() :
+ QString::null);
+ QString pw(gen.gen());
+ if (pw.isEmpty())
+ return false;
+ password = pw;
+ return true;
+}
+
+QString PwGenWndImpl::getPassword()
+{
+ QString ret(password);
+ password = QString::null;
+ return ret;
+}