on xenial help sign in
make use of actual workspace model instead of dummy ListModels
commit6c68622cdeff243721976e807bba6b31f5dc8b46 authorMichael Zanetti <michael.zanetti@canonical.com> dateThu 23 Feb 2017, 18:36 (10 years ago) parent17872af
4 files changed+13−28
plugins/WindowManager/WorkspaceModel.h+4−4 qml/Stage/Spread/ScreensAndWorkspaces.qml+6−14 qml/Stage/Spread/WorkspacePreview.qml−1 qml/Stage/Spread/Workspaces.qml+3−9
plugins/WindowManager/WorkspaceModel.h+4−4
@@ -40,10 +40,10 @@ public:
4040
4141 explicit WorkspaceModel(QObject *parent = 0);
4242
43− void append(Workspace* workspace);
44− void insert(int index, Workspace* workspace);
45− void remove(Workspace* workspace);
46− void move(int from, int to);
43+ Q_INVOKABLE void append(Workspace* workspace);
44+ Q_INVOKABLE void insert(int index, Workspace* workspace);
45+ Q_INVOKABLE void remove(Workspace* workspace);
46+ Q_INVOKABLE void move(int from, int to);
4747
4848 // From QAbstractItemModel
4949 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
qml/Stage/Spread/ScreensAndWorkspaces.qml+6−14
@@ -1,7 +1,7 @@
11import QtQuick 2.4
22import Ubuntu.Components 1.3
33import Ubuntu.Components.Popups 1.3
4−import Unity.Screens 0.1
4+import WindowManager 1.0
55import Unity.Application 0.1
66import ".."
77
@@ -91,7 +91,10 @@ Item {
9191 actions: ActionList {
9292 Action {
9393 text: "Add workspace"
94− onTriggered: workspaces.workspaceModel.append({text: "" + (workspaces.workspaceModel.count + 1)})
94+ onTriggered: {
95+ var workspace = WorkspaceManager.createWorkspace();
96+ workspaces.workspaceModel.append(workspace);
97+ }
9598 }
9699 }
97100 }
@@ -110,18 +113,7 @@ Item {
110113 screen: model.screen
111114 background: root.background
112115
113− workspaceModel: ListModel {
114− onCountChanged: print("model count changed to", count)
115− ListElement {text: "1"}
116− ListElement {text: "2"}
117− ListElement {text: "3"}
118− ListElement {text: "4"}
119− ListElement {text: "5"}
120− ListElement {text: "6"}
121−// ListElement {text: "7"}
122−// ListElement {text: "8"}
123−// ListElement {text: "9"}
124− }
116+ workspaceModel: model.screen.workspaces
125117 }
126118 }
127119 }
qml/Stage/Spread/WorkspacePreview.qml−1
@@ -1,6 +1,5 @@
11import QtQuick 2.4
22import Ubuntu.Components 1.3
3−import Unity.Screens 0.1
43import Unity.Application 0.1
54import ".."
65import "../../Components"
qml/Stage/Spread/Workspaces.qml+3−9
@@ -19,7 +19,7 @@ Item {
1919
2020 onEntered: {
2121 var index = listView.getDropIndex(drag);
22− listView.model.insert(index, {text: drag.source.text})
22+ listView.model.insert(index, drag.source.workspace)
2323 listView.dropItemIndex = index;
2424 drag.source.inDropArea = true;
2525 }
@@ -243,7 +243,7 @@ Item {
243243 var itemCoords = clickedItem.mapToItem(listView, -listView.leftMargin, 0);
244244 fakeDragItem.x = itemCoords.x
245245 fakeDragItem.y = itemCoords.y
246− fakeDragItem.text = listView.model.get(draggedIndex).text
246+ fakeDragItem.workspace = model.workspace
247247
248248 var mouseCoordsInItem = mapToItem(clickedItem, mouseX, mouseY);
249249 fakeDragItem.Drag.hotSpot.x = mouseCoordsInItem.x
@@ -264,14 +264,8 @@ Item {
264264 Drag.active: mouseArea.drag.active
265265 Drag.keys: ['workspace']
266266
267− property string text
267+ property var workspace
268268 property bool inDropArea: false
269− Label {
270− anchors.centerIn: parent
271− text: parent.text
272− color: "red"
273− fontSize: "large"
274− }
275269
276270 Rectangle {
277271 anchors.fill: parent