Fixing default layout issues with MainWin, closing BR #357
[quassel.git] / src / qtui / mainwin.cpp
index 6d74c01..041a2aa 100644 (file)
@@ -108,26 +108,26 @@ void MainWin::init() {
   connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), SLOT(clientNetworkCreated(NetworkId)));
   connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), SLOT(clientNetworkRemoved(NetworkId)));
 
+  // Setup Dock Areas
+  setDockNestingEnabled(true);
+  setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
+  setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
+  setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
+  setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
+
   // Order is sometimes important
   setupActions();
   setupBufferWidget();
   setupMenus();
   setupViews();
+  setupTopicWidget();
   setupChatMonitor();
   setupNickWidget();
-  setupTopicWidget();
   setupInputWidget();
   setupStatusBar();
   setupSystray();
   setupTitleSetter();
 
-  // Setup Dock Areas
-  setDockNestingEnabled(true);
-  setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
-  setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
-  setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
-  setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
-
   // restore mainwin state
   restoreState(s.value("MainWinState").toByteArray());
 
@@ -176,8 +176,10 @@ void MainWin::setupActions() {
   // View
   coll->addAction("ManageBufferViews", new Action(SmallIcon("view-tree"), tr("&Manage Buffer Views..."), coll,
                                              this, SLOT(on_actionManageViews_triggered())));
-  connect(coll->addAction("LockDockPositions", new Action(tr("&Lock Dock Positions"), coll)), SIGNAL(toggled(bool)),
-           this, SLOT(on_actionLockDockPositions_toggled(bool)));
+  Action *lockAct = coll->addAction("LockDockPositions", new Action(tr("&Lock Dock Positions"), coll));
+  lockAct->setCheckable(true);
+  connect(lockAct, SIGNAL(toggled(bool)), SLOT(on_actionLockDockPositions_toggled(bool)));
+
   coll->addAction("ToggleSearchBar", new Action(SmallIcon("edit-find"), tr("Show &Search Bar"), coll,
                                                  0, 0, tr("Ctrl+F")))->setCheckable(true);
   coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll,
@@ -217,6 +219,7 @@ void MainWin::setupMenus() {
   _viewMenu->addAction(coll->action("ToggleSearchBar"));
   _viewMenu->addAction(coll->action("ToggleStatusBar"));
   _viewMenu->addSeparator();
+  _viewMenu->addAction(coll->action("LockDockPositions"));
 
   _settingsMenu = menuBar()->addMenu(tr("&Settings"));
   _settingsMenu->addAction(coll->action("ConfigureQuassel"));
@@ -367,7 +370,7 @@ void MainWin::setupTopicWidget() {
   topicwidget->setModel(Client::bufferModel());
   topicwidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
 
-  addDockWidget(Qt::TopDockWidgetArea, dock);
+  addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical);
 
   _viewMenu->addAction(dock->toggleViewAction());
   dock->toggleViewAction()->setText(tr("Show Topic Line"));
@@ -466,8 +469,7 @@ void MainWin::setConnectedState() {
   coll->action("ConnectCore")->setEnabled(false);
   coll->action("DisconnectCore")->setEnabled(true);
   coll->action("CoreInfo")->setEnabled(true);
-  _viewMenu->setEnabled(true);
-  _bufferWidget->show();
+  // _viewMenu->setEnabled(true);
   statusBar()->showMessage(tr("Connected to core."));
   if(sslLabel->width() == 0)
     sslLabel->setPixmap(SmallIcon("security-low"));
@@ -523,8 +525,7 @@ void MainWin::setDisconnectedState() {
   coll->action("ConnectCore")->setEnabled(true);
   coll->action("DisconnectCore")->setEnabled(false);
   coll->action("CoreInfo")->setEnabled(false);
-  _viewMenu->setEnabled(false);
-  _bufferWidget->hide();
+  //_viewMenu->setEnabled(false);
   statusBar()->showMessage(tr("Not connected to core."));
   sslLabel->setPixmap(QPixmap());
   updateIcon();