From 2f723938d6434302e6538e145bf8e1839de93b62 Mon Sep 17 00:00:00 2001 From: Andrio Celos Date: Thu, 6 Jul 2017 23:37:15 +1000 Subject: Allow adding tooltips to other widgets in the options dialogs. --- src/modules/options/OptionsWidget_connection.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/modules/options/OptionsWidget_connection.cpp') diff --git a/src/modules/options/OptionsWidget_connection.cpp b/src/modules/options/OptionsWidget_connection.cpp index bed814aa0..764067c78 100644 --- a/src/modules/options/OptionsWidget_connection.cpp +++ b/src/modules/options/OptionsWidget_connection.cpp @@ -109,25 +109,27 @@ OptionsWidget_connectionSsl::OptionsWidget_connectionSsl(QWidget * parent) KviTalGroupBox * gbox = addGroupBox(0, 0, 0, 0, Qt::Horizontal, __tr2qs_ctx("Certificate", "options")); b = addBoolSelector(gbox, __tr2qs_ctx("Use SSL certificate (PEM format only)", "options"), - &(KVI_OPTION_BOOL(KviOption_boolUseSSLCertificate)), true); + KviOption_boolUseSSLCertificate, true); - f = addFileSelector(gbox, __tr2qs_ctx("Certificate location:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLCertificatePath)), + f = addFileSelector(gbox, __tr2qs_ctx("Certificate location:", "options"), KviOption_stringSSLCertificatePath, KVI_OPTION_BOOL(KviOption_boolUseSSLCertificate)); connect(b, SIGNAL(toggled(bool)), f, SLOT(setEnabled(bool))); p = new KviPasswordSelector(gbox, __tr2qs_ctx("Certificate password:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLCertificatePass)), KVI_OPTION_BOOL(KviOption_boolUseSSLCertificate)); + setBasicTip(p, g_stringOptionsTable[KviOption_stringSSLCertificatePass].name); connect(b, SIGNAL(toggled(bool)), p, SLOT(setEnabled(bool))); gbox = addGroupBox(0, 1, 0, 1, Qt::Horizontal, __tr2qs_ctx("Private Key", "options")); - b = addBoolSelector(gbox, __tr2qs_ctx("Use SSL private key", "options"), &(KVI_OPTION_BOOL(KviOption_boolUseSSLPrivateKey)), true); - f = addFileSelector(gbox, __tr2qs_ctx("Private key location:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLPrivateKeyPath)), + b = addBoolSelector(gbox, __tr2qs_ctx("Use SSL private key", "options"), KviOption_boolUseSSLPrivateKey, true); + f = addFileSelector(gbox, __tr2qs_ctx("Private key location:", "options"), KviOption_stringSSLPrivateKeyPath, KVI_OPTION_BOOL(KviOption_boolUseSSLPrivateKey)); connect(b, SIGNAL(toggled(bool)), f, SLOT(setEnabled(bool))); p = addPasswordSelector(gbox, __tr2qs_ctx("Private key password:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLPrivateKeyPass)), KVI_OPTION_BOOL(KviOption_boolUseSSLPrivateKey)); + setBasicTip(p, g_stringOptionsTable[KviOption_stringSSLPrivateKeyPass].name); connect(b, SIGNAL(toggled(bool)), p, SLOT(setEnabled(bool))); addRowSpacer(0, 3, 0, 3); @@ -202,6 +204,7 @@ OptionsWidget_identService::OptionsWidget_identService(QWidget * parent) connect(m_pEnableIdent, SIGNAL(toggled(bool)), this, SLOT(enableIpv4InIpv6(bool))); KviTalGroupBox * gbox = addGroupBox(0, 1, 0, 1, Qt::Horizontal, __tr2qs_ctx("Output Verbosity", "options"), KVI_OPTION_BOOL(KviOption_boolUseIdentService)); + setBasicTip(gbox, g_uintOptionsTable[KviOption_uintIdentdOutputMode].name); connect(m_pEnableIdent, SIGNAL(toggled(bool)), gbox, SLOT(setEnabled(bool))); addLabel(gbox, __tr2qs_ctx("Output Ident service messages to:", "options")); -- cgit v1.3.1-10-gc9f91 From 48b433181be976d05c551e911a1fbcaa89234d80 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Fri, 29 Dec 2017 15:32:37 +0100 Subject: Revert "Allow adding tooltips to other widgets in the options dialogs." This reverts commit 2f723938d6434302e6538e145bf8e1839de93b62. --- src/kvirc/ui/KviOptionsWidget.cpp | 150 ++++++++++++--------- src/kvirc/ui/KviOptionsWidget.h | 1 - src/modules/options/OptionsWidget_channel.cpp | 4 +- src/modules/options/OptionsWidget_connection.cpp | 11 +- src/modules/options/OptionsWidget_identity.cpp | 11 +- src/modules/options/OptionsWidget_input.cpp | 11 +- src/modules/options/OptionsWidget_ircOutput.cpp | 4 - src/modules/options/OptionsWidget_ircView.cpp | 12 +- src/modules/options/OptionsWidget_notifier.cpp | 8 +- src/modules/options/OptionsWidget_sound.cpp | 3 - src/modules/options/OptionsWidget_textEncoding.cpp | 10 +- src/modules/options/OptionsWidget_userList.cpp | 9 +- src/modules/options/OptionsWidget_windowList.cpp | 8 +- 13 files changed, 114 insertions(+), 128 deletions(-) (limited to 'src/modules/options/OptionsWidget_connection.cpp') diff --git a/src/kvirc/ui/KviOptionsWidget.cpp b/src/kvirc/ui/KviOptionsWidget.cpp index 81b220bbf..46794891a 100644 --- a/src/kvirc/ui/KviOptionsWidget.cpp +++ b/src/kvirc/ui/KviOptionsWidget.cpp @@ -69,14 +69,6 @@ KviOptionsWidget::~KviOptionsWidget() delete m_pSelectorInterfaceList; } -void KviOptionsWidget::setBasicTip(QWidget * w, const QString & optionName) -{ - QString tmp = m_szBasicTipStart; - tmp += optionName; - tmp += m_szBasicTipEnd; - KviTalToolTip::add(w, tmp); -} - void KviOptionsWidget::mergeTip(QWidget * w, const QString & tip) { static QString begin = "
"; @@ -217,7 +209,10 @@ KviDirectorySelector * KviOptionsWidget::addDirectorySelector(int x1, int y1, in m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviDirectorySelector * d = addDirectorySelector(x1, y1, x2, y2, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - setBasicTip(d, g_stringOptionsTable[optId].name); + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -227,7 +222,10 @@ KviDirectorySelector * KviOptionsWidget::addDirectorySelector(QWidget * pParent, m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviDirectorySelector * d = addDirectorySelector(pParent, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - setBasicTip(d, g_stringOptionsTable[optId].name); + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -252,7 +250,10 @@ KviFileSelector * KviOptionsWidget::addFileSelector(int x1, int y1, int x2, int m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviFileSelector * d = addFileSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - setBasicTip(d, g_stringOptionsTable[optId].name); + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -262,7 +263,10 @@ KviFileSelector * KviOptionsWidget::addFileSelector(QWidget * pParent, const QSt m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviFileSelector * d = addFileSelector(pParent, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - setBasicTip(d, g_stringOptionsTable[optId].name); + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -287,7 +291,10 @@ KviSoundSelector * KviOptionsWidget::addSoundSelector(int x1, int y1, int x2, in m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviSoundSelector * d = addSoundSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - setBasicTip(d, g_stringOptionsTable[optId].name); + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -297,7 +304,10 @@ KviSoundSelector * KviOptionsWidget::addSoundSelector(QWidget * pParent, const Q m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviSoundSelector * d = addSoundSelector(pParent, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - setBasicTip(d, g_stringOptionsTable[optId].name); + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -321,9 +331,10 @@ KviBoolSelector * KviOptionsWidget::addBoolSelector(int x1, int y1, int x2, int { m_iResetFlags |= (g_boolOptionsTable[optId].flags & KviOption_resetMask); KviBoolSelector * d = addBoolSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_BOOL(optId)), bEnabled); - - setBasicTip(d, g_boolOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_boolOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -331,9 +342,10 @@ KviBoolSelector * KviOptionsWidget::addBoolSelector(QWidget * pParent, const QSt { m_iResetFlags |= (g_boolOptionsTable[optId].flags & KviOption_resetMask); KviBoolSelector * d = addBoolSelector(pParent, txt, &(KVI_OPTION_BOOL(optId)), bEnabled); - - setBasicTip(d, g_boolOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_boolOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -349,9 +361,10 @@ KviPixmapSelector * KviOptionsWidget::addPixmapSelector(int x1, int y1, int x2, { m_iResetFlags |= (g_pixmapOptionsTable[optId].flags & KviOption_resetMask); KviPixmapSelector * d = addPixmapSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_PIXMAP(optId)), bEnabled); - - setBasicTip(d, g_pixmapOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_pixmapOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -380,9 +393,10 @@ KviUIntSelector * KviOptionsWidget::addUIntSelector(int x1, int y1, int x2, int { m_iResetFlags |= (g_uintOptionsTable[optId].flags & KviOption_resetMask); KviUIntSelector * d = addUIntSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_UINT(optId)), uLowBound, uHighBound, uDefault, bEnabled); - - setBasicTip(d, g_uintOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_uintOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -392,9 +406,10 @@ KviUIntSelector * KviOptionsWidget::addUIntSelector(QWidget * pParent, const QSt { m_iResetFlags |= (g_uintOptionsTable[optId].flags & KviOption_resetMask); KviUIntSelector * d = addUIntSelector(pParent, txt, &(KVI_OPTION_UINT(optId)), uLowBound, uHighBound, uDefault, bEnabled); - - setBasicTip(d, g_uintOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_uintOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -427,9 +442,10 @@ KviStringSelector * KviOptionsWidget::addStringSelector(int x1, int y1, int x2, { m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviStringSelector * d = addStringSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - - setBasicTip(d, g_stringOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -437,9 +453,10 @@ KviStringSelector * KviOptionsWidget::addStringSelector(QWidget * pParent, const { m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviStringSelector * d = addStringSelector(pParent, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - - setBasicTip(d, g_stringOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -462,9 +479,10 @@ KviPasswordSelector * KviOptionsWidget::addPasswordSelector(int x1, int y1, int { m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviPasswordSelector * d = addPasswordSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - - setBasicTip(d, g_stringOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -472,9 +490,10 @@ KviPasswordSelector * KviOptionsWidget::addPasswordSelector(QWidget * pParent, c { m_iResetFlags |= (g_stringOptionsTable[optId].flags & KviOption_resetMask); KviPasswordSelector * d = addPasswordSelector(pParent, txt, &(KVI_OPTION_STRING(optId)), bEnabled); - - setBasicTip(d, g_stringOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_stringOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -490,9 +509,10 @@ KviStringListSelector * KviOptionsWidget::addStringListSelector(int x1, int y1, { m_iResetFlags |= (g_stringlistOptionsTable[optId].flags & KviOption_resetMask); KviStringListSelector * d = addStringListSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_STRINGLIST(optId)), bEnabled); - - setBasicTip(d, g_stringlistOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_stringlistOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -515,9 +535,10 @@ KviColorSelector * KviOptionsWidget::addColorSelector(int x1, int y1, int x2, in { m_iResetFlags |= (g_colorOptionsTable[optId].flags & KviOption_resetMask); KviColorSelector * d = addColorSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_COLOR(optId)), bEnabled); - - setBasicTip(d, g_colorOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_colorOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -525,9 +546,10 @@ KviColorSelector * KviOptionsWidget::addColorSelector(QWidget * pParent, const Q { m_iResetFlags |= (g_colorOptionsTable[optId].flags & KviOption_resetMask); KviColorSelector * d = addColorSelector(pParent, txt, &(KVI_OPTION_COLOR(optId)), bEnabled); - - setBasicTip(d, g_colorOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_colorOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -551,9 +573,10 @@ KviMircTextColorSelector * KviOptionsWidget::addMircTextColorSelector(int x1, in m_iResetFlags |= (g_uintOptionsTable[optForeId].flags & KviOption_resetMask); m_iResetFlags |= (g_uintOptionsTable[optBackId].flags & KviOption_resetMask); KviMircTextColorSelector * d = addMircTextColorSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_UINT(optForeId)), &(KVI_OPTION_UINT(optBackId)), bEnabled); - - setBasicTip(d, g_uintOptionsTable[optForeId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_uintOptionsTable[optForeId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -562,9 +585,10 @@ KviMircTextColorSelector * KviOptionsWidget::addMircTextColorSelector(QWidget * m_iResetFlags |= (g_uintOptionsTable[optForeId].flags & KviOption_resetMask); m_iResetFlags |= (g_uintOptionsTable[optBackId].flags & KviOption_resetMask); KviMircTextColorSelector * d = addMircTextColorSelector(pParent, txt, &(KVI_OPTION_UINT(optForeId)), &(KVI_OPTION_UINT(optBackId)), bEnabled); - - setBasicTip(d, g_uintOptionsTable[optForeId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_uintOptionsTable[optForeId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -587,9 +611,10 @@ KviFontSelector * KviOptionsWidget::addFontSelector(int x1, int y1, int x2, int { m_iResetFlags |= (g_fontOptionsTable[optId].flags & KviOption_resetMask); KviFontSelector * d = addFontSelector(x1, y1, x2, y2, txt, &(KVI_OPTION_FONT(optId)), bEnabled); - - setBasicTip(d, g_fontOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_fontOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } @@ -597,9 +622,10 @@ KviFontSelector * KviOptionsWidget::addFontSelector(QWidget * pParent, const QSt { m_iResetFlags |= (g_fontOptionsTable[optId].flags & KviOption_resetMask); KviFontSelector * d = addFontSelector(pParent, txt, &(KVI_OPTION_FONT(optId)), bEnabled); - - setBasicTip(d, g_fontOptionsTable[optId].name); - + QString tmp = m_szBasicTipStart; + tmp += g_fontOptionsTable[optId].name; + tmp += m_szBasicTipEnd; + KviTalToolTip::add(d, tmp); return d; } diff --git a/src/kvirc/ui/KviOptionsWidget.h b/src/kvirc/ui/KviOptionsWidget.h index a61e0120a..e28394d24 100644 --- a/src/kvirc/ui/KviOptionsWidget.h +++ b/src/kvirc/ui/KviOptionsWidget.h @@ -61,7 +61,6 @@ protected: void commitOptionsReset(); public: - void setBasicTip(QWidget * w, const QString & optionName); void mergeTip(QWidget * w, const QString & tip); KviPointerList * selectors() { return m_pSelectorInterfaceList; }; diff --git a/src/modules/options/OptionsWidget_channel.cpp b/src/modules/options/OptionsWidget_channel.cpp index 3ef529888..4409b77a5 100644 --- a/src/modules/options/OptionsWidget_channel.cpp +++ b/src/modules/options/OptionsWidget_channel.cpp @@ -97,11 +97,9 @@ OptionsWidget_channelAdvanced::OptionsWidget_channelAdvanced(QWidget * pParent) b = addBoolSelector(0, 0, 4, 0, __tr2qs_ctx("Log joined channels history", "options"), KviOption_boolLogChannelHistory); - QLabel * pLabel = addLabel(0, 1, 0, 1, __tr2qs_ctx("Default ban mask:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintDefaultBanType].name); + addLabel(0, 1, 0, 1, __tr2qs_ctx("Default ban mask:", "options")); m_pBanTypeCombo = new QComboBox(this); - setBasicTip(m_pBanTypeCombo, g_uintOptionsTable[KviOption_uintDefaultBanType].name); addWidgetToLayout(m_pBanTypeCombo, 1, 1, 4, 1); KviIrcMask hostmask("nick!user@machine.host.top"); diff --git a/src/modules/options/OptionsWidget_connection.cpp b/src/modules/options/OptionsWidget_connection.cpp index 764067c78..bed814aa0 100644 --- a/src/modules/options/OptionsWidget_connection.cpp +++ b/src/modules/options/OptionsWidget_connection.cpp @@ -109,27 +109,25 @@ OptionsWidget_connectionSsl::OptionsWidget_connectionSsl(QWidget * parent) KviTalGroupBox * gbox = addGroupBox(0, 0, 0, 0, Qt::Horizontal, __tr2qs_ctx("Certificate", "options")); b = addBoolSelector(gbox, __tr2qs_ctx("Use SSL certificate (PEM format only)", "options"), - KviOption_boolUseSSLCertificate, true); + &(KVI_OPTION_BOOL(KviOption_boolUseSSLCertificate)), true); - f = addFileSelector(gbox, __tr2qs_ctx("Certificate location:", "options"), KviOption_stringSSLCertificatePath, + f = addFileSelector(gbox, __tr2qs_ctx("Certificate location:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLCertificatePath)), KVI_OPTION_BOOL(KviOption_boolUseSSLCertificate)); connect(b, SIGNAL(toggled(bool)), f, SLOT(setEnabled(bool))); p = new KviPasswordSelector(gbox, __tr2qs_ctx("Certificate password:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLCertificatePass)), KVI_OPTION_BOOL(KviOption_boolUseSSLCertificate)); - setBasicTip(p, g_stringOptionsTable[KviOption_stringSSLCertificatePass].name); connect(b, SIGNAL(toggled(bool)), p, SLOT(setEnabled(bool))); gbox = addGroupBox(0, 1, 0, 1, Qt::Horizontal, __tr2qs_ctx("Private Key", "options")); - b = addBoolSelector(gbox, __tr2qs_ctx("Use SSL private key", "options"), KviOption_boolUseSSLPrivateKey, true); - f = addFileSelector(gbox, __tr2qs_ctx("Private key location:", "options"), KviOption_stringSSLPrivateKeyPath, + b = addBoolSelector(gbox, __tr2qs_ctx("Use SSL private key", "options"), &(KVI_OPTION_BOOL(KviOption_boolUseSSLPrivateKey)), true); + f = addFileSelector(gbox, __tr2qs_ctx("Private key location:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLPrivateKeyPath)), KVI_OPTION_BOOL(KviOption_boolUseSSLPrivateKey)); connect(b, SIGNAL(toggled(bool)), f, SLOT(setEnabled(bool))); p = addPasswordSelector(gbox, __tr2qs_ctx("Private key password:", "options"), &(KVI_OPTION_STRING(KviOption_stringSSLPrivateKeyPass)), KVI_OPTION_BOOL(KviOption_boolUseSSLPrivateKey)); - setBasicTip(p, g_stringOptionsTable[KviOption_stringSSLPrivateKeyPass].name); connect(b, SIGNAL(toggled(bool)), p, SLOT(setEnabled(bool))); addRowSpacer(0, 3, 0, 3); @@ -204,7 +202,6 @@ OptionsWidget_identService::OptionsWidget_identService(QWidget * parent) connect(m_pEnableIdent, SIGNAL(toggled(bool)), this, SLOT(enableIpv4InIpv6(bool))); KviTalGroupBox * gbox = addGroupBox(0, 1, 0, 1, Qt::Horizontal, __tr2qs_ctx("Output Verbosity", "options"), KVI_OPTION_BOOL(KviOption_boolUseIdentService)); - setBasicTip(gbox, g_uintOptionsTable[KviOption_uintIdentdOutputMode].name); connect(m_pEnableIdent, SIGNAL(toggled(bool)), gbox, SLOT(setEnabled(bool))); addLabel(gbox, __tr2qs_ctx("Output Ident service messages to:", "options")); diff --git a/src/modules/options/OptionsWidget_identity.cpp b/src/modules/options/OptionsWidget_identity.cpp index ccc775b3e..6efc60b7a 100644 --- a/src/modules/options/OptionsWidget_identity.cpp +++ b/src/modules/options/OptionsWidget_identity.cpp @@ -338,8 +338,9 @@ KviIdentityGeneralOptionsWidget::KviIdentityGeneralOptionsWidget(QWidget * paren l->setMinimumWidth(120); m_pAgeCombo = new QComboBox(hb); - setBasicTip(hb, g_stringOptionsTable[KviOption_stringCtcpUserInfoAge].name); - mergeTip(hb, __tr2qs_ctx("Here you can specify your age.", "options") + szTrailing); + QString szTip1 = __tr2qs_ctx("Here you can specify your age.", "options") + szTrailing; + KviTalToolTip::add(l, szTip1); + KviTalToolTip::add(m_pAgeCombo, szTip1); m_pAgeCombo->addItem(__tr2qs_ctx("Unspecified", "options")); unsigned int i; for(i = 1; i < 120; i++) @@ -365,8 +366,9 @@ KviIdentityGeneralOptionsWidget::KviIdentityGeneralOptionsWidget(QWidget * paren l->setMinimumWidth(120); m_pGenderCombo = new QComboBox(hb); - setBasicTip(hb, g_stringOptionsTable[KviOption_stringCtcpUserInfoGender].name); - mergeTip(hb, __tr2qs_ctx("Here you can specify your gender.", "options") + szTrailing); + QString szTip2 = __tr2qs_ctx("Here you can specify your gender.", "options") + szTrailing; + KviTalToolTip::add(l, szTip2); + KviTalToolTip::add(m_pGenderCombo, szTip2); m_pGenderCombo->addItem(__tr2qs_ctx("Unspecified", "options")); m_pGenderCombo->addItem(__tr2qs_ctx("Female", "options")); m_pGenderCombo->addItem(__tr2qs_ctx("Male", "options")); @@ -672,7 +674,6 @@ OptionsWidget_identityAdvanced::OptionsWidget_identityAdvanced(QWidget * parent) layout()->setMargin(10); KviTalGroupBox * gbox = addGroupBox(0, 0, 0, 0, Qt::Horizontal, __tr2qs_ctx("User Mode", "options")); - setBasicTip(gbox, g_stringOptionsTable[KviOption_stringDefaultUserMode].name); m_pISelector = addBoolSelector(gbox, __tr2qs_ctx("Invisible (+i)", "options"), &m_bI); m_pSSelector = addBoolSelector(gbox, __tr2qs_ctx("Server notices (+s)", "options"), &m_bS); m_pWSelector = addBoolSelector(gbox, __tr2qs_ctx("WALLOPS (+w)", "options"), &m_bW); diff --git a/src/modules/options/OptionsWidget_input.cpp b/src/modules/options/OptionsWidget_input.cpp index 8833be2c9..93c266945 100644 --- a/src/modules/options/OptionsWidget_input.cpp +++ b/src/modules/options/OptionsWidget_input.cpp @@ -45,16 +45,12 @@ OptionsWidget_inputLook::OptionsWidget_inputLook(QWidget * parent) addPixmapSelector(0, 7, 1, 7, __tr2qs_ctx("Background image:", "options"), KviOption_pixmapInputBackground); - QLabel * pLabel = addLabel(0, 8, 0, 8, __tr2qs_ctx("Horizontal align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintInputPixmapAlign].name); + addLabel(0, 8, 0, 8, __tr2qs_ctx("Horizontal align:", "options")); m_pHorizontalAlign = new QComboBox(this); - setBasicTip(m_pHorizontalAlign, g_uintOptionsTable[KviOption_uintInputPixmapAlign].name); addWidgetToLayout(m_pHorizontalAlign, 1, 8, 1, 8); - pLabel = addLabel(0, 9, 0, 9, __tr2qs_ctx("Vertical align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintInputPixmapAlign].name); + addLabel(0, 9, 0, 9, __tr2qs_ctx("Vertical align:", "options")); m_pVerticalAlign = new QComboBox(this); - setBasicTip(m_pVerticalAlign, g_uintOptionsTable[KviOption_uintInputPixmapAlign].name); addWidgetToLayout(m_pVerticalAlign, 1, 9, 1, 9); m_pHorizontalAlign->addItem(__tr2qs_ctx("Tile", "options")); @@ -164,7 +160,6 @@ OptionsWidget_inputFeatures::OptionsWidget_inputFeatures(QWidget * parent) addBoolSelector(g, __tr2qs_ctx("Ignore special characters in nick completion", "options"), KviOption_boolIgnoreSpecialCharactersInNickCompletion); KviTalHBox * hb = new KviTalHBox(g); - setBasicTip(hb, g_uintOptionsTable[KviOption_uintNickCompletionOrder].name); QLabel * l = new QLabel(__tr2qs_ctx("Nickname completion order:", "options"), hb); l->setMinimumWidth(120); @@ -174,6 +169,8 @@ OptionsWidget_inputFeatures::OptionsWidget_inputFeatures(QWidget * parent) m_pCompletionOrderCombo->addItem(__tr2qs_ctx("Alphabetical", "options")); m_pCompletionOrderCombo->addItem(__tr2qs_ctx("By last action time", "options")); + // TODO: add the tooltip + if (KVI_OPTION_UINT(KviOption_uintNickCompletionOrder) < 3) m_pCompletionOrderCombo->setCurrentIndex(KVI_OPTION_UINT(KviOption_uintNickCompletionOrder)); else diff --git a/src/modules/options/OptionsWidget_ircOutput.cpp b/src/modules/options/OptionsWidget_ircOutput.cpp index e693dfac3..a1a85b405 100644 --- a/src/modules/options/OptionsWidget_ircOutput.cpp +++ b/src/modules/options/OptionsWidget_ircOutput.cpp @@ -41,11 +41,9 @@ OptionsWidget_ircOutput::OptionsWidget_ircOutput(QWidget * pParent) createLayout(); QLabel * pLabel = new QLabel(__tr2qs_ctx("Output verbosity:", "options"), this); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintOutputVerbosityLevel].name); addWidgetToLayout(pLabel, 0, 0, 0, 0); m_pVerbosityCombo = new QComboBox(this); - setBasicTip(m_pVerbosityCombo, g_uintOptionsTable[KviOption_uintOutputVerbosityLevel].name); m_pVerbosityCombo->addItem(__tr2qs_ctx("Mute", "options")); m_pVerbosityCombo->addItem(__tr2qs_ctx("Quiet", "options")); m_pVerbosityCombo->addItem(__tr2qs_ctx("Normal", "options")); @@ -58,11 +56,9 @@ OptionsWidget_ircOutput::OptionsWidget_ircOutput(QWidget * pParent) m_pVerbosityCombo->setCurrentIndex(KVI_OPTION_UINT(KviOption_uintOutputVerbosityLevel)); pLabel = new QLabel(__tr2qs_ctx("DateTime format:", "options"), this); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintOutputDatetimeFormat].name); addWidgetToLayout(pLabel, 0, 1, 0, 1); m_pDatetimeCombo = new QComboBox(this); - setBasicTip(m_pDatetimeCombo, g_uintOptionsTable[KviOption_uintOutputDatetimeFormat].name); m_pDatetimeCombo->addItem(__tr2qs_ctx("Classic format", "options")); m_pDatetimeCombo->addItem(__tr2qs_ctx("ISO 8601 format", "options")); m_pDatetimeCombo->addItem(__tr2qs_ctx("System locale format", "options")); diff --git a/src/modules/options/OptionsWidget_ircView.cpp b/src/modules/options/OptionsWidget_ircView.cpp index 26bc3de91..85319908e 100644 --- a/src/modules/options/OptionsWidget_ircView.cpp +++ b/src/modules/options/OptionsWidget_ircView.cpp @@ -49,16 +49,12 @@ OptionsWidget_ircViewLook::OptionsWidget_ircViewLook(QWidget * parent) addPixmapSelector(0, 2, 1, 2, __tr2qs_ctx("Background image:", "options"), KviOption_pixmapIrcViewBackground); - QLabel * pLabel = addLabel(0, 3, 0, 3, __tr2qs_ctx("Horizontal align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintIrcViewPixmapAlign].name); + addLabel(0, 3, 0, 3, __tr2qs_ctx("Horizontal align:", "options")); m_pHorizontalAlign = new QComboBox(this); - setBasicTip(m_pHorizontalAlign, g_uintOptionsTable[KviOption_uintIrcViewPixmapAlign].name); addWidgetToLayout(m_pHorizontalAlign, 1, 3, 1, 3); - pLabel = addLabel(0, 4, 0, 4, __tr2qs_ctx("Vertical align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintIrcViewPixmapAlign].name); + addLabel(0, 4, 0, 4, __tr2qs_ctx("Vertical align:", "options")); m_pVerticalAlign = new QComboBox(this); - setBasicTip(m_pVerticalAlign, g_uintOptionsTable[KviOption_uintIrcViewPixmapAlign].name); addWidgetToLayout(m_pVerticalAlign, 1, 4, 1, 4); m_pHorizontalAlign->addItem(__tr2qs_ctx("Tile", "options")); @@ -182,10 +178,8 @@ OptionsWidget_ircViewMarker::OptionsWidget_ircViewMarker(QWidget * parent) KviUIntSelector * s = addUIntSelector(0, 2, 1, 2, __tr2qs_ctx("Marker size:", "options"), KviOption_uintIrcViewMarkerSize, 1, 5, 1); s->setSuffix(__tr2qs_ctx(" pixels", "options")); - QLabel * pLabel = addLabel(0, 3, 0, 3, __tr2qs_ctx("Marker style:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintIrcViewMarkerStyle].name); + addLabel(0, 3, 0, 3, __tr2qs_ctx("Marker style:", "options")); m_pMarkerStyle = new QComboBox(this); - setBasicTip(m_pMarkerStyle, g_uintOptionsTable[KviOption_uintIrcViewMarkerStyle].name); addWidgetToLayout(m_pMarkerStyle, 1, 3, 1, 3); addRowSpacer(0, 4, 0, 4); diff --git a/src/modules/options/OptionsWidget_notifier.cpp b/src/modules/options/OptionsWidget_notifier.cpp index 1b5ee1982..c3949194c 100644 --- a/src/modules/options/OptionsWidget_notifier.cpp +++ b/src/modules/options/OptionsWidget_notifier.cpp @@ -44,16 +44,12 @@ OptionsWidget_notifierLook::OptionsWidget_notifierLook(QWidget * parent) addPixmapSelector(0, 5, 1, 5, __tr2qs_ctx("Background image:", "options"), KviOption_pixmapNotifierBackground); - QLabel * pLabel = addLabel(0, 6, 0, 6, __tr2qs_ctx("Horizontal align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintNotifierPixmapAlign].name); + addLabel(0, 6, 0, 6, __tr2qs_ctx("Horizontal align:", "options")); m_pHorizontalAlign = new QComboBox(this); - setBasicTip(m_pHorizontalAlign, g_uintOptionsTable[KviOption_uintNotifierPixmapAlign].name); addWidgetToLayout(m_pHorizontalAlign, 1, 6, 1, 6); - pLabel = addLabel(0, 7, 0, 7, __tr2qs_ctx("Vertical align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintNotifierPixmapAlign].name); + addLabel(0, 7, 0, 7, __tr2qs_ctx("Vertical align:", "options")); m_pVerticalAlign = new QComboBox(this); - setBasicTip(m_pVerticalAlign, g_uintOptionsTable[KviOption_uintNotifierPixmapAlign].name); addWidgetToLayout(m_pVerticalAlign, 1, 7, 1, 7); m_pHorizontalAlign->addItem(__tr2qs_ctx("Tile", "options")); diff --git a/src/modules/options/OptionsWidget_sound.cpp b/src/modules/options/OptionsWidget_sound.cpp index 6bcd1c980..4b84b3e41 100644 --- a/src/modules/options/OptionsWidget_sound.cpp +++ b/src/modules/options/OptionsWidget_sound.cpp @@ -60,7 +60,6 @@ OptionsWidget_soundGeneral::OptionsWidget_soundGeneral(QWidget * parent) KviTalToolTip::add(g, __tr2qs_ctx("This allows you to select the sound system to be used with KVIrc.", "options")); KviTalHBox * h = new KviTalHBox(g); - setBasicTip(h, g_stringOptionsTable[KviOption_stringSoundSystem].name); m_pSoundSystemBox = new QComboBox(h); @@ -77,7 +76,6 @@ OptionsWidget_soundGeneral::OptionsWidget_soundGeneral(QWidget * parent) "options")); h = new KviTalHBox(g); - setBasicTip(h, g_stringOptionsTable[KviOption_stringPreferredMediaPlayer].name); m_pMediaPlayerBox = new QComboBox(h); @@ -96,7 +94,6 @@ OptionsWidget_soundGeneral::OptionsWidget_soundGeneral(QWidget * parent) h = new KviTalHBox(g); m_pTagsEncodingCombo = new QComboBox(h); - setBasicTip(m_pTagsEncodingCombo, g_stringOptionsTable[KviOption_stringMp3TagsEncoding].name); m_pTagsEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding", "options")); int i = 0; diff --git a/src/modules/options/OptionsWidget_textEncoding.cpp b/src/modules/options/OptionsWidget_textEncoding.cpp index 895f5de0f..249e14784 100644 --- a/src/modules/options/OptionsWidget_textEncoding.cpp +++ b/src/modules/options/OptionsWidget_textEncoding.cpp @@ -49,23 +49,17 @@ OptionsWidget_textEncoding::OptionsWidget_textEncoding(QWidget * parent) gbox->setLayout(grid); //server encoding - QLabel * pLabel = addLabel(gbox, __tr2qs_ctx("Default server encoding:", "options")); - setBasicTip(pLabel, g_stringOptionsTable[KviOption_stringDefaultSrvEncoding].name); - grid->addWidget(pLabel, 0, 0); + grid->addWidget(addLabel(gbox, __tr2qs_ctx("Default server encoding:", "options")), 0, 0); m_pSrvEncodingCombo = new QComboBox(gbox); - setBasicTip(m_pSrvEncodingCombo, g_stringOptionsTable[KviOption_stringDefaultSrvEncoding].name); grid->addWidget(m_pSrvEncodingCombo, 0, 1); m_pSrvEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding", "options")); //text encoding - pLabel = addLabel(gbox, __tr2qs_ctx("Default text encoding:", "options")); - setBasicTip(pLabel, g_stringOptionsTable[KviOption_stringDefaultTextEncoding].name); - grid->addWidget(pLabel, 1, 0); + grid->addWidget(addLabel(gbox, __tr2qs_ctx("Default text encoding:", "options")), 1, 0); m_pTextEncodingCombo = new QComboBox(gbox); - setBasicTip(m_pTextEncodingCombo, g_stringOptionsTable[KviOption_stringDefaultTextEncoding].name); grid->addWidget(m_pTextEncodingCombo, 1, 1); m_pTextEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding", "options")); diff --git a/src/modules/options/OptionsWidget_userList.cpp b/src/modules/options/OptionsWidget_userList.cpp index 753dd71f6..a1d0e2aa0 100644 --- a/src/modules/options/OptionsWidget_userList.cpp +++ b/src/modules/options/OptionsWidget_userList.cpp @@ -90,7 +90,6 @@ OptionsWidget_userListGrid::OptionsWidget_userListGrid(QWidget * parent) connect(b, SIGNAL(toggled(bool)), s, SLOT(setEnabled(bool))); KviTalHBox * hb = new KviTalHBox(this); - setBasicTip(hb, g_uintOptionsTable[KviOption_uintUserListViewGridType].name); addWidgetToLayout(hb, 0, 2, 0, 2); hb->setSpacing(4); @@ -131,16 +130,12 @@ OptionsWidget_userListBackground::OptionsWidget_userListBackground(QWidget * par addPixmapSelector(0, 1, 1, 1, __tr2qs_ctx("Background image:", "options"), KviOption_pixmapUserListViewBackground); - QLabel * pLabel = addLabel(0, 2, 0, 2, __tr2qs_ctx("Horizontal alignment:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintUserListPixmapAlign].name); + addLabel(0, 2, 0, 2, __tr2qs_ctx("Horizontal alignment:", "options")); m_pHorizontalAlign = new QComboBox(this); - setBasicTip(m_pHorizontalAlign, g_uintOptionsTable[KviOption_uintUserListPixmapAlign].name); addWidgetToLayout(m_pHorizontalAlign, 1, 2, 1, 2); - pLabel = addLabel(0, 3, 0, 3, __tr2qs_ctx("Vertical alignment:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintUserListPixmapAlign].name); + addLabel(0, 3, 0, 3, __tr2qs_ctx("Vertical alignment:", "options")); m_pVerticalAlign = new QComboBox(this); - setBasicTip(m_pVerticalAlign, g_uintOptionsTable[KviOption_uintUserListPixmapAlign].name); addWidgetToLayout(m_pVerticalAlign, 1, 3, 1, 3); m_pHorizontalAlign->addItem(__tr2qs_ctx("Tile", "options")); diff --git a/src/modules/options/OptionsWidget_windowList.cpp b/src/modules/options/OptionsWidget_windowList.cpp index 2d5417dd6..ddb1deb16 100644 --- a/src/modules/options/OptionsWidget_windowList.cpp +++ b/src/modules/options/OptionsWidget_windowList.cpp @@ -123,16 +123,12 @@ OptionsWidget_windowListTreeBackground::OptionsWidget_windowListTreeBackground(Q addPixmapSelector(0, 1, 1, 1, __tr2qs_ctx("Background image:", "options"), KviOption_pixmapTreeWindowListBackground); - QLabel * pLabel = addLabel(0, 2, 0, 2, __tr2qs_ctx("Horizontal align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintTreeWindowListPixmapAlign].name); + addLabel(0, 2, 0, 2, __tr2qs_ctx("Horizontal align:", "options")); m_pHorizontalAlign = new QComboBox(this); - setBasicTip(m_pHorizontalAlign, g_uintOptionsTable[KviOption_uintTreeWindowListPixmapAlign].name); addWidgetToLayout(m_pHorizontalAlign, 1, 2, 1, 2); - pLabel = addLabel(0, 3, 0, 3, __tr2qs_ctx("Vertical align:", "options")); - setBasicTip(pLabel, g_uintOptionsTable[KviOption_uintTreeWindowListPixmapAlign].name); + addLabel(0, 3, 0, 3, __tr2qs_ctx("Vertical align:", "options")); m_pVerticalAlign = new QComboBox(this); - setBasicTip(m_pVerticalAlign, g_uintOptionsTable[KviOption_uintTreeWindowListPixmapAlign].name); addWidgetToLayout(m_pVerticalAlign, 1, 3, 1, 3); m_pHorizontalAlign->addItem(__tr2qs_ctx("Tile", "options")); -- cgit v1.3.1-10-gc9f91 From 9e7188cf1c0b9ff05ce9da9893ae85ad70682688 Mon Sep 17 00:00:00 2001 From: IceN9ne Date: Mon, 26 Nov 2018 09:50:57 -0500 Subject: SASL: Add option for aborting connection on SASL failure --- src/kvirc/kernel/KviIrcLink.cpp | 10 +--------- src/kvirc/kernel/KviIrcLink.h | 12 ++++++------ src/kvirc/kernel/KviOptions.cpp | 3 ++- src/kvirc/kernel/KviOptions.h | 3 ++- src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp | 11 ++++++++++- src/modules/options/OptionsWidget_connection.cpp | 5 ++++- 6 files changed, 25 insertions(+), 19 deletions(-) (limited to 'src/modules/options/OptionsWidget_connection.cpp') diff --git a/src/kvirc/kernel/KviIrcLink.cpp b/src/kvirc/kernel/KviIrcLink.cpp index 12ce0880e..30b83b0e0 100644 --- a/src/kvirc/kernel/KviIrcLink.cpp +++ b/src/kvirc/kernel/KviIrcLink.cpp @@ -54,14 +54,6 @@ KviIrcLink::KviIrcLink(KviIrcConnection * pConnection) { m_pTarget = pConnection->target(); m_pConsole = m_pConnection->console(); - - m_pSocket = nullptr; - m_pLinkFilter = nullptr; - m_pResolver = nullptr; - - m_pReadBuffer = nullptr; // incoming data buffer - m_uReadBufferLen = 0; // incoming data buffer length - m_uReadPackets = 0; // total packets read per session } KviIrcLink::~KviIrcLink() @@ -259,7 +251,7 @@ void KviIrcLink::processData(char * buffer, int iLen) if(*cMessageBuffer != 0) m_pConnection->incomingMessage(cMessageBuffer); - if(m_pSocket->state() != KviIrcSocket::Connected) + if(!m_pSocket || (m_pSocket->state() != KviIrcSocket::Connected)) { // Disconnected in KviConsoleWindow::incomingMessage() call. // This may happen for several reasons (local event loop diff --git a/src/kvirc/kernel/KviIrcLink.h b/src/kvirc/kernel/KviIrcLink.h index 097b5bb54..635c9fdc4 100644 --- a/src/kvirc/kernel/KviIrcLink.h +++ b/src/kvirc/kernel/KviIrcLink.h @@ -92,16 +92,16 @@ private: KviIrcConnection * m_pConnection; // shallow, never null KviIrcConnectionTarget * m_pTarget; // shallow, never null KviConsoleWindow * m_pConsole; // shallow, never null - KviIrcSocket * m_pSocket; // owned, may be null! - KviMexLinkFilter * m_pLinkFilter; // owned, may be null! + KviIrcSocket * m_pSocket = nullptr; // owned, may be null! + KviMexLinkFilter * m_pLinkFilter = nullptr; // owned, may be null! State m_eState = Idle; - char * m_pReadBuffer; - unsigned int m_uReadBufferLen; - unsigned int m_uReadPackets; + char * m_pReadBuffer = nullptr; // incoming data buffer + unsigned int m_uReadBufferLen = 0; // incoming data buffer length + unsigned int m_uReadPackets = 0; // total packets read per session - KviIrcConnectionTargetResolver * m_pResolver; // owned + KviIrcConnectionTargetResolver * m_pResolver = nullptr; // owned public: /** * \brief Returns the socket diff --git a/src/kvirc/kernel/KviOptions.cpp b/src/kvirc/kernel/KviOptions.cpp index b509a81a9..29ddf515d 100644 --- a/src/kvirc/kernel/KviOptions.cpp +++ b/src/kvirc/kernel/KviOptions.cpp @@ -332,7 +332,8 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS] = { BOOL_OPTION("ShowTreeWindowListHandle", true, KviOption_sectFlagWindowList | KviOption_resetUpdateGui | KviOption_groupTheme), BOOL_OPTION("MenuBarVisible", true, KviOption_sectFlagFrame | KviOption_resetUpdateGui), BOOL_OPTION("WarnAboutHidingMenuBar", true, KviOption_sectFlagFrame), - BOOL_OPTION("WhoRepliesToActiveWindow", false, KviOption_sectFlagConnection) + BOOL_OPTION("WhoRepliesToActiveWindow", false, KviOption_sectFlagConnection), + BOOL_OPTION("DropConnectionOnSaslFailure", false, KviOption_sectFlagConnection) }; // NOTICE: REUSE EQUIVALENT UNUSED KviOption_bool in KviOptions.h ENTRIES BEFORE ADDING NEW ENTRIES ABOVE diff --git a/src/kvirc/kernel/KviOptions.h b/src/kvirc/kernel/KviOptions.h index cb1795a71..59e7f88ac 100644 --- a/src/kvirc/kernel/KviOptions.h +++ b/src/kvirc/kernel/KviOptions.h @@ -353,10 +353,11 @@ DECLARE_OPTION_STRUCT(KviStringListOption, QStringList) #define KviOption_boolMenuBarVisible 261 #define KviOption_boolWarnAboutHidingMenuBar 262 #define KviOption_boolWhoRepliesToActiveWindow 263 /* irc::output */ +#define KviOption_boolDropConnectionOnSaslFailure 264 /* connection::advanced */ // NOTICE: REUSE EQUIVALENT UNUSED BOOL_OPTION in KviOptions.cpp ENTRIES BEFORE ADDING NEW ENTRIES ABOVE -#define KVI_NUM_BOOL_OPTIONS 264 +#define KVI_NUM_BOOL_OPTIONS 265 #define KVI_STRING_OPTIONS_PREFIX "string" #define KVI_STRING_OPTIONS_PREFIX_LEN 6 diff --git a/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp b/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp index 149eeab17..968ab5704 100644 --- a/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp +++ b/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp @@ -2404,7 +2404,7 @@ void KviIrcServerParser::parseNumericStats(KviIrcMessage * msg) if(msg->paramCount() > 2) { KviCString szParms; - for(std::size_t i = 1; i < msg->paramCount(); ++i) + for(int i = 1; i < msg->paramCount(); ++i) { if(szParms.hasData()) szParms.append(' '); @@ -3054,6 +3054,15 @@ void KviIrcServerParser::parseNumericSaslFail(KviIrcMessage * msg) return; } } + + if(KVI_OPTION_BOOL(KviOption_boolDropConnectionOnSaslFailure)) + { + KviWindow * pOut = static_cast(msg->console()); + pOut->output(KVI_OUT_SERVERINFO, __tr2qs("SASL auth failed. Dropping the connection.")); + msg->connection()->sendFmtData("QUIT"); + msg->connection()->abort(); + return; + } } if(msg->connection()->stateData()->isInsideAuthenticate()) diff --git a/src/modules/options/OptionsWidget_connection.cpp b/src/modules/options/OptionsWidget_connection.cpp index bed814aa0..60fdce129 100644 --- a/src/modules/options/OptionsWidget_connection.cpp +++ b/src/modules/options/OptionsWidget_connection.cpp @@ -182,7 +182,10 @@ OptionsWidget_connectionSocket::OptionsWidget_connectionSocket(QWidget * parent) "you want to rely on the DNS server to provide the best choice.", "options")); - addRowSpacer(0, 5, 0, 5); + b = addBoolSelector(0, 5, 0, 5, __tr2qs_ctx("Drop connection on SASL authentication failure", "options"), KviOption_boolDropConnectionOnSaslFailure); + mergeTip(b, __tr2qs_ctx("This option will close the socket if no SASL authentication or any SASL fallback had succeeded.", "options")); + + addRowSpacer(0, 6, 0, 6); } OptionsWidget_connectionSocket::~OptionsWidget_connectionSocket() -- cgit v1.3.1-10-gc9f91