From 58223212a45f91cdcb332fd63fd6815f48ec5f96 Mon Sep 17 00:00:00 2001 From: romibi Date: Wed, 31 Jan 2018 16:13:37 +0100 Subject: [PATCH] Lock Buffer- and Nick-Lists too Fixes #1465 --- src/qtui/mainwin.cpp | 14 ++++++++++++++ src/qtui/nicklistwidget.cpp | 8 ++++++++ src/qtui/nicklistwidget.h | 2 ++ src/uisupport/bufferview.cpp | 8 ++++++++ src/uisupport/bufferview.h | 1 + 5 files changed, 33 insertions(+) diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 7854d89a..21070c39 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -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 nickdocks = findChildren(); + foreach(NickListDock *nickdock, nickdocks) { + nickdock->setLocked(lock); + } + + QList bufferdocks = findChildren(); + 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); diff --git a/src/qtui/nicklistwidget.cpp b/src/qtui/nicklistwidget.cpp index 88e457fa..3ca42c9c 100644 --- a/src/qtui/nicklistwidget.cpp +++ b/src/qtui/nicklistwidget.cpp @@ -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()); diff --git a/src/qtui/nicklistwidget.h b/src/qtui/nicklistwidget.h index 134e0d57..893e7a54 100644 --- a/src/qtui/nicklistwidget.h +++ b/src/qtui/nicklistwidget.h @@ -80,6 +80,8 @@ public: NickListDock(const QString &title, QWidget *parent = 0); // ~NickListDock(); + void setLocked(bool locked); + // virtual bool event(QEvent *event); }; diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 7986118b..bfab3bbf 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -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() { diff --git a/src/uisupport/bufferview.h b/src/uisupport/bufferview.h index 187b6973..d2f577aa 100644 --- a/src/uisupport/bufferview.h +++ b/src/uisupport/bufferview.h @@ -168,6 +168,7 @@ public : inline BufferView *bufferView() const { return qobject_cast(widget()); } inline bool isActive() const { return _active; } void setWidget(QWidget *newWidget); + void setLocked(bool locked); QWidget *widget() const { return _childWidget; } void activateFilter(); -- 2.20.1