diff options
| -rw-r--r-- | src/kvirc/kernel/kvi_options.cpp | 7 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_options.h | 10 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_console.cpp | 35 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_selectors.cpp | 2 | ||||
| -rw-r--r-- | src/modules/options/optw_messages.cpp | 25 | ||||
| -rw-r--r-- | src/modules/options/optw_messages.h | 6 |
6 files changed, 62 insertions, 23 deletions
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp index 34fd01b08..3894c9488 100644 --- a/src/kvirc/kernel/kvi_options.cpp +++ b/src/kvirc/kernel/kvi_options.cpp @@ -312,7 +312,8 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS]= BOOL_OPTION("PlaceNickWithNonAlphaCharsAtEnd",true,KviOption_sectFlagGui | KviOption_resetUpdateGui), BOOL_OPTION("UseStartTlsIfAvailable",true,KviOption_sectFlagConnection), BOOL_OPTION("PasteLastLogOnChannelJoin",false,KviOption_sectFlagLogging), - BOOL_OPTION("PasteLastLogOnQueryJoin",false,KviOption_sectFlagLogging) + BOOL_OPTION("PasteLastLogOnQueryJoin",false,KviOption_sectFlagLogging), + BOOL_OPTION("UseSpecifiedSmartColorForOwnNick",false,KviOption_sectFlagIrcView | KviOption_groupTheme) }; #define STRING_OPTION(_txt,_val,_flags) KviStringOption(KVI_STRING_OPTIONS_PREFIX _txt,_val,_flags) @@ -638,7 +639,9 @@ KviUIntOption g_uintOptionsTable[KVI_NUM_UINT_OPTIONS]= UINT_OPTION("DaysIntervalToPasteOnChannelJoin",10,KviOption_sectFlagLogging), UINT_OPTION("LinesToPasteOnQueryJoin",10,KviOption_sectFlagLogging), UINT_OPTION("DaysIntervalToPasteOnQueryJoin",10,KviOption_sectFlagLogging), - UINT_OPTION("SpacesToExpandTabulationInput",4,KviOption_sectFlagInput) + UINT_OPTION("SpacesToExpandTabulationInput",4,KviOption_sectFlagInput), + UINT_OPTION("UserIrcViewOwnForeground",4,KviOption_sectFlagIrcView | KviOption_groupTheme), + UINT_OPTION("UserIrcViewOwnBackground",8,KviOption_sectFlagIrcView | KviOption_groupTheme) }; #define FONT_OPTION(_name,_face,_size,_flags) \ diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h index 920d83858..87b92bf33 100644 --- a/src/kvirc/kernel/kvi_options.h +++ b/src/kvirc/kernel/kvi_options.h @@ -320,8 +320,8 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList) #define KviOption_boolUseStartTlsIfAvailable 226 #define KviOption_boolPasteLastLogOnChannelJoin 227 /* channel */ #define KviOption_boolPasteLastLogOnQueryJoin 228 /* query */ - -#define KVI_NUM_BOOL_OPTIONS 229 +#define KviOption_boolUseSpecifiedSmartColorForOwnNick 229 /* interface::ircview */ +#define KVI_NUM_BOOL_OPTIONS 230 @@ -471,7 +471,6 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList) #define KviOption_colorUserListViewAwayForeground 54 /* look & feel::interface look::userlist */ #define KviOption_colorUserListViewOwnForeground 55 /* look & feel::interface look::userlist */ #define KviOption_colorUserListViewIrcOpForeground 56 /* look & feel::interface look::userlist */ - #define KVI_NUM_COLOR_OPTIONS 57 @@ -577,8 +576,9 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList) #define KviOption_uintLinesToPasteOnQueryJoin 71 /* query */ #define KviOption_uintDaysIntervalToPasteOnQueryJoin 72 /* query */ #define KviOption_uintSpacesToExpandTabulationInput 73 /* number of spaces used in tabulation expansion in the inputbar */ - -#define KVI_NUM_UINT_OPTIONS 74 +#define KviOption_uintUserIrcViewOwnForeground 74 /* look & feel::ircview */ +#define KviOption_uintUserIrcViewOwnBackground 75 /* look & feel::ircview */ +#define KVI_NUM_UINT_OPTIONS 76 namespace KviIdentdOutputMode { enum Mode { diff --git a/src/kvirc/ui/kvi_console.cpp b/src/kvirc/ui/kvi_console.cpp index f96ed689a..c77294c80 100644 --- a/src/kvirc/ui/kvi_console.cpp +++ b/src/kvirc/ui/kvi_console.cpp @@ -753,17 +753,34 @@ void KviConsole::outputPrivmsg(KviWindow *wnd, if(KVI_OPTION_BOOL(KviOption_boolColorNicks)) { - int sum = 0; - int i = nick.length(); - const QChar * aux = nick.unicode(); - // FIXME: Shouldn't this be case insensitive ? - while(i > 0) + if(KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick) && \ + (QString::compare(nick,connection()->userInfo()->nickName(),Qt::CaseSensitive)==0)) { - sum += aux->unicode(); - aux++; - i--; + QString szOwnColor; + int back = KVI_OPTION_UINT(KviOption_uintUserIrcViewOwnBackground); + if(back==KVI_TRANSPARENT) + { + KviQString::sprintf(szOwnColor,"%d", \ + KVI_OPTION_UINT(KviOption_uintUserIrcViewOwnForeground)); + } else { + KviQString::sprintf(szOwnColor,"%d,%d", \ + KVI_OPTION_UINT(KviOption_uintUserIrcViewOwnForeground), \ + back); + } + szNick.prepend(szOwnColor); + } else { + int sum = 0; + int i = nick.length(); + const QChar * aux = nick.unicode(); + // FIXME: Shouldn't this be case insensitive ? + while(i > 0) + { + sum += aux->unicode(); + aux++; + i--; + } + szNick.prepend(g_nickColors[sum % KVI_NUM_NICK_COLORS]); } - szNick.prepend(g_nickColors[sum % KVI_NUM_NICK_COLORS]); szNick.prepend(KVI_TEXT_COLOR); szNick.append(KVI_TEXT_COLOR); } diff --git a/src/kvirc/ui/kvi_selectors.cpp b/src/kvirc/ui/kvi_selectors.cpp index 889f1c651..3bdefbdc1 100644 --- a/src/kvirc/ui/kvi_selectors.cpp +++ b/src/kvirc/ui/kvi_selectors.cpp @@ -607,7 +607,7 @@ KviMircTextColorSelector::KviMircTextColorSelector(QWidget * par,const QString & { QPixmap tmp(120,16); tmp.fill(KVI_OPTION_MIRCCOLOR(i)); - int id = m_pForePopup->insertItem(tmp,QString("x")); + int id = m_pBackPopup->insertItem(tmp,QString("x")); m_pBackPopup->setItemParameter(id,i); } m_pContextPopup->insertItem(__tr2qs("Background"),m_pBackPopup); diff --git a/src/modules/options/optw_messages.cpp b/src/modules/options/optw_messages.cpp index 3e21a7501..c79b47bd7 100644 --- a/src/modules/options/optw_messages.cpp +++ b/src/modules/options/optw_messages.cpp @@ -68,9 +68,6 @@ KviPrivmsgOptionsWidget::KviPrivmsgOptionsWidget(QWidget * parent) setObjectName("privmsg_options_widget"); createLayout(); - KviBoolSelector * b1; - KviBoolSelector * b2; - KviTalGroupBox * g = addGroupBox(0,0,0,0,Qt::Horizontal,__tr2qs_ctx("General","options")); addBoolSelector(g,__tr2qs_ctx("Show message icons","options"),KviOption_boolIrcViewShowImages); @@ -79,9 +76,20 @@ KviPrivmsgOptionsWidget::KviPrivmsgOptionsWidget(QWidget * parent) g = addGroupBox(0,1,0,1,Qt::Horizontal,__tr2qs_ctx("Nicknames","options")); - b1 = addBoolSelector(g,__tr2qs_ctx("\"Smart\" nickname colors","options"),KviOption_boolColorNicks); - b2 = addBoolSelector(g,__tr2qs_ctx("Use same colors as in the userlist","options"),KviOption_boolUseUserListColorsAsNickColors,!KVI_OPTION_BOOL(KviOption_boolColorNicks)); - connect(b1,SIGNAL(toggled(bool)),b2,SLOT(setNotEnabled(bool))); + m_pUseSmartColorSelector = addBoolSelector(g,__tr2qs_ctx("\"Smart\" nickname colors","options"),KviOption_boolColorNicks); + + 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)); + + m_pSmartColorSelector = addMircTextColorSelector(hb,"",KviOption_uintUserIrcViewOwnForeground,KviOption_uintUserIrcViewOwnBackground,KVI_OPTION_BOOL(KviOption_boolColorNicks) && KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick)); + + connect(m_pSpecialSmartColorSelector,SIGNAL(toggled(bool)),this,SLOT(enableDisableSmartColorSelector(bool))); + connect(m_pUseSmartColorSelector,SIGNAL(toggled(bool)),m_pSpecialSmartColorSelector,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))); + addBoolSelector(g,__tr2qs_ctx("Show nicknames in bold","options"),KviOption_boolBoldedNicks); addBoolSelector(g,__tr2qs_ctx("Show user and host","options"),KviOption_boolShowUserAndHostInPrivmsgView); addBoolSelector(g,__tr2qs_ctx("Show channel mode prefix","options"),KviOption_boolShowChannelUserFlagInPrivmsgView); @@ -111,6 +119,11 @@ KviPrivmsgOptionsWidget::KviPrivmsgOptionsWidget(QWidget * parent) addRowSpacer(0,3,0,3); } +void KviPrivmsgOptionsWidget::enableDisableSmartColorSelector(bool) +{ + m_pSmartColorSelector->setEnabled(m_pUseSmartColorSelector->isChecked() && m_pUseSmartColorSelector->isChecked()); +} + KviPrivmsgOptionsWidget::~KviPrivmsgOptionsWidget() { } diff --git a/src/modules/options/optw_messages.h b/src/modules/options/optw_messages.h index 3a52ff565..d2a5fef6f 100644 --- a/src/modules/options/optw_messages.h +++ b/src/modules/options/optw_messages.h @@ -63,6 +63,12 @@ class KviPrivmsgOptionsWidget : public KviOptionsWidget public: KviPrivmsgOptionsWidget(QWidget * parent); ~KviPrivmsgOptionsWidget(); +public: + KviBoolSelector * m_pUseSmartColorSelector; + KviBoolSelector * m_pSpecialSmartColorSelector; + KviMircTextColorSelector * m_pSmartColorSelector; +protected slots: + void enableDisableSmartColorSelector(bool); }; #define KVI_OPTIONS_WIDGET_ICON_KviTimestampOptionsWidget KVI_SMALLICON_TIME |
