If I'm not mistaken there needs to be one ActionType per different
button layout (with icon/text only)...
void NetworkModelController::handleNetworkAction(ActionType type, QAction *)
{
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);
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)
- if (type == NetworkDisconnectAll && net->connectionState() != Network::Disconnected)
+ if ((type == NetworkDisconnectAllWithDropdown || type == NetworkDisconnectAll) && net->connectionState() != Network::Disconnected)
net->requestDisconnect();
}
return;
net->requestDisconnect();
}
return;
NetworkMask = 0x0f,
NetworkConnect = 0x01,
NetworkDisconnect = 0x02,
NetworkMask = 0x0f,
NetworkConnect = 0x01,
NetworkDisconnect = 0x02,
- NetworkConnectAll = 0x03,
- NetworkDisconnectAll = 0x04,
+ NetworkConnectAllWithDropdown = 0x03,
+ NetworkDisconnectAllWithDropdown = 0x04,
+ NetworkConnectAll = 0x05,
+ NetworkDisconnectAll = 0x06,
// Buffer actions
BufferMask = 0xf0,
// Buffer actions
BufferMask = 0xf0,
ToolBarActionProvider::ToolBarActionProvider(QObject *parent)
: NetworkModelController(parent)
{
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"));
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"));
_networksConnectMenu = new QMenu();
_networksConnectMenu->setSeparatorsCollapsible(false);
_networksConnectMenu->addSeparator();
_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 = 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(), SIGNAL(networkCreated(NetworkId)), SLOT(networkCreated(NetworkId)));
connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), SLOT(networkRemoved(NetworkId)));
{
switch (type) {
case MainToolBar:
{
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;
bar->addAction(action(JoinChannel));
bar->addAction(action(BufferPart));
break;
}
newMenu->insertAction(beforeAction, act);
}
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);
}
action(JoinChannel)->setEnabled(_networksDisconnectMenu->actions().count() > 2);
}