diff --git a/tdeui/kpassdlg.cpp b/tdeui/kpassdlg.cpp index a9625b899..489e14d8f 100644 --- a/tdeui/kpassdlg.cpp +++ b/tdeui/kpassdlg.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -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/tdeui/kpassdlg.h b/tdeui/kpassdlg.h index de83bb36c..2d124b01f 100644 --- a/tdeui/kpassdlg.h +++ b/tdeui/kpassdlg.h @@ -245,6 +245,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. */ @@ -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;