namespace KviNickColors
{
-
-#define KVI_NUM_NICK_COLORS 95
-
// FIXME: Maybe make this table settable via options?
// Or maybe a kvc file...
- static const char * g_nickColors[KVI_NUM_NICK_COLORS] = {
+ static const int g_numNickColors = 95;
+ static const char * g_nickColors[g_numNickColors] = {
"0,1", "0,2", "0,3", "0,4", "0,5", "0,6", "0,10", "0,12", "0,14", //9
"1,0", "1,4", "1,7", "1,8", "1,9", "1,11", "1,15", //7
"2,0", "2,4", "2,7", "2,8", "2,9", "2,11", "2,15", //7
"14,0", "14,8", "14,11", "14,15", //4
"15,1", "15,2", "15,3", "15,6", "15,14" //5
};
+ static const int g_numNickColorsNoBg = 8;
+ static const char * g_nickColorsNoBg[g_numNickColorsNoBg] = {
+ "2", "3", "4", "5", "6", "7", "10", "12" //8
+ };
int getSmartColorForNick(QString * szNick)
{
return sum;
}
- const char * getSmartColor(int iPos)
+ const char * getSmartColor(int iPos, bool bWithBg)
{
- return g_nickColors[iPos % KVI_NUM_NICK_COLORS];
+ if(bWithBg)
+ return g_nickColors[iPos % g_numNickColors];
+ else
+ return g_nickColorsNoBg[iPos % g_numNickColorsNoBg];
}
int getSmartColorIntByMircColor(unsigned char iFore, unsigned char iBack)
snprintf(comb, 6, "%d,%d", iFore % 16, iBack % 16);
#endif
// qDebug("Nick color %s",comb);
- for(int i = 0; i < KVI_NUM_NICK_COLORS; ++i)
+ for(int i = 0; i < g_numNickColors; ++i)
{
int numc = 0;
// strcmp
{
extern KVILIB_API int getSmartColorForNick(QString * szNick);
- extern KVILIB_API const char * getSmartColor(int iPos);
+ extern KVILIB_API const char * getSmartColor(int iPos, bool bWithBg);
extern KVILIB_API int getSmartColorIntByMircColor(unsigned char iFore, unsigned char iBack);
}
BOOL_OPTION("CreateMinimizedDccSendWhenAutoAccepted", true, KviOption_sectFlagDcc),
BOOL_OPTION("CreateMinimizedDccChatWhenAutoAccepted", true, KviOption_sectFlagDcc),
BOOL_OPTION("DccGuessIpFromServerWhenLocalIsUnroutable", true, KviOption_sectFlagDcc),
- BOOL_OPTION("ShowRegisteredUsersDialogAsToplevel", true, KviOption_sectFlagFrame), //UNUSED
+ BOOL_OPTION("ColorNicksWithBackground", false, KviOption_sectFlagIrcView | KviOption_groupTheme),
BOOL_OPTION("AutoLogQueries", true, KviOption_sectFlagLogging), /* this options enabled by default in mIRC,XChat and irssi. People are confused while they want to see logs, but see empty dir*/
BOOL_OPTION("AutoLogChannels", true, KviOption_sectFlagLogging),
BOOL_OPTION("AutoLogDccChat", false, KviOption_sectFlagLogging),
#define KviOption_boolCreateMinimizedDccSendWhenAutoAccepted 62 /* dcc::send */
#define KviOption_boolCreateMinimizedDccChatWhenAutoAccepted 63 /* dcc::chat */
#define KviOption_boolDccGuessIpFromServerWhenLocalIsUnroutable 64 /* dcc */
-//#define KviOption_boolShowRegisteredUsersDialogAsToplevel 65 /* interface::features::global */ //UNUSED
+#define KviOption_boolColorNicksWithBackground 65 /* interface::features::components::ircview */
#define KviOption_boolAutoLogQueries 66 /* ircengine::logging */
#define KviOption_boolAutoLogChannels 67 /* ircendine::logging */
#define KviOption_boolAutoLogDccChat 68 /* ircengine::logging */
if(KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick))
{
//avoid the use of the color specifier for own nickname
- if(m_szOwnSmartColor == KviNickColors::getSmartColor(sum))
+ if(m_szOwnSmartColor == KviNickColors::getSmartColor(sum, KVI_OPTION_BOOL(KviOption_boolColorNicksWithBackground)))
sum++;
}
pUserEntry->setSmartNickColor(sum);
}
- szNick.prepend(KviNickColors::getSmartColor(sum));
+ szNick.prepend(KviNickColors::getSmartColor(sum, KVI_OPTION_BOOL(KviOption_boolColorNicksWithBackground)));
}
else
{
if(KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick))
{
//avoid the use of the color specifier for own nickname
- if(m_szOwnSmartColor == KviNickColors::getSmartColor(sum))
+ if(m_szOwnSmartColor == KviNickColors::getSmartColor(sum, KVI_OPTION_BOOL(KviOption_boolColorNicksWithBackground)))
sum++;
}
- szNick.prepend(KviNickColors::getSmartColor(sum));
+ szNick.prepend(KviNickColors::getSmartColor(sum, KVI_OPTION_BOOL(KviOption_boolColorNicksWithBackground)));
}
}
szNick.prepend(KviControlCodes::Color);
m_pUseSmartColorSelector = addBoolSelector(g, __tr2qs_ctx("Smart nickname colors", "options"), KviOption_boolColorNicks);
+ m_pUseSmartColorWithBackgroundSelector = addBoolSelector(g, __tr2qs_ctx("Use a background color for smart nickname colors", "options"), KviOption_boolColorNicksWithBackground);
+
KviTalHBox * hb = new KviTalHBox(g);
hb->setSpacing(4);
m_pSpecialSmartColorSelector = addBoolSelector(hb, __tr2qs_ctx("Use specified colors for own nick:", "options"), KviOption_boolUseSpecifiedSmartColorForOwnNick, KVI_OPTION_BOOL(KviOption_boolColorNicks));
connect(m_pSpecialSmartColorSelector, SIGNAL(toggled(bool)), this, SLOT(enableDisableSmartColorSelector(bool)));
connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), m_pSpecialSmartColorSelector, SLOT(setEnabled(bool)));
+ connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), m_pUseSmartColorWithBackgroundSelector, SLOT(setEnabled(bool)));
KviBoolSelector * b2 = addBoolSelector(g, __tr2qs_ctx("Use same colors as in the userlist", "options"), KviOption_boolUseUserListColorsAsNickColors, !KVI_OPTION_BOOL(KviOption_boolColorNicks));
connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), b2, SLOT(setNotEnabled(bool)));
public:
KviBoolSelector * m_pUseSmartColorSelector;
KviBoolSelector * m_pSpecialSmartColorSelector;
+ KviBoolSelector * m_pUseSmartColorWithBackgroundSelector;
KviMircTextColorSelector * m_pSmartColorSelector;
protected slots:
void enableDisableSmartColorSelector(bool);