+void MainWin::clientNetworkUpdated() {
+ const Network *net = qobject_cast<const Network *>(sender());
+ if(!net) return;
+ foreach(QAction *a, networkActions) {
+ if(a->data().value<NetworkId>() == net->networkId()) {
+ a->setText(net->networkName());
+ if(net->connectionState() == Network::Initialized) {
+ a->setIcon(QIcon(":/16x16/actions/network-connect"));
+ a->setEnabled(true);
+ } else if(net->connectionState() == Network::Disconnected) {
+ a->setIcon(QIcon(":/16x16/actions/network-disconnect"));
+ a->setEnabled(true);
+ } else {
+ a->setIcon(QIcon(":/16x16/actions/gear"));
+ a->setEnabled(false);
+ }
+ return;
+ }
+ }
+}
+
+void MainWin::clientNetworkRemoved(NetworkId id) {
+ foreach(QAction *a, networkActions) {
+ if(a->data().value<NetworkId>() == id) {
+ a->deleteLater();
+ break;
+ }
+ }
+}
+
+void MainWin::connectOrDisconnectFromNet() {
+ QAction *act = qobject_cast<QAction *>(sender());
+ if(!act) return;
+ const Network *net = Client::network(act->data().value<NetworkId>());
+ if(!net) return;
+ if(net->connectionState() == Network::Disconnected) net->requestConnect();
+ else net->requestDisconnect();
+}