From fd40ef7f4d2298783af26e3f9c8a6dd8f453621c Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Sun, 22 Jan 2017 13:29:40 +0200 Subject: [PATCH] update locations when dock changes location --updates the available locations in the configuration window when any dock updates its location --- app/dockcorona.cpp | 1 + app/dockcorona.h | 1 + app/dockview.cpp | 4 +++- app/dockview.h | 1 + shell/contents/configuration/BehaviorConfig.qml | 16 ++++++++-------- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/dockcorona.cpp b/app/dockcorona.cpp index 072ee22e3..8bec7ef1b 100644 --- a/app/dockcorona.cpp +++ b/app/dockcorona.cpp @@ -282,6 +282,7 @@ void DockCorona::addDock(Plasma::Containment *containment) dockView->setContainment(containment); connect(containment, &QObject::destroyed, this, &DockCorona::dockContainmentDestroyed); connect(containment, &Plasma::Applet::destroyedChanged, this, &DockCorona::destroyedChanged); + connect(containment, &Plasma::Applet::locationChanged, this, &DockCorona::dockLocationChanged); dockView->show(); m_dockViews[containment] = dockView; emit docksCountChanged(); diff --git a/app/dockcorona.h b/app/dockcorona.h index 030908a33..1447866b6 100644 --- a/app/dockcorona.h +++ b/app/dockcorona.h @@ -65,6 +65,7 @@ public slots: signals: void configurationShown(PlasmaQuick::ConfigView *configView); void docksCountChanged(); + void dockLocationChanged(); private slots: void destroyedChanged(bool destroyed); diff --git a/app/dockview.cpp b/app/dockview.cpp index 122627589..04861f6cc 100644 --- a/app/dockview.cpp +++ b/app/dockview.cpp @@ -83,8 +83,10 @@ DockView::DockView(Plasma::Corona *corona, QScreen *targetScreen) }, Qt::DirectConnection); auto *dockCorona = qobject_cast(this->corona()); - if (dockCorona) + if (dockCorona) { connect(dockCorona, &DockCorona::docksCountChanged, this, &DockView::docksCountChanged); + connect(dockCorona, &DockCorona::dockLocationChanged, this, &DockView::dockLocationChanged); + } } DockView::~DockView() diff --git a/app/dockview.h b/app/dockview.h index 89ee1f0b9..5d45cc26b 100644 --- a/app/dockview.h +++ b/app/dockview.h @@ -117,6 +117,7 @@ signals: void removeInternalViewSplitter(); void eventTriggered(QEvent *ev); + void dockLocationChanged(); void docksCountChanged(); void widthChanged(); void heightChanged(); diff --git a/shell/contents/configuration/BehaviorConfig.qml b/shell/contents/configuration/BehaviorConfig.qml index 89fe49ef6..03f9d74e6 100644 --- a/shell/contents/configuration/BehaviorConfig.qml +++ b/shell/contents/configuration/BehaviorConfig.qml @@ -58,10 +58,10 @@ PlasmaComponents.Page { Layout.rightMargin: units.smallSpacing * 2 spacing: 1 - property int docksCount: dock.docksCount - - onDocksCountChanged: { - lockReservedEdges() + Connections{ + target: dock + onDockLocationChanged: locationLayout.lockReservedEdges(); + onDocksCountChanged: locationLayout.lockReservedEdges(); } ExclusiveGroup { @@ -317,9 +317,9 @@ PlasmaComponents.Page { Layout.leftMargin: units.smallSpacing * 2 Layout.rightMargin: units.smallSpacing * 2 Layout.alignment: Qt.AlignHCenter - + spacing: units.smallSpacing - + PlasmaComponents.Label { Layout.fillWidth: false horizontalAlignment: Text.AlignRight @@ -328,7 +328,7 @@ PlasmaComponents.Page { LatteTextField { Layout.preferredWidth: width enabled: dock.visibility.mode !== Latte.Dock.AlwaysVisible - + text: dock.visibility.timerShow onValueChanged: { @@ -345,7 +345,7 @@ PlasmaComponents.Page { LatteTextField{ Layout.preferredWidth: width enabled: dock.visibility.mode !== Latte.Dock.AlwaysVisible - + text: dock.visibility.timerHide onValueChanged: {