src: Yearly copyright bump
[quassel.git] / src / uisupport / contextmenuactionprovider.cpp
index 6ef3868..e5837f6 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2018 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -21,9 +21,9 @@
 #include "contextmenuactionprovider.h"
 
 #include <QInputDialog>
+#include <QMap>
 #include <QMenu>
 #include <QMessageBox>
-#include <QMap>
 
 #include "buffermodel.h"
 #include "buffersettings.h"
@@ -33,7 +33,8 @@
 #include "network.h"
 #include "util.h"
 
-ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkModelController(parent)
+ContextMenuActionProvider::ContextMenuActionProvider(QObject* parent)
+    : NetworkModelController(parent)
 {
     registerAction(NetworkConnect, icon::get("network-connect"), tr("Connect"));
     registerAction(NetworkDisconnect, icon::get("network-disconnect"), tr("Disconnect"));
@@ -92,7 +93,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM
     registerAction(ShowNetworkConfig, tr("Configure"));
     registerAction(ShowIgnoreList, tr("Show Ignore List"));
 
-    QMenu *hideEventsMenu = new QMenu();
+    auto* hideEventsMenu = new QMenu();
     hideEventsMenu->addAction(action(HideJoinPartQuit));
     hideEventsMenu->addSeparator();
     hideEventsMenu->addAction(action(HideJoin));
@@ -108,7 +109,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM
     _hideEventsMenuAction = new Action(tr("Hide Events"), nullptr);
     _hideEventsMenuAction->setMenu(hideEventsMenu);
 
-    QMenu *nickCtcpMenu = new QMenu();
+    auto* nickCtcpMenu = new QMenu();
     nickCtcpMenu->addAction(action(NickCtcpPing));
     nickCtcpMenu->addAction(action(NickCtcpVersion));
     nickCtcpMenu->addAction(action(NickCtcpTime));
@@ -116,7 +117,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM
     _nickCtcpMenuAction = new Action(tr("CTCP"), nullptr);
     _nickCtcpMenuAction->setMenu(nickCtcpMenu);
 
-    QMenu *nickModeMenu = new QMenu();
+    auto* nickModeMenu = new QMenu();
     nickModeMenu->addAction(action(NickOp));
     nickModeMenu->addAction(action(NickDeop));
     // this is where the halfops will be placed if available
@@ -131,7 +132,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM
     _nickModeMenuAction = new Action(tr("Actions"), nullptr);
     _nickModeMenuAction->setMenu(nickModeMenu);
 
-    QMenu *ignoreMenu = new QMenu();
+    auto* ignoreMenu = new QMenu();
     _nickIgnoreMenuAction = new Action(tr("Ignore"), nullptr);
     _nickIgnoreMenuAction->setMenu(ignoreMenu);
 
@@ -139,11 +140,10 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM
     // They don't need any of the Action fancyness so we use plain QActions
     _ignoreDescriptions << new QAction(tr("Add Ignore Rule"), this);
     _ignoreDescriptions << new QAction(tr("Existing Rules"), this);
-    foreach(QAction *act, _ignoreDescriptions)
-    act->setEnabled(false);
+    foreach (QAction* act, _ignoreDescriptions)
+        act->setEnabled(false);
 }
 
-
 ContextMenuActionProvider::~ContextMenuActionProvider()
 {
     _hideEventsMenuAction->menu()->deleteLater();
@@ -158,51 +158,44 @@ ContextMenuActionProvider::~ContextMenuActionProvider()
     _ignoreDescriptions.clear();
 }
 
-
-void ContextMenuActionProvider::addActions(QMenu *menu, BufferId bufId, QObject *receiver, const char *method)
+void ContextMenuActionProvider::addActions(QMenu* menu, BufferId bufId, ActionSlot slot)
 {
     if (!bufId.isValid())
         return;
-    addActions(menu, Client::networkModel()->bufferIndex(bufId), receiver, method);
+    addActions(menu, Client::networkModel()->bufferIndex(bufId), std::move(slot));
 }
 
-
-void ContextMenuActionProvider::addActions(QMenu *menu, const QModelIndex &index, QObject *receiver, const char *method, bool isCustomBufferView)
+void ContextMenuActionProvider::addActions(QMenu* menu, const QModelIndex& index, ActionSlot slot, bool isCustomBufferView)
 {
     if (!index.isValid())
         return;
-    addActions(menu, QList<QModelIndex>() << index, nullptr, QString(), receiver, method, isCustomBufferView);
+    addActions(menu, QList<QModelIndex>() << index, nullptr, QString(), std::move(slot), isCustomBufferView);
 }
 
-
-void ContextMenuActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, QObject *receiver, const char *slot)
+void ContextMenuActionProvider::addActions(QMenu* menu, MessageFilter* filter, BufferId msgBuffer, ActionSlot slot)
 {
-    addActions(menu, filter, msgBuffer, QString(), receiver, slot);
+    addActions(menu, filter, msgBuffer, QString(), std::move(slot));
 }
 
-
-void ContextMenuActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver, const char *method)
+void ContextMenuActionProvider::addActions(QMenu* menu, MessageFilter* filter, BufferId msgBuffer, const QString& chanOrNick, ActionSlot slot)
 {
     if (!filter)
         return;
-    addActions(menu, QList<QModelIndex>() << Client::networkModel()->bufferIndex(msgBuffer), filter, chanOrNick, receiver, method, false);
+    addActions(menu, QList<QModelIndex>() << Client::networkModel()->bufferIndex(msgBuffer), filter, chanOrNick, std::move(slot), false);
 }
 
-
-void ContextMenuActionProvider::addActions(QMenu *menu, const QList<QModelIndex> &indexList, QObject *receiver,  const char *method, bool isCustomBufferView)
+void ContextMenuActionProvider::addActions(QMenu* menu, const QList<QModelIndex>& indexList, ActionSlot slot, bool isCustomBufferView)
 {
-    addActions(menu, indexList, nullptr, QString(), receiver, method, isCustomBufferView);
+    addActions(menu, indexList, nullptr, QString(), std::move(slot), isCustomBufferView);
 }
 
-
 // add a list of actions sensible for the current item(s)
-void ContextMenuActionProvider::addActions(QMenu *menu,
-    const QList<QModelIndex> &indexList_,
-    MessageFilter *filter_,
-    const QString &contextItem_,
-    QObject *receiver_,
-    const char *method_,
-    bool isCustomBufferView)
+void ContextMenuActionProvider::addActions(QMenu* menu,
+                                           const QList<QModelIndex>& indexList_,
+                                           MessageFilter* filter_,
+                                           const QString& contextItem_,
+                                           ActionSlot actionSlot,
+                                           bool isCustomBufferView)
 {
     if (!indexList_.count())
         return;
@@ -210,7 +203,7 @@ void ContextMenuActionProvider::addActions(QMenu *menu,
     setIndexList(indexList_);
     setMessageFilter(filter_);
     setContextItem(contextItem_);
-    setSlot(receiver_, method_);
+    setSlot(std::move(actionSlot));
 
     if (!messageFilter()) {
         // this means we are in a BufferView (or NickView) rather than a ChatView
@@ -274,13 +267,12 @@ void ContextMenuActionProvider::addActions(QMenu *menu,
     }
 }
 
-
-void ContextMenuActionProvider::addNetworkItemActions(QMenu *menu, const QModelIndex &index)
+void ContextMenuActionProvider::addNetworkItemActions(QMenu* menu, const QModelIndex& index)
 {
     NetworkId networkId = index.data(NetworkModel::NetworkIdRole).value<NetworkId>();
     if (!networkId.isValid())
         return;
-    const Network *network = Client::network(networkId);
+    const Networknetwork = Client::network(networkId);
     Q_CHECK_PTR(network);
     if (!network)
         return;
@@ -294,8 +286,7 @@ void ContextMenuActionProvider::addNetworkItemActions(QMenu *menu, const QModelI
     addAction(JoinChannel, menu, index, ActiveState);
 }
 
-
-void ContextMenuActionProvider::addBufferItemActions(QMenu *menu, const QModelIndex &index, bool isCustomBufferView)
+void ContextMenuActionProvider::addBufferItemActions(QMenu* menu, const QModelIndex& index, bool isCustomBufferView)
 {
     BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
 
@@ -312,10 +303,9 @@ void ContextMenuActionProvider::addBufferItemActions(QMenu *menu, const QModelIn
         addAction(BufferRemove, menu, index, InactiveState);
         break;
 
-    case BufferInfo::QueryBuffer:
-    {
-        //IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
-        //if(ircUser) {
+    case BufferInfo::QueryBuffer: {
+        // IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
+        // if(ircUser) {
         addIrcUserActions(menu, index);
         menu->addSeparator();
         //}
@@ -333,8 +323,7 @@ void ContextMenuActionProvider::addBufferItemActions(QMenu *menu, const QModelIn
     }
 }
 
-
-void ContextMenuActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex &index)
+void ContextMenuActionProvider::addIrcUserActions(QMenu* menu, const QModelIndex& index)
 {
     // this can be called: a) as a nicklist context menu (index has IrcUserItemType)
     //                     b) as a query buffer context menu (index has BufferItemType and is a QueryBufferItem)
@@ -348,9 +337,9 @@ void ContextMenuActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex
         addAction(_nickModeMenuAction, menu, itemType == NetworkModel::IrcUserItemType);
         addAction(_nickCtcpMenuAction, menu);
 
-        IrcUser *ircUser = qobject_cast<IrcUser *>(index.data(NetworkModel::IrcUserRole).value<QObject *>());
+        auto* ircUser = qobject_cast<IrcUser*>(index.data(NetworkModel::IrcUserRole).value<QObject*>());
         if (ircUser) {
-            Network *network = ircUser->network();
+            Networknetwork = ircUser->network();
             // only show entries for usermode +h if server supports it
             if (network && network->prefixModes().contains('h')) {
                 action(NickHalfop)->setVisible(true);
@@ -365,7 +354,9 @@ void ContextMenuActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex
             BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
             if (bufferInfo.type() == BufferInfo::ChannelBuffer)
                 bufferName = bufferInfo.bufferName();
-            QMap<QString, bool> ignoreMap = Client::ignoreListManager()->matchingRulesForHostmask(ircUser->hostmask(), ircUser->network()->networkName(), bufferName);
+            QMap<QString, bool> ignoreMap = Client::ignoreListManager()->matchingRulesForHostmask(ircUser->hostmask(),
+                                                                                                  ircUser->network()->networkName(),
+                                                                                                  bufferName);
             addIgnoreMenu(menu, ircUser->hostmask(), ignoreMap);
             // end of ignoreliststuff
         }
@@ -381,26 +372,22 @@ void ContextMenuActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex
     }
 }
 
-
-Action *ContextMenuActionProvider::addAction(ActionType type, QMenu *menu, const QModelIndex &index, ItemActiveStates requiredActiveState)
+Action* ContextMenuActionProvider::addAction(ActionType type, QMenu* menu, const QModelIndex& index, ItemActiveStates requiredActiveState)
 {
     return addAction(action(type), menu, checkRequirements(index, requiredActiveState));
 }
 
-
-Action *ContextMenuActionProvider::addAction(Action *action, QMenu *menu, const QModelIndex &index, ItemActiveStates requiredActiveState)
+Action* ContextMenuActionProvider::addAction(Action* action, QMenu* menu, const QModelIndex& index, ItemActiveStates requiredActiveState)
 {
     return addAction(action, menu, checkRequirements(index, requiredActiveState));
 }
 
-
-Action *ContextMenuActionProvider::addAction(ActionType type, QMenu *menu, bool condition)
+Action* ContextMenuActionProvider::addAction(ActionType type, QMenu* menu, bool condition)
 {
     return addAction(action(type), menu, condition);
 }
 
-
-Action *ContextMenuActionProvider::addAction(Action *action, QMenu *menu, bool condition)
+Action* ContextMenuActionProvider::addAction(Action* action, QMenu* menu, bool condition)
 {
     if (condition) {
         menu->addAction(action);
@@ -412,8 +399,7 @@ Action *ContextMenuActionProvider::addAction(Action *action, QMenu *menu, bool c
     return action;
 }
 
-
-void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, BufferId bufferId)
+void ContextMenuActionProvider::addHideEventsMenu(QMenu* menu, BufferId bufferId)
 {
     if (BufferSettings(bufferId).hasFilter())
         addHideEventsMenu(menu, BufferSettings(bufferId).messageFilter());
@@ -421,8 +407,7 @@ void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, BufferId bufferId
         addHideEventsMenu(menu);
 }
 
-
-void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, MessageFilter *msgFilter)
+void ContextMenuActionProvider::addHideEventsMenu(QMenu* menu, MessageFilter* msgFilter)
 {
     if (BufferSettings(msgFilter->idString()).hasFilter())
         addHideEventsMenu(menu, BufferSettings(msgFilter->idString()).messageFilter());
@@ -430,8 +415,7 @@ void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, MessageFilter *ms
         addHideEventsMenu(menu);
 }
 
-
-void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, int filter)
+void ContextMenuActionProvider::addHideEventsMenu(QMenu* menu, int filter)
 {
     action(HideApplyToAll)->setEnabled(filter != -1);
     action(HideUseDefaults)->setEnabled(filter != -1);
@@ -449,16 +433,15 @@ void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, int filter)
     menu->addAction(_hideEventsMenuAction);
 }
 
-
-void ContextMenuActionProvider::addIgnoreMenu(QMenu *menu, const QString &hostmask, const QMap<QString, bool> &ignoreMap)
+void ContextMenuActionProvider::addIgnoreMenu(QMenu* menu, const QString& hostmask, const QMap<QString, bool>& ignoreMap)
 {
-    QMenu *ignoreMenu = _nickIgnoreMenuAction->menu();
+    QMenuignoreMenu = _nickIgnoreMenuAction->menu();
     ignoreMenu->clear();
     QString nick = nickFromMask(hostmask);
     QString ident = userFromMask(hostmask);
     QString host = hostFromMask(hostmask);
     QString domain = host;
-    QRegExp domainRx = QRegExp("(\\.[^.]+\\.\\w+\\D)$");
+    QRegExp domainRx = QRegExp(R"((\.[^.]+\.\w+\D)$)");
     if (domainRx.indexIn(host) != -1)
         domain = domainRx.cap(1);
     // we can't rely on who-data
@@ -478,8 +461,7 @@ void ContextMenuActionProvider::addIgnoreMenu(QMenu *menu, const QString &hostma
         action(NickIgnoreHost)->setText(text);
         action(NickIgnoreHost)->setProperty("ignoreRule", text);
 
-        text = domain.at(0) == '.' ? QString("*!%1@*%2").arg(ident, domain)
-               : QString("*!%1@%2").arg(ident, domain);
+        text = domain.at(0) == '.' ? QString("*!%1@*%2").arg(ident, domain) : QString("*!%1@%2").arg(ident, domain);
 
         action(NickIgnoreDomain)->setText(text);
         action(NickIgnoreDomain)->setProperty("ignoreRule", text);
@@ -508,8 +490,8 @@ void ContextMenuActionProvider::addIgnoreMenu(QMenu *menu, const QString &hostma
             ignoreMenu->addAction(_ignoreDescriptions.at(1));
         while (ruleIter != ignoreMap.constEnd()) {
             if (counter < 5) {
-                ActionType type = static_cast<ActionType>(NickIgnoreToggleEnabled0 + counter*0x100000);
-                Action *act = action(type);
+                auto type = static_cast<ActionType>(NickIgnoreToggleEnabled0 + counter * 0x100000);
+                Actionact = action(type);
                 act->setText(ruleIter.key());
                 act->setProperty("ignoreRule", ruleIter.key());
                 act->setChecked(ruleIter.value());