diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-06-09 21:02:11 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2012-06-13 21:25:08 +0200 |
commit | 6df0682f8240daf059723bdbb9f22ffe682cd12a (patch) | |
tree | 82de9b305910ba192c471dd24e684376f0458bd5 | |
parent | 67104c35e16d006c4d3d941b49e7b7a38fe8b9d0 (diff) | |
download | tdelibs-6df0682f8240daf059723bdbb9f22ffe682cd12a.tar.gz tdelibs-6df0682f8240daf059723bdbb9f22ffe682cd12a.zip |
Add dynamic label support to kpassworddialog
(cherry picked from commit 3c75231601fb35f0c91022abeee5117c81f70a62)
-rw-r--r-- | kdeui/kpassdlg.cpp | 41 | ||||
-rw-r--r-- | kdeui/kpassdlg.h | 7 |
2 files changed, 43 insertions, 5 deletions
diff --git a/kdeui/kpassdlg.cpp b/kdeui/kpassdlg.cpp index 1a5afd946..292e82a59 100644 --- a/kdeui/kpassdlg.cpp +++ b/kdeui/kpassdlg.cpp @@ -32,6 +32,7 @@ #include <tqhbox.h> #include <tqwhatsthis.h> #include <tqptrdict.h> +#include <tqtimer.h> #include <kglobal.h> #include <kdebug.h> @@ -305,7 +306,7 @@ int KPasswordEdit::maxPasswordLength() const KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, TQWidget *parent, const char *name) : KDialogBase(parent, name, true, "", Ok|Cancel|extraBttn, - Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate) + Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate) { d->iconName = "password"; init(); @@ -314,7 +315,7 @@ KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, const TQString& icon, TQWidget *parent, const char *name ) : KDialogBase(parent, name, true, "", Ok|Cancel|extraBttn, - Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate) + Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate) { if ( icon.stripWhiteSpace().isEmpty() ) d->iconName = "password"; @@ -326,7 +327,7 @@ KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, con KPasswordDialog::KPasswordDialog(int type, TQString prompt, bool enableKeep, int extraBttn) : KDialogBase(0L, "Password Dialog", true, "", Ok|Cancel|extraBttn, - Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate) + Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate) { d->iconName = "password"; init(); @@ -393,12 +394,20 @@ void KPasswordDialog::init() m_pGrid->setRowStretch(8, 12); TQCheckBox* const cb = new TQCheckBox(i18n("&Keep password"), m_pMain); cb->setFixedSize(cb->sizeHint()); - if (m_Keep > 1) + m_keepWarnLbl = new TQLabel(m_pMain); + m_keepWarnLbl->setAlignment(AlignLeft|AlignVCenter|WordBreak); + if (m_Keep > 1) { cb->setChecked(true); - else + m_keepWarnLbl->show(); + } + else { m_Keep = 0; + m_keepWarnLbl->hide(); + } connect(cb, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotKeep(bool))); m_pGrid->addWidget(cb, 9, 2, (TQ_Alignment)(AlignLeft|AlignVCenter)); +// m_pGrid->addWidget(m_keepWarnLbl, 13, 2, (TQ_Alignment)(AlignLeft|AlignVCenter)); + m_pGrid->addMultiCellWidget(m_keepWarnLbl, 13, 13, 0, 3); } else if (m_Type == NewPassword) { m_pGrid->addRowSpacing(8, 10); lbl = new TQLabel(m_pMain); @@ -475,6 +484,13 @@ void KPasswordDialog::setPrompt(TQString prompt) m_pHelpLbl->setFixedSize(275, m_pHelpLbl->heightForWidth(275)); } +void KPasswordDialog::setKeepWarning(TQString warn) +{ + if (m_keepWarnLbl) { + m_keepWarnLbl->setText(warn); + } +} + TQString KPasswordDialog::prompt() const @@ -550,9 +566,24 @@ void KPasswordDialog::slotCancel() void KPasswordDialog::slotKeep(bool keep) { + if (m_keepWarnLbl->text() != "") { + if (keep) { + m_keepWarnLbl->show(); + } + else { + m_keepWarnLbl->hide(); + } + TQTimer::singleShot(0, this, SLOT(slotLayout())); + } + m_Keep = keep; } +void KPasswordDialog::slotLayout() +{ + resize(sizeHint()); +} + // static . antlarr: KDE 4: Make it const TQString & prompt int KPasswordDialog::getPassword(TQCString &password, TQString prompt, diff --git a/kdeui/kpassdlg.h b/kdeui/kpassdlg.h index 91a861f40..2edbac3ef 100644 --- a/kdeui/kpassdlg.h +++ b/kdeui/kpassdlg.h @@ -246,6 +246,11 @@ public: TQString prompt() const; /** + * Sets the text to be dynamically displayed when the keep checkbox is checked + */ + void setKeepWarning(TQString warn); + + /** * Adds a line of information to the dialog. */ void addLine(TQString key, TQString value); @@ -380,6 +385,7 @@ protected slots: void slotOk(); void slotCancel(); void slotKeep(bool); + void slotLayout(); protected: @@ -399,6 +405,7 @@ private: int m_Keep, m_Type, m_Row; TQLabel *m_pHelpLbl; + TQLabel *m_keepWarnLbl; TQGridLayout *m_pGrid; TQWidget *m_pMain; KPasswordEdit *m_pEdit, *m_pEdit2; |