aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/kvirc/kernel/kvi_options.cpp7
-rw-r--r--src/kvirc/kernel/kvi_options.h10
-rw-r--r--src/kvirc/ui/kvi_console.cpp35
-rw-r--r--src/kvirc/ui/kvi_selectors.cpp2
-rw-r--r--src/modules/options/optw_messages.cpp25
-rw-r--r--src/modules/options/optw_messages.h6
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