cleaning up a bit (views menu and mainwin.cpp)
[quassel.git] / src / qtui / mainwin.cpp
index 4d8a943..f3a4ab0 100644 (file)
@@ -138,6 +138,10 @@ void MainWin::init() {
   // restore mainwin state
   restoreState(s.value("MainWinState").toByteArray());
 
+  // restore locked state of docks  
+  ui.actionLockDockPositions->setChecked(s.value("LockDocks", false).toBool());
+  
+
   setDisconnectedState();  // Disable menus and stuff
   showCoreConnectionDlg(true); // autoconnect if appropriate
 
@@ -169,12 +173,9 @@ void MainWin::setupMenus() {
   actionEditNetworks = new QAction(QIcon(":/22x22/actions/configure"), tr("Edit &Networks..."), this);
   ui.menuNetworks->addAction(actionEditNetworks);
   connect(actionEditNetworks, SIGNAL(triggered()), this, SLOT(showNetworkDlg()));
-  connect(ui.actionManageViews, SIGNAL(triggered()), this, SLOT(showManageViewsDlg()));
 }
 
 void MainWin::setupViews() {
-  QAction *separator = ui.menuViews->addSeparator();
-  separator->setData("__EOBV__");
   addBufferView();
 }
 
@@ -202,16 +203,7 @@ void MainWin::addBufferView(BufferViewConfig *config) {
   dock->show();
 
   addDockWidget(Qt::LeftDockWidgetArea, dock);
-
-  QAction *endOfBufferViews = 0;
-  foreach(QAction *action, ui.menuViews->actions()) {
-    if(action->data().toString() == "__EOBV__") {
-      endOfBufferViews = action;
-      break;
-    }
-  }
-  Q_CHECK_PTR(endOfBufferViews);
-  ui.menuViews->insertAction(endOfBufferViews, dock->toggleViewAction());
+  ui.menuBufferViews->addAction(dock->toggleViewAction());
 
   _netViews.append(dock);
 }
@@ -219,13 +211,10 @@ void MainWin::addBufferView(BufferViewConfig *config) {
 void MainWin::removeBufferView(int bufferViewConfigId) {
   QVariant actionData;
   BufferViewDock *dock;
-  foreach(QAction *action, ui.menuViews->actions()) {
+  foreach(QAction *action, ui.menuBufferViews->actions()) {
     actionData = action->data();
     if(!actionData.isValid())
       continue;
-    
-    if(actionData.toString() == "__EOBV__")
-      break;
 
     dock = qobject_cast<BufferViewDock *>(action->parent());
     if(dock && actionData.toInt() == bufferViewConfigId) {
@@ -254,11 +243,19 @@ void MainWin::showNetworkDlg() {
   dlg.exec();
 }
 
-void MainWin::showManageViewsDlg() {
+void MainWin::on_actionManageViews_triggered() {
   SettingsPageDlg dlg(new BufferViewSettingsPage(this), this);
   dlg.exec();
 }
 
+void MainWin::on_actionLockDockPositions_toggled(bool lock) {
+  QList<VerticalDock *> docks = findChildren<VerticalDock *>();
+  foreach(VerticalDock *dock, docks) {
+    dock->showTitle(!lock);
+  }
+  QtUiSettings().setValue("LockDocks", lock);
+}
+
 void MainWin::setupNickWidget() {
   // create nick dock
   NickListDock *nickDock = new NickListDock(tr("Nicks"), this);
@@ -455,13 +452,10 @@ void MainWin::disconnectedFromCore() {
   saveLayout();
   QVariant actionData;
   BufferViewDock *dock;
-  foreach(QAction *action, ui.menuViews->actions()) {
+  foreach(QAction *action, ui.menuBufferViews->actions()) {
     actionData = action->data();
     if(!actionData.isValid())
       continue;
-    
-    if(actionData.toString() == "__EOBV__")
-      break;
 
     dock = qobject_cast<BufferViewDock *>(action->parent());
     if(dock && actionData.toInt() != -1) {