From 342b6d8a5869e438362914f3848e639ac6c70bbc Mon Sep 17 00:00:00 2001 From: Daniel Albers Date: Wed, 22 Jul 2009 17:07:20 +0200 Subject: [PATCH] allow topic changes to be hidden adds message type Message::Topic --- src/common/message.h | 3 ++- src/core/ircserverhandler.cpp | 8 ++++---- src/uisupport/contextmenuactionprovider.cpp | 3 +++ src/uisupport/networkmodelcontroller.cpp | 3 +++ src/uisupport/networkmodelcontroller.h | 1 + src/uisupport/uistyle.cpp | 3 +++ 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/common/message.h b/src/common/message.h index ee299c63..1cf0f678 100644 --- a/src/common/message.h +++ b/src/common/message.h @@ -46,7 +46,8 @@ public: Server = 0x0400, Info = 0x0800, Error = 0x1000, - DayChange = 0x2000 + DayChange = 0x2000, + Topic = 0x4000 }; // DO NOT CHANGE without knowing what you do, some of these flags are stored in the database diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 3a3d4f01..b942bc26 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -485,7 +485,7 @@ void IrcServerHandler::handleTopic(const QString &prefix, const QListsetTopic(topic); - emit displayMsg(Message::Server, BufferInfo::ChannelBuffer, channel->name(), tr("%1 has changed topic for %2 to: \"%3\"").arg(ircuser->nick()).arg(channel->name()).arg(topic)); + emit displayMsg(Message::Topic, BufferInfo::ChannelBuffer, channel->name(), tr("%1 has changed topic for %2 to: \"%3\"").arg(ircuser->nick()).arg(channel->name()).arg(topic)); } /* RPL_WELCOME */ @@ -884,7 +884,7 @@ void IrcServerHandler::handle331(const QString &prefix, const QList if(chan) chan->setTopic(QString()); - emit displayMsg(Message::Server, BufferInfo::ChannelBuffer, channel, tr("No topic is set for %1.").arg(channel)); + emit displayMsg(Message::Topic, BufferInfo::ChannelBuffer, channel, tr("No topic is set for %1.").arg(channel)); } /* RPL_TOPIC */ @@ -899,7 +899,7 @@ void IrcServerHandler::handle332(const QString &prefix, const QList if(chan) chan->setTopic(topic); - emit displayMsg(Message::Server, BufferInfo::ChannelBuffer, channel, tr("Topic for %1 is \"%2\"").arg(channel, topic)); + emit displayMsg(Message::Topic, BufferInfo::ChannelBuffer, channel, tr("Topic for %1 is \"%2\"").arg(channel, topic)); } /* Topic set by... */ @@ -909,7 +909,7 @@ void IrcServerHandler::handle333(const QString &prefix, const QList return; QString channel = serverDecode(params[0]); - emit displayMsg(Message::Server, BufferInfo::ChannelBuffer, channel, + emit displayMsg(Message::Topic, BufferInfo::ChannelBuffer, channel, tr("Topic set by %1 on %2") .arg(serverDecode(params[1]), QDateTime::fromTime_t(channelDecode(channel, params[2]).toUInt()).toString())); } diff --git a/src/uisupport/contextmenuactionprovider.cpp b/src/uisupport/contextmenuactionprovider.cpp index 8460149a..068b84cd 100644 --- a/src/uisupport/contextmenuactionprovider.cpp +++ b/src/uisupport/contextmenuactionprovider.cpp @@ -46,6 +46,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM registerAction(HideNick, tr("Nick Changes"), true); registerAction(HideMode, tr("Mode Changes"), true); registerAction(HideDayChange, tr("Day Changes"), true); + registerAction(HideTopic, tr("Topic Changes"), true); registerAction(HideApplyToAll, tr("Set as Default...")); registerAction(HideUseDefaults, tr("Use Defaults...")); @@ -79,6 +80,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM hideEventsMenu->addAction(action(HideQuit)); hideEventsMenu->addAction(action(HideNick)); hideEventsMenu->addAction(action(HideMode)); + hideEventsMenu->addAction(action(HideTopic)); hideEventsMenu->addAction(action(HideDayChange)); hideEventsMenu->addSeparator(); hideEventsMenu->addAction(action(HideApplyToAll)); @@ -345,6 +347,7 @@ void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, int filter) { action(HideNick)->setChecked(filter & Message::Nick); action(HideMode)->setChecked(filter & Message::Mode); action(HideDayChange)->setChecked(filter & Message::DayChange); + action(HideTopic)->setChecked(filter & Message::Topic); menu->addAction(_hideEventsMenuAction); } diff --git a/src/uisupport/networkmodelcontroller.cpp b/src/uisupport/networkmodelcontroller.cpp index bc8a4276..58db5617 100644 --- a/src/uisupport/networkmodelcontroller.cpp +++ b/src/uisupport/networkmodelcontroller.cpp @@ -276,6 +276,8 @@ void NetworkModelController::handleHideAction(ActionType type, QAction *action) filter |= Message::Mode; if(NetworkModelController::action(HideDayChange)->isChecked()) filter |= Message::DayChange; + if(NetworkModelController::action(HideTopic)->isChecked()) + filter |= Message::Topic; switch(type) { case HideJoin: @@ -284,6 +286,7 @@ void NetworkModelController::handleHideAction(ActionType type, QAction *action) case HideNick: case HideMode: case HideDayChange: + case HideTopic: if(_messageFilter) BufferSettings(_messageFilter->idString()).setMessageFilter(filter); else { diff --git a/src/uisupport/networkmodelcontroller.h b/src/uisupport/networkmodelcontroller.h index 0aa5860a..3d91ef93 100644 --- a/src/uisupport/networkmodelcontroller.h +++ b/src/uisupport/networkmodelcontroller.h @@ -62,6 +62,7 @@ public: HideNick = 0x0400, HideMode = 0x0500, HideDayChange = 0x0600, + HideTopic = 0x0700, HideUseDefaults = 0xe00, HideApplyToAll = 0xf00, diff --git a/src/uisupport/uistyle.cpp b/src/uisupport/uistyle.cpp index 3584afcf..19f9fd1b 100644 --- a/src/uisupport/uistyle.cpp +++ b/src/uisupport/uistyle.cpp @@ -328,6 +328,7 @@ void UiStyle::StyledMessage::style(UiStyle *style) const { t = tr("%D0%1").arg(txt); break; case Message::Notice: t = tr("%Dn%1").arg(txt); break; + case Message::Topic: case Message::Server: t = tr("%Ds%1").arg(txt); break; case Message::Error: @@ -386,6 +387,7 @@ QString UiStyle::StyledMessage::decoratedSender() const { return tr("<%1>").arg(plainSender()); break; case Message::Notice: return tr("[%1]").arg(plainSender()); break; + case Message::Topic: case Message::Server: return tr("*"); break; case Message::Error: @@ -429,6 +431,7 @@ UiStyle::FormatType UiStyle::StyledMessage::senderFormat() const { } case Message::Notice: return UiStyle::NoticeMsg; break; + case Message::Topic: case Message::Server: return UiStyle::ServerMsg; break; case Message::Error: -- 2.20.1