allow topic changes to be hidden
authorDaniel Albers <daniel@lbers.com>
Wed, 22 Jul 2009 15:07:20 +0000 (17:07 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sun, 26 Jul 2009 16:05:36 +0000 (18:05 +0200)
adds message type Message::Topic

src/common/message.h
src/core/ircserverhandler.cpp
src/uisupport/contextmenuactionprovider.cpp
src/uisupport/networkmodelcontroller.cpp
src/uisupport/networkmodelcontroller.h
src/uisupport/uistyle.cpp

index ee299c6..1cf0f67 100644 (file)
@@ -46,7 +46,8 @@ public:
     Server    = 0x0400,
     Info      = 0x0800,
     Error     = 0x1000,
     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
   };
 
   // DO NOT CHANGE without knowing what you do, some of these flags are stored in the database
index 3a3d4f0..b942bc2 100644 (file)
@@ -485,7 +485,7 @@ void IrcServerHandler::handleTopic(const QString &prefix, const QList<QByteArray
 
   channel->setTopic(topic);
 
 
   channel->setTopic(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 */
 }
 
 /* RPL_WELCOME */
@@ -884,7 +884,7 @@ void IrcServerHandler::handle331(const QString &prefix, const QList<QByteArray>
   if(chan)
     chan->setTopic(QString());
 
   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 */
 }
 
 /* RPL_TOPIC */
@@ -899,7 +899,7 @@ void IrcServerHandler::handle332(const QString &prefix, const QList<QByteArray>
   if(chan)
     chan->setTopic(topic);
 
   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... */
 }
 
 /* Topic set by... */
@@ -909,7 +909,7 @@ void IrcServerHandler::handle333(const QString &prefix, const QList<QByteArray>
     return;
 
   QString channel = serverDecode(params[0]);
     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()));
 }
 
                   tr("Topic set by %1 on %2") .arg(serverDecode(params[1]), QDateTime::fromTime_t(channelDecode(channel, params[2]).toUInt()).toString()));
 }
 
index 8460149..068b84c 100644 (file)
@@ -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(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..."));
 
   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(HideQuit));
   hideEventsMenu->addAction(action(HideNick));
   hideEventsMenu->addAction(action(HideMode));
+  hideEventsMenu->addAction(action(HideTopic));
   hideEventsMenu->addAction(action(HideDayChange));
   hideEventsMenu->addSeparator();
   hideEventsMenu->addAction(action(HideApplyToAll));
   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(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);
 }
 
   menu->addAction(_hideEventsMenuAction);
 }
index bc8a427..58db561 100644 (file)
@@ -276,6 +276,8 @@ void NetworkModelController::handleHideAction(ActionType type, QAction *action)
     filter |= Message::Mode;
   if(NetworkModelController::action(HideDayChange)->isChecked())
     filter |= Message::DayChange;
     filter |= Message::Mode;
   if(NetworkModelController::action(HideDayChange)->isChecked())
     filter |= Message::DayChange;
+  if(NetworkModelController::action(HideTopic)->isChecked())
+    filter |= Message::Topic;
 
   switch(type) {
   case HideJoin:
 
   switch(type) {
   case HideJoin:
@@ -284,6 +286,7 @@ void NetworkModelController::handleHideAction(ActionType type, QAction *action)
   case HideNick:
   case HideMode:
   case HideDayChange:
   case HideNick:
   case HideMode:
   case HideDayChange:
+  case HideTopic:
     if(_messageFilter)
       BufferSettings(_messageFilter->idString()).setMessageFilter(filter);
     else {
     if(_messageFilter)
       BufferSettings(_messageFilter->idString()).setMessageFilter(filter);
     else {
index 0aa5860..3d91ef9 100644 (file)
@@ -62,6 +62,7 @@ public:
     HideNick = 0x0400,
     HideMode = 0x0500,
     HideDayChange = 0x0600,
     HideNick = 0x0400,
     HideMode = 0x0500,
     HideDayChange = 0x0600,
+    HideTopic = 0x0700,
     HideUseDefaults = 0xe00,
     HideApplyToAll = 0xf00,
 
     HideUseDefaults = 0xe00,
     HideApplyToAll = 0xf00,
 
index 3584afc..19f9fd1 100644 (file)
@@ -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;
       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:
     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;
       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:
     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::Notice:
       return UiStyle::NoticeMsg; break;
+    case Message::Topic:
     case Message::Server:
       return UiStyle::ServerMsg; break;
     case Message::Error:
     case Message::Server:
       return UiStyle::ServerMsg; break;
     case Message::Error: