OK, disabled warnings for the moment :)
[quassel.git] / src / qtui / mainwin.cpp
index 9ebcca3..a45bfc1 100644 (file)
@@ -33,7 +33,7 @@
 #include "signalproxy.h"
 #include "topicwidget.h"
 #include "inputwidget.h"
-#include "verticaldocktitle.h"
+#include "verticaldock.h"
 #include "uisettings.h"
 
 #include "selectionmodelsynchronizer.h"
@@ -60,6 +60,7 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) : QMainWindow(parent), gui(_gui) {
 
 void MainWin::init() {
   Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant)));
+  Client::signalProxy()->attachSignal(this, SIGNAL(disconnectFromNetwork(NetworkId)));
   ui.bufferWidget->init();
 
   show();
@@ -119,31 +120,18 @@ void MainWin::init() {
     showServerList();
   }
   
+  // DOCK OPTIONS
   setDockNestingEnabled(true);
-  
-  
-  // new Topic Stuff... should be probably refactored out into a separate method
+
   setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
   setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
 
   setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
   setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
 
-
-  QDockWidget *topicDock = new QDockWidget(tr("Topic"), this);
+  // new Topic Stuff... should be probably refactored out into a separate method
+  VerticalDock *topicDock = new VerticalDock(tr("Topic"), this);
   topicDock->setObjectName("TopicDock");
-  topicDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
-
-  QWidget *oldDockTitle = topicDock->titleBarWidget();
-
-  QWidget *newDockTitle = new VerticalDockTitle(topicDock);
-  topicDock->setFeatures(topicDock->features() | QDockWidget::DockWidgetVerticalTitleBar);
-  topicDock->setTitleBarWidget(newDockTitle);
-  
-  if(oldDockTitle)
-    oldDockTitle->deleteLater();
-  
-
   TopicWidget *topicwidget = new TopicWidget(topicDock);
   topicDock->setWidget(topicwidget);
 
@@ -154,25 +142,14 @@ void MainWin::init() {
   ui.menuViews->addAction(topicDock->toggleViewAction());
 
   // NEW INPUT WIDGET -- damn init() needs a cleanup
-  QDockWidget *inputDock = new QDockWidget(tr("Inputline"), this);
+  VerticalDock *inputDock = new VerticalDock(tr("Inputline"), this);
   inputDock->setObjectName("InputDock");
-  inputDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
-
-  oldDockTitle = inputDock->titleBarWidget();
-  newDockTitle = new VerticalDockTitle(inputDock);
-  
-  inputDock->setFeatures(inputDock->features() | QDockWidget::DockWidgetVerticalTitleBar);
-  inputDock->setTitleBarWidget(newDockTitle);
-  
-  if(oldDockTitle)
-    oldDockTitle->deleteLater();
-  
   InputWidget *inputWidget = new InputWidget(inputDock);
   inputDock->setWidget(inputWidget);
 
   addDockWidget(Qt::BottomDockWidgetArea, inputDock);
-  ui.menuViews->addAction(inputDock->toggleViewAction());
 
+  ui.menuViews->addAction(inputDock->toggleViewAction());
 
   inputWidget->setModel(Client::bufferModel());
   inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
@@ -217,7 +194,9 @@ void MainWin::setupMenus() {
   connect(ui.actionEditIdentities, SIGNAL(triggered()), serverListDlg, SLOT(editIdentities()));
   connect(ui.actionSettingsDlg, SIGNAL(triggered()), this, SLOT(showSettingsDlg()));
   connect(ui.actionDebug_Console, SIGNAL(triggered()), this, SLOT(showDebugConsole()));
+  connect(ui.actionDisconnectNet, SIGNAL(triggered()), this, SLOT(disconnectFromNet()));
   connect(ui.actionAboutQt, SIGNAL(triggered()), QApplication::instance(), SLOT(aboutQt()));
+
 }
 
 void MainWin::setupViews() {
@@ -253,13 +232,13 @@ QDockWidget *MainWin::addBufferView(const QString &viewname, QAbstractItemModel
 }
 
 void MainWin::setupSettingsDlg() {
-#ifdef SPUTDEV
-  connect(settingsDlg, SIGNAL(finished(int)), QApplication::instance(), SLOT(quit()));  // FIXME
-#endif
 
   settingsDlg->registerSettingsPage(new FontsSettingsPage(settingsDlg));
   settingsDlg->registerSettingsPage(new IdentitiesSettingsPage(settingsDlg));
-  //settingsDlg->registerSettingsPage(new NetworksSettingsPage(settingsDlg));
+#ifdef SPUTDEV
+  settingsDlg->registerSettingsPage(new NetworksSettingsPage(settingsDlg));
+  connect(settingsDlg, SIGNAL(finished(int)), QApplication::instance(), SLOT(quit()));  // FIXME
+#endif
 }
 
 void MainWin::connectedToCore() {
@@ -342,7 +321,10 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas
     else
       hide();
   }
-  
-  
-  
 }
+
+void MainWin::disconnectFromNet() {
+  int i = QInputDialog::getInteger(this, tr("Disconnect from Network"), tr("Enter network id:"));
+  emit disconnectFromNetwork(NetworkId(i));
+}
+