[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: [PATCH] Fix KPasswordDialog to show ok button only when passwords
From: Ravikiran Rajagopal <ravi () ee ! eng ! ohio-state ! edu>
Date: 2003-04-04 18:13:36
[Download RAW message or body]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
The following patch disables the ok button when the two passwords do not
match. We do it at the end anyway, but this is more user-friendly. (Thanks to
Willy for the suggestion.) Is it ok to commit?
Regards,
Ravi
Index: kpassdlg.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kpassdlg.cpp,v
retrieving revision 1.20
diff -u -p -w -r1.20 kpassdlg.cpp
- --- kpassdlg.cpp 27 Feb 2003 22:35:05 -0000 1.20
+++ kpassdlg.cpp 4 Apr 2003 18:09:20 -0000
@@ -46,6 +46,12 @@
* Password line editor.
*/
+class KPasswordDialog::KPasswordDialogPrivate
+{
+public:
+ QLabel *m_MatchLabel;
+};
+
const int KPasswordEdit::PassLen = 100;
KPasswordEdit::KPasswordEdit(QWidget *parent, const char *name)
@@ -208,7 +214,7 @@ KPasswordDialog::KPasswordDialog(Types t
KPasswordDialog::KPasswordDialog(int type, QString prompt, bool enableKeep,
int extraBttn)
: KDialogBase(0L, "Password Dialog", true, "", Ok|Cancel|extraBttn,
- - Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type)
+ Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new
KPasswordDialogPrivate)
{
init();
setPrompt(prompt);
@@ -297,6 +303,17 @@ void KPasswordDialog::init()
m_pEdit2->setMinimumWidth(size.width());
h_lay->addWidget(m_pEdit2, 12);
h_lay->addStretch(4);
+
+ // Row 5: Label saying whether the passwords match
+ m_pGrid->addRowSpacing(10, 10);
+ m_pGrid->setRowStretch(10, 12);
+ d->m_MatchLabel = new QLabel(m_pMain);
+ d->m_MatchLabel->setAlignment(AlignLeft|AlignVCenter|WordBreak);
+ m_pGrid->addMultiCellWidget(d->m_MatchLabel, 11, 11, 0, 2);
+ d->m_MatchLabel->setText(i18n("Passwords do not match"));
+ connect( m_pEdit, SIGNAL(textChanged(const QString&)),
SLOT(enableOkBtn()) );
+ connect( m_pEdit2, SIGNAL(textChanged(const QString&)),
SLOT(enableOkBtn()) );
+ enableOkBtn();
}
erase();
@@ -422,5 +439,15 @@ void KPasswordDialog::disableCoreDumps()
void KPasswordDialog::virtual_hook( int id, void* data )
{ KDialogBase::virtual_hook( id, data ); }
+
+void KPasswordDialog::enableOkBtn()
+{
+ if (m_Type == NewPassword) {
+ bool match = ((strcmp(m_pEdit->password(), m_pEdit2->password()))==0)
+ && (strcmp(m_pEdit->password(), "") != 0);
+ enableButtonOK( match );
+ d->m_MatchLabel->setText( match?QString(i18n("Passwords
match")):QString(i18n("Passwords do not match")) );
+ }
+}
#include "kpassdlg.moc"
Index: kpassdlg.h
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kpassdlg.h,v
retrieving revision 1.19
diff -u -p -w -r1.19 kpassdlg.h
- --- kpassdlg.h 5 Mar 2002 23:13:27 -0000 1.19
+++ kpassdlg.h 4 Apr 2003 18:09:20 -0000
@@ -239,6 +239,9 @@ protected:
* password is valid, @p false otherwise.
*/
virtual bool checkPassword(const char *) { return true; }
+
+private slots:
+ void enableOkBtn();
private:
void init();
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE+jctZbI8Y8y0oVXcRAu8AAJ4+Va49SqHIXEhnpk2+ylCQEhLy8ACdEsp0
bs9YdccxrOC17TANVj/beeQ=
=Tqyd
-----END PGP SIGNATURE-----
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic