style button is smaller now
[quassel.git] / src / uisupport / networkmodelcontroller.cpp
index cb882f8..be1db92 100644 (file)
@@ -267,11 +267,11 @@ void NetworkModelController::handleHideAction(ActionType type, QAction *action)
 
   int filter = 0;
   if(NetworkModelController::action(HideJoin)->isChecked())
-    filter |= Message::Join;
+    filter |= Message::Join | Message::NetsplitJoin;
   if(NetworkModelController::action(HidePart)->isChecked())
     filter |= Message::Part;
   if(NetworkModelController::action(HideQuit)->isChecked())
-    filter |= Message::Quit;
+    filter |= Message::Quit | Message::NetsplitQuit;
   if(NetworkModelController::action(HideNick)->isChecked())
     filter |= Message::Nick;
   if(NetworkModelController::action(HideMode)->isChecked())
@@ -366,9 +366,6 @@ void NetworkModelController::handleNickAction(ActionType type, QAction *action)
     if(!bufferInfo.isValid())
       continue;
 
-    // the validity of that cast is checked on contextmenu creation, take care
-    IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
-
     switch(type) {
       case NickWhois:
         Client::userInput(bufferInfo, QString("/WHOIS %1 %1").arg(nick));
@@ -408,42 +405,55 @@ void NetworkModelController::handleNickAction(ActionType type, QAction *action)
         Client::userInput(bufferInfo, QString("/KICK %1").arg(nick));
         break;
       case NickSwitchTo:
-        Client::bufferModel()->switchToBuffer(findQueryBuffer(networkId, nick));
-        break;
       case NickQuery:
-        Client::userInput(bufferInfo, QString("/QUERY %1").arg(nick));
+        Client::bufferModel()->switchToOrStartQuery(networkId, nick);
         break;
       case NickIgnoreUser:
+      {
+        IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
+        if(!ircUser)
+          break;
         Client::ignoreListManager()->requestAddIgnoreListItem(IgnoreListManager::SenderIgnore,
-                                                       action->text(),
+                                                       action->property("ignoreRule").toString(),
                                                        false, IgnoreListManager::SoftStrictness,
                                                        IgnoreListManager::NetworkScope,
                                                        ircUser->network()->networkName(), true);
         break;
+      }
       case NickIgnoreHost:
+      {
+        IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
+        if(!ircUser)
+          break;
         Client::ignoreListManager()->requestAddIgnoreListItem(IgnoreListManager::SenderIgnore,
-                                                       action->text(),
+                                                       action->property("ignoreRule").toString(),
                                                        false, IgnoreListManager::SoftStrictness,
                                                        IgnoreListManager::NetworkScope,
                                                        ircUser->network()->networkName(), true);
         break;
+      }
       case NickIgnoreDomain:
+      {
+        IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
+        if(!ircUser)
+          break;
         Client::ignoreListManager()->requestAddIgnoreListItem(IgnoreListManager::SenderIgnore,
-                                                       action->text(),
+                                                       action->property("ignoreRule").toString(),
                                                        false, IgnoreListManager::SoftStrictness,
                                                        IgnoreListManager::NetworkScope,
                                                        ircUser->network()->networkName(), true);
         break;
+      }
       case NickIgnoreCustom:
         // forward that to mainwin since we can access the settingspage only from there
-        emit showIgnoreList(ircUser->hostmask());
+        emit showIgnoreList(action->property("ignoreRule").toString());
         break;
       case NickIgnoreToggleEnabled0:
       case NickIgnoreToggleEnabled1:
       case NickIgnoreToggleEnabled2:
       case NickIgnoreToggleEnabled3:
       case NickIgnoreToggleEnabled4:
-        Client::ignoreListManager()->requestToggleIgnoreRule(action->text());
+        Client::ignoreListManager()->requestToggleIgnoreRule(action->property("ignoreRule").toString());
         break;
       default:
         qWarning() << "Unhandled nick action";