Lock Buffer- and Nick-Lists too
authorromibi <romibi@bluewin.ch>
Wed, 31 Jan 2018 15:13:37 +0000 (16:13 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 5 Apr 2018 21:59:57 +0000 (23:59 +0200)
Fixes #1465

src/qtui/mainwin.cpp
src/qtui/nicklistwidget.cpp
src/qtui/nicklistwidget.h
src/uisupport/bufferview.cpp
src/uisupport/bufferview.h

index 7854d89..21070c3 100644 (file)
@@ -657,6 +657,8 @@ void MainWin::addBufferView(ClientBufferViewConfig *config)
 
     Client::bufferModel()->synchronizeView(view);
 
+    dock->setLocked(QtUiSettings().value("LockLayout", false).toBool());
+
     dock->setWidget(view);
     dock->setVisible(_layoutLoaded); // don't show before state has been restored
 
@@ -884,6 +886,17 @@ void MainWin::on_actionLockLayout_toggled(bool lock)
     foreach(VerticalDock *dock, docks) {
         dock->showTitle(!lock);
     }
+
+    QList<NickListDock *> nickdocks = findChildren<NickListDock *>();
+    foreach(NickListDock *nickdock, nickdocks) {
+        nickdock->setLocked(lock);
+    }
+
+    QList<BufferViewDock *> bufferdocks = findChildren<BufferViewDock *>();
+    foreach(BufferViewDock *bufferdock, bufferdocks) {
+        bufferdock->setLocked(lock);
+    }
+
     if (Client::bufferViewManager()) {
         foreach(ClientBufferViewConfig *config, Client::bufferViewManager()->clientBufferViewConfigs()) {
             config->setLocked(lock);
@@ -899,6 +912,7 @@ void MainWin::setupNickWidget()
     NickListDock *nickDock = new NickListDock(tr("Nicks"), this);
     nickDock->setObjectName("NickDock");
     nickDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+    nickDock->setLocked(QtUiSettings().value("LockLayout", false).toBool());
 
     _nickListWidget = new NickListWidget(nickDock);
     nickDock->setWidget(_nickListWidget);
index 88e457f..3ca42c9 100644 (file)
@@ -241,6 +241,14 @@ NickListDock::NickListDock(const QString &title, QWidget *parent)
 //   }
 }
 
+void NickListDock::setLocked(bool locked) {
+    if (locked) {
+        setFeatures(0);
+    }
+    else {
+        setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    }
+}
 
 // NickListDock::~NickListDock() {
 //   QtUiSettings().setValue("ShowNickList", toggleViewAction()->isChecked());
index 134e0d5..893e7a5 100644 (file)
@@ -80,6 +80,8 @@ public:
     NickListDock(const QString &title, QWidget *parent = 0);
     // ~NickListDock();
 
+    void setLocked(bool locked);
+
     // virtual bool event(QEvent *event);
 };
 
index 7986118..bfab3bb 100644 (file)
@@ -709,6 +709,14 @@ BufferViewDock::BufferViewDock(BufferViewConfig *config, QWidget *parent)
     QDockWidget::setWidget(_widget);
 }
 
+void BufferViewDock::setLocked(bool locked) {
+    if (locked) {
+        setFeatures(0);
+    }
+    else {
+        setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    }
+}
 
 void BufferViewDock::updateTitle()
 {
index 187b697..d2f577a 100644 (file)
@@ -168,6 +168,7 @@ public :
     inline BufferView *bufferView() const { return qobject_cast<BufferView *>(widget()); }
     inline bool isActive() const { return _active; }
     void setWidget(QWidget *newWidget);
+    void setLocked(bool locked);
     QWidget *widget() const { return _childWidget; }
 
     void activateFilter();