aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Fabio Bas2009-03-25 17:12:05 +0000
committerGravatar Fabio Bas2009-03-25 17:12:05 +0000
commitfcc92d44845b4d3f85ca7efecfe25cd25de9a849 (patch)
treea9ae5d57691f210c205e9b99e7fa739f7d8589d0
parentreworked fix for #383, some gcc 4.3 noise fix (diff)
downloadKVIrc-fcc92d44845b4d3f85ca7efecfe25cd25de9a849.tar.gz
KVIrc-fcc92d44845b4d3f85ca7efecfe25cd25de9a849.tar.bz2
KVIrc-fcc92d44845b4d3f85ca7efecfe25cd25de9a849.zip
implemented #408 (password fields with a tick to hide/show text)
gcc 4.3 noise reduction git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3164 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--src/kvirc/ui/kvi_selectors.cpp91
-rw-r--r--src/kvirc/ui/kvi_selectors.h37
-rw-r--r--src/modules/editor/scripteditor.cpp2
-rw-r--r--src/modules/mediaplayer/mp_mp3.cpp2
-rw-r--r--src/modules/options/optw_interfacelookglobal.cpp2
-rw-r--r--src/modules/options/optw_servers.cpp38
-rw-r--r--src/modules/options/optw_servers.h4
7 files changed, 155 insertions, 21 deletions
diff --git a/src/kvirc/ui/kvi_selectors.cpp b/src/kvirc/ui/kvi_selectors.cpp
index 3bdefbdc1..1b99fcfe3 100644
--- a/src/kvirc/ui/kvi_selectors.cpp
+++ b/src/kvirc/ui/kvi_selectors.cpp
@@ -167,11 +167,100 @@ void KviStringSelector::setText(const QString& text){
}
KviPasswordSelector::KviPasswordSelector(QWidget * par,const QString & txt,QString *pOption,bool bEnabled)
-: KviStringSelector(par,txt,pOption,bEnabled)
+: KviTalHBox(par) , KviSelectorInterface()
{
+ m_pLabel = new QLabel(txt,this);
+ m_pLineEdit = new QLineEdit(this);
+ m_pCheckBox = new QCheckBox(this);
m_pLineEdit->setEchoMode(QLineEdit::Password);
+ m_pCheckBox->setCheckState(Qt::Checked);
+ connect(m_pCheckBox,SIGNAL(stateChanged(int)), this, SLOT(checkToggled(int)));
+ //m_pLineEdit->setMinimumWidth(200);
+ QString tmp = *pOption;
+ m_pLineEdit->setText(tmp);
+
+ setSpacing(4);
+ setStretchFactor(m_pLineEdit,1);
+
+ m_pOption = pOption;
+
+ setEnabled(bEnabled);
}
+void KviPasswordSelector::checkToggled(int state)
+{
+ if(state == Qt::Checked)
+ {
+ m_pLineEdit->setEchoMode(QLineEdit::Password);
+ } else {
+ m_pLineEdit->setEchoMode(QLineEdit::Normal);
+ }
+}
+
+KviPasswordSelector::~KviPasswordSelector()
+{
+}
+
+void KviPasswordSelector::commit()
+{
+ QString tmp = m_pLineEdit->text();
+ *m_pOption = tmp;
+}
+
+void KviPasswordSelector::setEnabled(bool bEnabled)
+{
+ KviTalHBox::setEnabled(bEnabled);
+ m_pLineEdit->setEnabled(bEnabled);
+ m_pLabel->setEnabled(bEnabled);
+ m_pCheckBox->setEnabled(bEnabled);
+}
+
+void KviPasswordSelector::setText(const QString& text){
+ m_pLineEdit->setText(text);
+}
+
+KviPasswordLineEdit::KviPasswordLineEdit(QWidget * par)
+: KviTalHBox(par)
+{
+ m_pLineEdit = new QLineEdit(this);
+ m_pCheckBox = new QCheckBox(this);
+ m_pLineEdit->setEchoMode(QLineEdit::Password);
+ m_pCheckBox->setCheckState(Qt::Checked);
+ connect(m_pCheckBox,SIGNAL(stateChanged(int)), this, SLOT(checkToggled(int)));
+ //m_pLineEdit->setMinimumWidth(200);
+ setSpacing(4);
+ setStretchFactor(m_pLineEdit,1);
+}
+
+void KviPasswordLineEdit::checkToggled(int state)
+{
+ if(state == Qt::Checked)
+ {
+ m_pLineEdit->setEchoMode(QLineEdit::Password);
+ } else {
+ m_pLineEdit->setEchoMode(QLineEdit::Normal);
+ }
+}
+
+KviPasswordLineEdit::~KviPasswordLineEdit()
+{
+}
+
+QString KviPasswordLineEdit::text()
+{
+ return m_pLineEdit->text();
+}
+
+void KviPasswordLineEdit::setEnabled(bool bEnabled)
+{
+ KviTalHBox::setEnabled(bEnabled);
+ m_pLineEdit->setEnabled(bEnabled);
+ m_pCheckBox->setEnabled(bEnabled);
+}
+
+void KviPasswordLineEdit::setText(const QString& text){
+ m_pLineEdit->setText(text);
+}
KviPixmapPreview::KviPixmapPreview(QWidget * par)
: KviTalScrollView(par)
diff --git a/src/kvirc/ui/kvi_selectors.h b/src/kvirc/ui/kvi_selectors.h
index c98a282de..e4362c994 100644
--- a/src/kvirc/ui/kvi_selectors.h
+++ b/src/kvirc/ui/kvi_selectors.h
@@ -109,13 +109,44 @@ public slots:
virtual void setEnabled(bool bEnabled);
};
-
-class KVIRC_API KviPasswordSelector : public KviStringSelector
+class KVIRC_API KviPasswordSelector : public KviTalHBox, public KviSelectorInterface
{
Q_OBJECT
public:
KviPasswordSelector(QWidget * par,const QString & txt,QString * pOption,bool bEnabled);
- ~KviPasswordSelector(){};
+ ~KviPasswordSelector();
+protected:
+ QLabel * m_pLabel;
+ QLineEdit * m_pLineEdit;
+ QCheckBox * m_pCheckBox;
+ QString * m_pOption;
+public:
+ void setValidator(QValidator * v){ m_pLineEdit->setValidator(v); };
+ void setMinimumLabelWidth(unsigned int uWidth){ m_pLabel->setMinimumWidth(uWidth); };
+ virtual void commit();
+ void setText(const QString& text);
+public slots:
+ virtual void setEnabled(bool bEnabled);
+protected slots:
+ void checkToggled(int state);
+};
+
+class KVIRC_API KviPasswordLineEdit : public KviTalHBox
+{
+ Q_OBJECT
+public:
+ KviPasswordLineEdit(QWidget * par);
+ ~KviPasswordLineEdit();
+protected:
+ QLineEdit * m_pLineEdit;
+ QCheckBox * m_pCheckBox;
+public:
+ QString text();
+ void setText(const QString& text);
+public slots:
+ virtual void setEnabled(bool bEnabled);
+protected slots:
+ void checkToggled(int state);
};
class KVIRC_API KviPixmapPreview : public KviTalScrollView
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp
index 19b5aa50d..0d07dfbc0 100644
--- a/src/modules/editor/scripteditor.cpp
+++ b/src/modules/editor/scripteditor.cpp
@@ -410,7 +410,7 @@ void KviScriptEditorWidget::mouseReleaseEvent(QMouseEvent * e)
if (e->button() == Qt::RightButton)
{
QString szBuffer;
- /*
+ /\*
int iPara = paragraphAt(e->pos());
int iIndex=charAt(e->pos(),&iPara);
szBuffer = this->text(iPara);
diff --git a/src/modules/mediaplayer/mp_mp3.cpp b/src/modules/mediaplayer/mp_mp3.cpp
index 21d5bab7f..0d6ee9408 100644
--- a/src/modules/mediaplayer/mp_mp3.cpp
+++ b/src/modules/mediaplayer/mp_mp3.cpp
@@ -248,7 +248,7 @@ int get_first_header(mp3info *mp3, long startpos)
fseek(mp3->file,startpos,SEEK_SET);
while(1)
{
- while((c=fgetc(mp3->file)) != 255 && (c != EOF));
+ while((c=fgetc(mp3->file)) != 255 && (c != EOF)) {}
if(c == 255)
{
ungetc(c,mp3->file);
diff --git a/src/modules/options/optw_interfacelookglobal.cpp b/src/modules/options/optw_interfacelookglobal.cpp
index e3c5911bd..2864cb603 100644
--- a/src/modules/options/optw_interfacelookglobal.cpp
+++ b/src/modules/options/optw_interfacelookglobal.cpp
@@ -41,7 +41,7 @@ KviThemeGeneralOptionsWidget::KviThemeGeneralOptionsWidget(QWidget * parent)
KviBoolSelector * b = addBoolSelector(0,1,1,1,__tr2qs_ctx("Use global application font","options"),KviOption_boolUseGlobalApplicationFont);
KviTalToolTip::add(b,__tr2qs_ctx("This option will force a static font for every widget that has no specific font setting","options"));
- KviBoolSelector * g = addBoolSelector(0,0,1,0,__tr2qs_ctx("Show icons in popup menus","options"),KviOption_boolShowIconsInPopupMenus);
+ addBoolSelector(0,0,1,0,__tr2qs_ctx("Show icons in popup menus","options"),KviOption_boolShowIconsInPopupMenus);
KviFontSelector * f = addFontSelector(0,2,1,2,__tr2qs_ctx("Global application font:","options"),KviOption_fontApplication,
KVI_OPTION_BOOL(KviOption_boolUseGlobalApplicationFont));
diff --git a/src/modules/options/optw_servers.cpp b/src/modules/options/optw_servers.cpp
index 8492dd068..3b909e9d4 100644
--- a/src/modules/options/optw_servers.cpp
+++ b/src/modules/options/optw_servers.cpp
@@ -136,8 +136,7 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviNetwork * n)
"specified in the \"Identity\" options tab.</center>","options"));
l = new QLabel(__tr2qs_ctx("Password:","options"),gbox);
- m_pPassEditor = new QLineEdit(gbox);
- m_pPassEditor->setEchoMode(QLineEdit::Password);
+ m_pPassEditor = new KviPasswordLineEdit(gbox);
m_pPassEditor->setText(n->password());
KviTalToolTip::add(m_pPassEditor,__tr2qs_ctx("<center>If this network requires a password, put it in this field, otherwise leave it empty.</center>","options"));
@@ -420,17 +419,25 @@ void KviNetworkDetailsWidget::fillData(KviNetwork * n)
if(m_pAutoConnectCheck)
n->setAutoConnect(m_pAutoConnectCheck->isChecked());
if(m_pEncodingEditor)
- if(m_pEncodingEditor->currentIndex() <= 0)n->setEncoding(QString());
- else {
+ {
+ if(m_pEncodingEditor->currentIndex() <= 0)
+ {
+ n->setEncoding(QString());
+ } else {
KviLocale::EncodingDescription * d = KviLocale::encodingDescription(m_pEncodingEditor->currentIndex() - 1);
n->setEncoding(d->szName);
}
+ }
if(m_pTextEncodingEditor)
- if(m_pTextEncodingEditor->currentIndex() <= 0)n->setTextEncoding(QString());
- else {
+ {
+ if(m_pTextEncodingEditor->currentIndex() <= 0)
+ {
+ n->setTextEncoding(QString());
+ } else {
KviLocale::EncodingDescription * dd = KviLocale::encodingDescription(m_pTextEncodingEditor->currentIndex() - 1);
n->setTextEncoding(dd->szName);
}
+ }
if(m_pChannelListSelector)
m_pChannelListSelector->commit();
if(m_lstChannels.isEmpty())n->setAutoJoinChannelList(0);
@@ -512,8 +519,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviServer * s)
"specified in the \"Identity\" options tab.</center>","options"));
l = new QLabel(__tr2qs_ctx("Password:","options"),gbox);
- m_pPassEditor = new QLineEdit(gbox);
- m_pPassEditor->setEchoMode(QLineEdit::Password);
+ m_pPassEditor = new KviPasswordLineEdit(gbox);
m_pPassEditor->setText(s->password());
KviTalToolTip::add(m_pPassEditor,__tr2qs_ctx("<center>If this server requires a password, put it in this field, otherwise leave it empty.</center>","options"));
@@ -895,17 +901,25 @@ void KviServerDetailsWidget::fillData(KviServer * s)
if(m_pLinkFilterEditor)
s->setLinkFilter(m_pLinkFilterEditor->lineEdit()->text());
if(m_pEncodingEditor)
- if(m_pEncodingEditor->currentIndex() <= 0)s->m_szEncoding = "";
- else {
+ {
+ if(m_pEncodingEditor->currentIndex() <= 0)
+ {
+ s->m_szEncoding = "";
+ } else {
KviLocale::EncodingDescription * d = KviLocale::encodingDescription(m_pEncodingEditor->currentIndex() - 1);
s->m_szEncoding = d->szName;
}
+ }
if(m_pTextEncodingEditor)
- if(m_pTextEncodingEditor->currentIndex() <= 0)s->m_szTextEncoding = "";
- else {
+ {
+ if(m_pTextEncodingEditor->currentIndex() <= 0)
+ {
+ s->m_szTextEncoding = "";
+ } else {
KviLocale::EncodingDescription * dd = KviLocale::encodingDescription(m_pTextEncodingEditor->currentIndex() - 1);
s->m_szTextEncoding = dd->szName;
}
+ }
s->setIp("");
if(m_pCacheIpCheck)
s->setCacheIp(m_pCacheIpCheck->isChecked());
diff --git a/src/modules/options/optw_servers.h b/src/modules/options/optw_servers.h
index 64a053737..6dc264384 100644
--- a/src/modules/options/optw_servers.h
+++ b/src/modules/options/optw_servers.h
@@ -75,7 +75,7 @@ protected:
KviScriptEditor * m_pOnLoginEditor;
QLineEdit * m_pUserEditor;
- QLineEdit * m_pPassEditor;
+ KviPasswordLineEdit * m_pPassEditor;
QLineEdit * m_pNickEditor;
QLineEdit * m_pRealEditor;
QLineEdit * m_pDescEditor;
@@ -114,7 +114,7 @@ protected:
KviScriptEditor * m_pOnConnectEditor;
KviScriptEditor * m_pOnLoginEditor;
QLineEdit * m_pUserEditor;
- QLineEdit * m_pPassEditor;
+ KviPasswordLineEdit * m_pPassEditor;
QLineEdit * m_pNickEditor;
QLineEdit * m_pRealEditor;
QLineEdit * m_pDescEditor;