From: romibi Date: Sun, 14 Feb 2016 10:50:44 +0000 (+0100) Subject: Add function to "(Dis-)Connect from/to all" in connection dropdown X-Git-Tag: travis-deploy-test~384 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=ccd09eb6ca7377f51d57c546f99c9b1c30ef97c1 Add function to "(Dis-)Connect from/to all" in connection dropdown If I'm not mistaken there needs to be one ActionType per different button layout (with icon/text only)... --- diff --git a/src/uisupport/networkmodelcontroller.cpp b/src/uisupport/networkmodelcontroller.cpp index 6ec88a27..ca00c49a 100644 --- a/src/uisupport/networkmodelcontroller.cpp +++ b/src/uisupport/networkmodelcontroller.cpp @@ -236,12 +236,12 @@ void NetworkModelController::actionTriggered(QAction *action) void NetworkModelController::handleNetworkAction(ActionType type, QAction *) { - if (type == NetworkConnectAll || type == NetworkDisconnectAll) { + if (type == NetworkConnectAllWithDropdown || type == NetworkDisconnectAllWithDropdown || type == NetworkConnectAll || type == NetworkDisconnectAll) { foreach(NetworkId id, Client::networkIds()) { const Network *net = Client::network(id); - if (type == NetworkConnectAll && net->connectionState() == Network::Disconnected) + if ((type == NetworkConnectAllWithDropdown || type == NetworkConnectAll) && net->connectionState() == Network::Disconnected) net->requestConnect(); - if (type == NetworkDisconnectAll && net->connectionState() != Network::Disconnected) + if ((type == NetworkDisconnectAllWithDropdown || type == NetworkDisconnectAll) && net->connectionState() != Network::Disconnected) net->requestDisconnect(); } return; diff --git a/src/uisupport/networkmodelcontroller.h b/src/uisupport/networkmodelcontroller.h index 48b189f7..3abc79dd 100644 --- a/src/uisupport/networkmodelcontroller.h +++ b/src/uisupport/networkmodelcontroller.h @@ -45,8 +45,10 @@ public: NetworkMask = 0x0f, NetworkConnect = 0x01, NetworkDisconnect = 0x02, - NetworkConnectAll = 0x03, - NetworkDisconnectAll = 0x04, + NetworkConnectAllWithDropdown = 0x03, + NetworkDisconnectAllWithDropdown = 0x04, + NetworkConnectAll = 0x05, + NetworkDisconnectAll = 0x06, // Buffer actions BufferMask = 0xf0, diff --git a/src/uisupport/toolbaractionprovider.cpp b/src/uisupport/toolbaractionprovider.cpp index 1adf268c..b94e76dc 100644 --- a/src/uisupport/toolbaractionprovider.cpp +++ b/src/uisupport/toolbaractionprovider.cpp @@ -27,8 +27,10 @@ ToolBarActionProvider::ToolBarActionProvider(QObject *parent) : 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, QIcon::fromTheme("network-connect"), tr("Connect"))->setToolTip(tr("Connect to IRC")); + registerAction(NetworkDisconnectAllWithDropdown, QIcon::fromTheme("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")); @@ -47,16 +49,16 @@ ToolBarActionProvider::ToolBarActionProvider(QObject *parent) _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))); @@ -90,8 +92,8 @@ 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; @@ -204,8 +206,8 @@ 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); }