Fixed the missing network name in the chat monitor
[quassel.git] / src / qtui / mainwin.cpp
index c0b6110..e88dd35 100644 (file)
@@ -30,6 +30,7 @@
 #include "buffermodel.h"
 #include "nicklistwidget.h"
 #include "settingsdlg.h"
+#include "settingspagedlg.h"
 #include "signalproxy.h"
 #include "topicwidget.h"
 #include "inputwidget.h"
@@ -118,8 +119,8 @@ void MainWin::setupMenus() {
   connect(ui.actionAboutQt, SIGNAL(triggered()), QApplication::instance(), SLOT(aboutQt()));
 
   actionEditNetworks = new QAction(QIcon(":/22x22/actions/configure"), tr("Edit &Networks..."), this);
-  actionEditNetworks->setEnabled(false); // FIXME
   ui.menuNetworks->addAction(actionEditNetworks);
+  connect(actionEditNetworks, SIGNAL(triggered()), this, SLOT(showNetworkDlg()));
 }
 
 void MainWin::setupViews() {
@@ -330,6 +331,11 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas
   }
 }
 
+void MainWin::showNetworkDlg() {
+  SettingsPageDlg dlg(new NetworksSettingsPage(this), this);
+  dlg.exec();
+}
+
 void MainWin::clientNetworkCreated(NetworkId id) {
   const Network *net = Client::network(id);
   QAction *act = new QAction(net->networkName(), this);
@@ -349,7 +355,6 @@ void MainWin::clientNetworkCreated(NetworkId id) {
   foreach(QAction *a, networkActions) ui.menuNetworks->addAction(a);
   ui.menuNetworks->addSeparator();
   ui.menuNetworks->addAction(actionEditNetworks);
-
 }
 
 void MainWin::clientNetworkUpdated() {
@@ -374,11 +379,15 @@ void MainWin::clientNetworkUpdated() {
 }
 
 void MainWin::clientNetworkRemoved(NetworkId id) {
-  foreach(QAction *a, networkActions) {
-    if(a->data().value<NetworkId>() == id) {
-      a->deleteLater();
-      break;
-    }
+  QList<QAction *>::iterator actionIter = networkActions.begin();;
+  QAction *action;
+  while(actionIter != networkActions.end()) {
+    action = *actionIter;
+    if(action->data().value<NetworkId>() == id) {
+      action->deleteLater();
+      actionIter = networkActions.erase(actionIter);
+    } else
+      actionIter++;
   }
 }