on xenial help sign in
Redesign for pinned apps. Remove thindivider on top of ubuntu dash button (not needed anymore)
eec67aaAndrea Cimitan
qml/Launcher/LauncherDelegate.qml+15−30
@@ -27,7 +27,7 @@ Item {
27 property bool itemFocused: false
27 property bool itemFocused: false
28 property real maxAngle: 0
28 property real maxAngle: 0
29 property bool inverted: false
29 property bool inverted: false
30− property bool clipCorner: false
30+ property alias pinned: pin.visible
31
31
32 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
32 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
33 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
33 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
@@ -71,6 +71,20 @@ Item {
71 height: root.itemHeight - units.gu(1)
71 height: root.itemHeight - units.gu(1)
72 }
72 }
73
73
74+ Rectangle {
75+ id: pin
76+ anchors {
77+ left: iconShape.left
78+ top: iconShape.top
79+ topMargin: -units.dp(2)
80+ }
81+ width: units.gu(1)
82+ height: width
83+ radius: width / 2
84+ antialiasing: true
85+ color: "white"
86+ }
87+
74 UbuntuShape {
88 UbuntuShape {
75 objectName: "countEmblem"
89 objectName: "countEmblem"
76 anchors {
90 anchors {
@@ -149,24 +163,6 @@ Item {
149 }
163 }
150 }
164 }
151
165
152− Item {
153− id: clipper
154− anchors.centerIn: parent
155− width: iconItem.width
156− height: iconItem.height
157− Rectangle {
158− anchors {
159− fill: parent
160− topMargin: -units.gu(2)
161− leftMargin: -units.gu(2)
162− rightMargin: -units.gu(2)
163− bottomMargin: units.gu(1.2)
164− }
165− color: "red"
166− rotation: root.rotation + 45
167− }
168− }
169−
170 ShaderEffect {
166 ShaderEffect {
171 id: transformEffect
167 id: transformEffect
172 anchors.centerIn: parent
168 anchors.centerIn: parent
@@ -176,7 +172,6 @@ Item {
176 property real itemOpacity: root.itemOpacity
172 property real itemOpacity: root.itemOpacity
177 property real brightness: Math.max(-1, root.brightness)
173 property real brightness: Math.max(-1, root.brightness)
178 property real angle: root.angle
174 property real angle: root.angle
179− property bool clipCorner: root.clipCorner
180 rotation: root.inverted ? 180 : 0
175 rotation: root.inverted ? 180 : 0
181
176
182 property variant source: ShaderEffectSource {
177 property variant source: ShaderEffectSource {
@@ -185,11 +180,6 @@ Item {
185 hideSource: true
180 hideSource: true
186 }
181 }
187
182
188− property var mask: ShaderEffectSource {
189− sourceItem: clipper
190− hideSource: true
191− }
192−
193 transform: [
183 transform: [
194 // Rotating 3 times at top/bottom because that increases the perspective.
184 // Rotating 3 times at top/bottom because that increases the perspective.
195 // This is a hack, but as QML does not support real 3D coordinates
185 // This is a hack, but as QML does not support real 3D coordinates
@@ -224,19 +214,14 @@ Item {
224 fragmentShader: "
214 fragmentShader: "
225 varying highp vec2 qt_TexCoord0;
215 varying highp vec2 qt_TexCoord0;
226 uniform sampler2D source;
216 uniform sampler2D source;
227− uniform sampler2D mask;
228 uniform lowp float brightness;
217 uniform lowp float brightness;
229 uniform lowp float itemOpacity;
218 uniform lowp float itemOpacity;
230 uniform bool clipCorner;
219 uniform bool clipCorner;
231 void main(void)
220 void main(void)
232 {
221 {
233 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
222 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
234− highp vec4 maskColor = texture2D(mask, qt_TexCoord0);
235 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
223 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
236 sourceColor *= itemOpacity;
224 sourceColor *= itemOpacity;
237− if (clipCorner) {
238− sourceColor *= maskColor.a;
239− }
240 gl_FragColor = sourceColor;
225 gl_FragColor = sourceColor;
241 }"
226 }"
242 }
227 }
qml/Launcher/LauncherPanel.qml+5−14
@@ -65,15 +65,6 @@ Rectangle {
65 }
65 }
66 }
66 }
67
67
68− ThinDivider {
69− anchors {
70− left: parent.left
71− right: parent.right
72− margins: -mainColumn.anchors.leftMargin
73− }
74− rotation: root.rotation
75− }
76−
77 Item {
68 Item {
78 anchors.left: parent.left
69 anchors.left: parent.left
79 anchors.right: parent.right
70 anchors.right: parent.right
@@ -158,7 +149,7 @@ Rectangle {
158 count: model.count
149 count: model.count
159 countVisible: model.countVisible
150 countVisible: model.countVisible
160 progress: model.progress
151 progress: model.progress
161− clipCorner: model.pinned
152+ pinned: model.pinned
162 itemFocused: model.focused
153 itemFocused: model.focused
163 inverted: root.inverted
154 inverted: root.inverted
164 z: -Math.abs(offset)
155 z: -Math.abs(offset)
@@ -469,10 +460,10 @@ Rectangle {
469 width: itemWidth
460 width: itemWidth
470 rotation: root.rotation
461 rotation: root.rotation
471 itemOpacity: 0.9
462 itemOpacity: 0.9
472− clipCorner: dndArea.draggedIndex > -1 &&
463+ pinned: dndArea.draggedIndex > -1 &&
473− LauncherModel.get(dndArea.draggedIndex).pinned &&
464+ LauncherModel.get(dndArea.draggedIndex).pinned &&
474− !dndArea.preDragging &&
465+ !dndArea.preDragging &&
475− !dndArea.dragging
466+ !dndArea.dragging
476
467
477 function flatten() {
468 function flatten() {
478 fakeDragItemAnimation.start();
469 fakeDragItemAnimation.start();