| ";
@@ -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
|