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

It damages modularity.

commit375fe27bdfe96ec8ed5482ba322d71fdd55f5e3f authorDaniel d'Andrada <daniel.dandrada@canonical.com> dateThu 10 Nov 2016, 11:05 (10 years ago) parent8e86b3c
3 files changed+21−9
qml/Stage/DecoratedWindow.qml+1−1 qml/Stage/Stage.qml+15−3 qml/Stage/WindowDecoration.qml+5−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
@@ -1467,9 +1467,21 @@ FocusScope {
14671467 onRequestedHeightChanged: oldRequestedHeight = requestedHeight
14681468
14691469 onCloseClicked: { appDelegate.close(); }
1470− onMaximizeClicked: appDelegate.anyMaximized ? appDelegate.restoreFromMaximized() : appDelegate.maximize();
1471− onMaximizeHorizontallyClicked: appDelegate.maximizedHorizontally ? appDelegate.restoreFromMaximized() : appDelegate.maximizeHorizontally()
1472− onMaximizeVerticallyClicked: appDelegate.maximizedVertically ? appDelegate.restoreFromMaximized() : appDelegate.maximizeVertically()
1470+ onMaximizeClicked: {
1471+ if (appDelegate.canBeMaximized) {
1472+ appDelegate.anyMaximized ? appDelegate.restoreFromMaximized() : appDelegate.maximize();
1473+ }
1474+ }
1475+ onMaximizeHorizontallyClicked: {
1476+ if (appDelegate.canBeMaximizedHorizontally) {
1477+ appDelegate.maximizedHorizontally ? appDelegate.restoreFromMaximized() : appDelegate.maximizeHorizontally()
1478+ }
1479+ }
1480+ onMaximizeVerticallyClicked: {
1481+ if (appDelegate.canBeMaximizedVertically) {
1482+ appDelegate.maximizedVertically ? appDelegate.restoreFromMaximized() : appDelegate.maximizeVertically()
1483+ }
1484+ }
14731485 onMinimizeClicked: appDelegate.minimize()
14741486 onDecorationPressed: { appDelegate.focus = true; }
14751487 onDecorationReleased: fakeRectangle.commit();
qml/Stage/WindowDecoration.qml+5−5
@@ -22,7 +22,7 @@ MouseArea {
2222 id: root
2323 clip: true
2424
25− property Item target // appDelegate
25+ property bool closeButtonVisible
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,9 @@ 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();
82+ closeButtonShown: root.closeButtonVisible
8383 }
8484
8585 Label {