on xenial help sign in
There's no need for WindowDecoration to access the appDelegate

It damages modularity. Approved by: Michael Zanetti, Unity8 CI Bot

commit30ca5f3511c2b60ed1a97aa676b79b66379c195d authorDaniel d'Andrada <daniel.dandrada@canonical.com> dateTue 29 Nov 2016, 09:38 (10 years ago) parent4833f3032f5d3c
3 files changed+20−9
qml/Stage/DecoratedWindow.qml+1−1 qml/Stage/Stage.qml+15−3 qml/Stage/WindowDecoration.qml+4−5
qml/Stage/DecoratedWindow.qml+1−1
@@ -149,7 +149,7 @@ FocusScope {
149149
150150 WindowDecoration {
151151 id: decoration
152− target: root.parent || null
152+ closeButtonVisible: root.application.appId !== "unity8-dash"
153153 objectName: "appWindowDecoration"
154154 anchors { left: parent.left; top: parent.top; right: parent.right }
155155 height: units.gu(3)
qml/Stage/Stage.qml+15−3
@@ -1529,9 +1529,21 @@ FocusScope {
15291529 onRequestedHeightChanged: oldRequestedHeight = requestedHeight
15301530
15311531 onCloseClicked: { appDelegate.close(); }
1532− onMaximizeClicked: appDelegate.anyMaximized ? appDelegate.restoreFromMaximized() : appDelegate.maximize();
1533− onMaximizeHorizontallyClicked: appDelegate.maximizedHorizontally ? appDelegate.restoreFromMaximized() : appDelegate.maximizeHorizontally()
1534− onMaximizeVerticallyClicked: appDelegate.maximizedVertically ? appDelegate.restoreFromMaximized() : appDelegate.maximizeVertically()
1532+ onMaximizeClicked: {
1533+ if (appDelegate.canBeMaximized) {
1534+ appDelegate.anyMaximized ? appDelegate.restoreFromMaximized() : appDelegate.maximize();
1535+ }
1536+ }
1537+ onMaximizeHorizontallyClicked: {
1538+ if (appDelegate.canBeMaximizedHorizontally) {
1539+ appDelegate.maximizedHorizontally ? appDelegate.restoreFromMaximized() : appDelegate.maximizeHorizontally()
1540+ }
1541+ }
1542+ onMaximizeVerticallyClicked: {
1543+ if (appDelegate.canBeMaximizedVertically) {
1544+ appDelegate.maximizedVertically ? appDelegate.restoreFromMaximized() : appDelegate.maximizeVertically()
1545+ }
1546+ }
15351547 onMinimizeClicked: appDelegate.minimize()
15361548 onDecorationPressed: { appDelegate.focus = true; }
15371549 onDecorationReleased: fakeRectangle.commit();
qml/Stage/WindowDecoration.qml+4−5
@@ -22,7 +22,7 @@ MouseArea {
2222 id: root
2323 clip: true
2424
25− property Item target // appDelegate
25+ property alias closeButtonVisible: buttons.closeButtonShown
2626 property alias title: titleLabel.text
2727 property alias maximizeButtonShown: buttons.maximizeButtonShown
2828 property bool active: false
@@ -40,7 +40,7 @@ MouseArea {
4040 signal maximizeVerticallyClicked()
4141
4242 onDoubleClicked: {
43− if (target.canBeMaximized && mouse.button == Qt.LeftButton) {
43+ if (mouse.button == Qt.LeftButton) {
4444 root.maximizeClicked();
4545 }
4646 }
@@ -77,9 +77,8 @@ MouseArea {
7777 onCloseClicked: root.closeClicked();
7878 onMinimizeClicked: root.minimizeClicked();
7979 onMaximizeClicked: root.maximizeClicked();
80− onMaximizeHorizontallyClicked: if (root.target.canBeMaximizedHorizontally) root.maximizeHorizontallyClicked();
81− onMaximizeVerticallyClicked: if (root.target.canBeMaximizedVertically) root.maximizeVerticallyClicked();
82− closeButtonShown: root.target.appId !== "unity8-dash"
80+ onMaximizeHorizontallyClicked: root.maximizeHorizontallyClicked();
81+ onMaximizeVerticallyClicked: root.maximizeVerticallyClicked();
8382 }
8483
8584 Label {