Core: in LDAP authenticator, don't try database auth with blank password
[quassel.git] / src / uisupport / toolbaractionprovider.cpp
index ed8ea61..c65a62d 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 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  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#include <QIcon>
+#include "toolbaractionprovider.h"
+
 #include <QMenu>
 #include <QToolBar>
 
-#include "toolbaractionprovider.h"
+#include "icon.h"
 
-ToolBarActionProvider::ToolBarActionProvider(QObject *parent)
+ToolBarActionProvider::ToolBarActionProvider(QObjectparent)
     : NetworkModelController(parent)
 {
-    registerAction(NetworkConnectAll, QIcon::fromTheme("network-connect"), tr("Connect"))->setToolTip(tr("Connect to IRC"));
-    registerAction(NetworkDisconnectAll, QIcon::fromTheme("network-disconnect"), tr("Disconnect"))->setToolTip(tr("Disconnect from IRC"));
+    registerAction(NetworkConnectAllWithDropdown, icon::get("network-connect"), tr("Connect"))->setToolTip(tr("Connect to IRC"));
+    registerAction(NetworkDisconnectAllWithDropdown, icon::get("network-disconnect"), tr("Disconnect"))->setToolTip(tr("Disconnect from IRC"));
+    registerAction(NetworkConnectAll, tr("Connect to all"));
+    registerAction(NetworkDisconnectAll, tr("Disconnect from all"));
 
-    registerAction(BufferPart, QIcon::fromTheme("irc-close-channel"), tr("Part"))->setToolTip(tr("Leave currently selected channel"));
-    registerAction(JoinChannel, QIcon::fromTheme("irc-join-channel"), tr("Join"))->setToolTip(tr("Join a channel"));
+    registerAction(BufferPart, icon::get("irc-close-channel"), tr("Part"))->setToolTip(tr("Leave currently selected channel"));
+    registerAction(JoinChannel, icon::get("irc-join-channel"), tr("Join"))->setToolTip(tr("Join a channel"));
 
-    registerAction(NickQuery, QIcon::fromTheme("mail-message-new"), tr("Query"))->setToolTip(tr("Start a private conversation")); // fix icon
-    registerAction(NickWhois, QIcon::fromTheme("im-user"), tr("Whois"))->setToolTip(tr("Request user information")); // fix icon
+    registerAction(NickQuery, icon::get("mail-message-new"), tr("Query"))->setToolTip(tr("Start a private conversation"));  // fix icon
+    registerAction(NickWhois, icon::get("im-user"), tr("Whois"))->setToolTip(tr("Request user information"));               // fix icon
 
-    registerAction(NickOp, QIcon::fromTheme("irc-operator"), tr("Op"))->setToolTip(tr("Give operator privileges to user"));
-    registerAction(NickDeop, QIcon::fromTheme("irc-remove-operator"), tr("Deop"))->setToolTip(tr("Take operator privileges from user"));
-    registerAction(NickVoice, QIcon::fromTheme("irc-voice"), tr("Voice"))->setToolTip(tr("Give voice to user"));
-    registerAction(NickDevoice, QIcon::fromTheme("irc-unvoice"), tr("Devoice"))->setToolTip(tr("Take voice from user"));
-    registerAction(NickKick, QIcon::fromTheme("im-kick-user"), tr("Kick"))->setToolTip(tr("Remove user from channel"));
-    registerAction(NickBan, QIcon::fromTheme("im-ban-user"), tr("Ban"))->setToolTip(tr("Ban user from channel"));
-    registerAction(NickKickBan, QIcon::fromTheme("im-ban-kick-user"), tr("Kick/Ban"))->setToolTip(tr("Remove and ban user from channel"));
+    registerAction(NickOp, icon::get("irc-operator"), tr("Op"))->setToolTip(tr("Give operator privileges to user"));
+    registerAction(NickDeop, icon::get("irc-remove-operator"), tr("Deop"))->setToolTip(tr("Take operator privileges from user"));
+    registerAction(NickVoice, icon::get("irc-voice"), tr("Voice"))->setToolTip(tr("Give voice to user"));
+    registerAction(NickDevoice, icon::get("irc-unvoice"), tr("Devoice"))->setToolTip(tr("Take voice from user"));
+    registerAction(NickKick, icon::get("im-kick-user"), tr("Kick"))->setToolTip(tr("Remove user from channel"));
+    registerAction(NickBan, icon::get("im-ban-user"), tr("Ban"))->setToolTip(tr("Ban user from channel"));
+    registerAction(NickKickBan, icon::get("im-ban-kick-user"), tr("Kick/Ban"))->setToolTip(tr("Remove and ban user from channel"));
 
     _networksConnectMenu = new QMenu();
     _networksConnectMenu->setSeparatorsCollapsible(false);
     _networksConnectMenu->addSeparator();
-    _networksConnectMenu->addAction(tr("Connect to all"));
-    action(NetworkConnectAll)->setMenu(_networksConnectMenu);
-    action(NetworkConnectAll)->setEnabled(false);
+    _networksConnectMenu->addAction(action(NetworkConnectAll));
+    action(NetworkConnectAllWithDropdown)->setMenu(_networksConnectMenu);
+    action(NetworkConnectAllWithDropdown)->setEnabled(false);
 
     _networksDisconnectMenu = new QMenu();
     _networksDisconnectMenu->setSeparatorsCollapsible(false);
     _networksDisconnectMenu->addSeparator();
-    _networksDisconnectMenu->addAction(tr("Disconnect from all"));
-    action(NetworkDisconnectAll)->setMenu(_networksDisconnectMenu);
-    action(NetworkDisconnectAll)->setEnabled(false);
+    _networksDisconnectMenu->addAction(action(NetworkDisconnectAll));
+    action(NetworkDisconnectAllWithDropdown)->setMenu(_networksDisconnectMenu);
+    action(NetworkDisconnectAllWithDropdown)->setEnabled(false);
 
-    connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), SLOT(networkCreated(NetworkId)));
-    connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), SLOT(networkRemoved(NetworkId)));
+    connect(Client::instance(), &Client::networkCreated, this, &ToolBarActionProvider::networkCreated);
+    connect(Client::instance(), &Client::networkRemoved, this, &ToolBarActionProvider::networkRemoved);
 
     updateStates();
 }
 
-
-ToolBarActionProvider::~ToolBarActionProvider()
-{
-}
-
-
 void ToolBarActionProvider::disconnectedFromCore()
 {
     _currentBuffer = QModelIndex();
@@ -77,21 +74,19 @@ void ToolBarActionProvider::disconnectedFromCore()
     NetworkModelController::disconnectedFromCore();
 }
 
-
 void ToolBarActionProvider::updateStates()
 {
-    action(BufferPart)->setEnabled(_currentBuffer.isValid()
-        && _currentBuffer.data(NetworkModel::BufferTypeRole) == BufferInfo::ChannelBuffer
-        && _currentBuffer.data(NetworkModel::ItemActiveRole).toBool());
+    action(BufferPart)
+        ->setEnabled(_currentBuffer.isValid() && _currentBuffer.data(NetworkModel::BufferTypeRole) == BufferInfo::ChannelBuffer
+                     && _currentBuffer.data(NetworkModel::ItemActiveRole).toBool());
 }
 
-
-void ToolBarActionProvider::addActions(QToolBar *bar, ToolBarType type)
+void ToolBarActionProvider::addActions(QToolBar* bar, ToolBarType type)
 {
     switch (type) {
     case MainToolBar:
-        bar->addAction(action(NetworkConnectAll));
-        bar->addAction(action(NetworkDisconnectAll));
+        bar->addAction(action(NetworkConnectAllWithDropdown));
+        bar->addAction(action(NetworkDisconnectAllWithDropdown));
         bar->addAction(action(JoinChannel));
         bar->addAction(action(BufferPart));
         break;
@@ -112,91 +107,82 @@ void ToolBarActionProvider::addActions(QToolBar *bar, ToolBarType type)
     }
 }
 
-
-void ToolBarActionProvider::currentBufferChanged(const QModelIndex &index)
+void ToolBarActionProvider::onCurrentBufferChanged(const QModelIndex& index)
 {
     _currentBuffer = index;
     updateStates();
 }
 
-
-void ToolBarActionProvider::nickSelectionChanged(const QModelIndexList &indexList)
+void ToolBarActionProvider::onNickSelectionChanged(const QModelIndexList& indexList)
 {
     _selectedNicks = indexList;
     updateStates();
 }
 
-
 // override those to set indexes right
-void ToolBarActionProvider::handleNetworkAction(ActionType type, QAction *action)
+void ToolBarActionProvider::handleNetworkAction(ActionType type, QActionaction)
 {
     setIndexList(_currentBuffer);
     NetworkModelController::handleNetworkAction(type, action);
 }
 
-
-void ToolBarActionProvider::handleBufferAction(ActionType type, QAction *action)
+void ToolBarActionProvider::handleBufferAction(ActionType type, QAction* action)
 {
     setIndexList(_currentBuffer);
     NetworkModelController::handleBufferAction(type, action);
 }
 
-
-void ToolBarActionProvider::handleNickAction(ActionType type, QAction *action)
+void ToolBarActionProvider::handleNickAction(ActionType type, QAction* action)
 {
     setIndexList(_selectedNicks);
     NetworkModelController::handleNickAction(type, action);
 }
 
-
-void ToolBarActionProvider::handleGeneralAction(ActionType type, QAction *action)
+void ToolBarActionProvider::handleGeneralAction(ActionType type, QAction* action)
 {
     setIndexList(_currentBuffer);
     NetworkModelController::handleGeneralAction(type, action);
 }
 
-
 void ToolBarActionProvider::networkCreated(NetworkId id)
 {
-    const Network *net = Client::network(id);
-    Action *act = new Action(net->networkName(), this);
+    const Networknet = Client::network(id);
+    Actionact = new Action(net->networkName(), this);
     _networkActions[id] = act;
     act->setObjectName(QString("NetworkAction-%1").arg(id.toInt()));
     act->setData(QVariant::fromValue<NetworkId>(id));
-    connect(net, SIGNAL(updatedRemotely()), SLOT(networkUpdated()));
-    connect(act, SIGNAL(triggered()), SLOT(connectOrDisconnectNet()));
+    connect(net, &Network::updatedRemotely, this, [this]() { networkUpdated(); });
+    connect(act, &QAction::triggered, this, &ToolBarActionProvider::connectOrDisconnectNet);
     networkUpdated(net);
 }
 
-
 void ToolBarActionProvider::networkRemoved(NetworkId id)
 {
-    Action *act = _networkActions.take(id);
+    Actionact = _networkActions.take(id);
     if (act)
         act->deleteLater();
 }
 
-
-void ToolBarActionProvider::networkUpdated(const Network *net)
+void ToolBarActionProvider::networkUpdated(const Network* net)
 {
     if (!net)
-        net = qobject_cast<const Network *>(sender());
+        net = qobject_cast<const Network*>(sender());
     if (!net)
         return;
-    Action *act = _networkActions.value(net->networkId());
+    Actionact = _networkActions.value(net->networkId());
     if (!act)
         return;
 
     _networksConnectMenu->removeAction(act);
     _networksDisconnectMenu->removeAction(act);
 
-    QMenu *newMenu = net->connectionState() != Network::Disconnected ? _networksDisconnectMenu : _networksConnectMenu;
+    QMenunewMenu = net->connectionState() != Network::Disconnected ? _networksDisconnectMenu : _networksConnectMenu;
     act->setText(net->networkName());
 
     const int lastidx = newMenu->actions().count() - 2;
-    QAction *beforeAction = newMenu->actions().at(lastidx);
+    QActionbeforeAction = newMenu->actions().at(lastidx);
     for (int i = 0; i < newMenu->actions().count() - 2; i++) {
-        QAction *action = newMenu->actions().at(i);
+        QActionaction = newMenu->actions().at(i);
         if (net->networkName().localeAwareCompare(action->text()) < 0) {
             beforeAction = action;
             break;
@@ -204,24 +190,24 @@ void ToolBarActionProvider::networkUpdated(const Network *net)
     }
     newMenu->insertAction(beforeAction, act);
 
-    action(NetworkConnectAll)->setEnabled(_networksConnectMenu->actions().count() > 2);
-    action(NetworkDisconnectAll)->setEnabled(_networksDisconnectMenu->actions().count() > 2);
+    action(NetworkConnectAllWithDropdown)->setEnabled(_networksConnectMenu->actions().count() > 2);
+    action(NetworkDisconnectAllWithDropdown)->setEnabled(_networksDisconnectMenu->actions().count() > 2);
     action(JoinChannel)->setEnabled(_networksDisconnectMenu->actions().count() > 2);
 }
 
-
 void ToolBarActionProvider::connectOrDisconnectNet()
 {
-    QAction *act = qobject_cast<QAction *>(sender());
+    auto* act = qobject_cast<QAction*>(sender());
     if (!act)
         return;
-    const Network *net = Client::network(act->data().value<NetworkId>());
+    const Networknet = Client::network(act->data().value<NetworkId>());
     if (!net)
         return;
 
-    if (net->connectionState() == Network::Disconnected) net->requestConnect();
-    else net->requestDisconnect();
+    if (net->connectionState() == Network::Disconnected)
+        net->requestConnect();
+    else
+        net->requestDisconnect();
 }
 
-
-//void ToolBarActionProvider::
+// void ToolBarActionProvider::