You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/redhat/kdelibs/kdelibs-3.5.13-add_dynamic_...

140 lines
4.4 KiB

commit 3c75231601fb35f0c91022abeee5117c81f70a62
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
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 <tqhbox.h>
#include <tqwhatsthis.h>
#include <tqptrdict.h>
+#include <tqtimer.h>
#include <kglobal.h>
#include <kdebug.h>
@@ -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;