commit 3c75231601fb35f0c91022abeee5117c81f70a62 Author: Timothy Pearson Date: 1339293731 -0500 Add dynamic label support to kpassworddialog diff --git a/kdeui/kpassdlg.cpp b/kdeui/kpassdlg.cpp index a9625b8..489e14d 100644 --- ./kdeui/kpassdlg.cpp.orig 2011-08-11 04:30:26.000000000 +0200 +++ ./kdeui/kpassdlg.cpp 2012-06-19 20:10:16.766136524 +0200 @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -305,7 +306,7 @@ 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, 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(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 @@ m_pGrid->setRowStretch(8, 12); TQCheckBox* const cb = new TQCheckBox(i18n("&Keep password"), m_pMain); cb->setFixedSize(cb->tqsizeHint()); - 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 @@ 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::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 de83bb3..2d124b0 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;