on xenial help sign in
Don't preview if a null response is returned from "scope.preview(result)"
commitea74b6439a18bf55acd63d1e292a9dbb4a2cdd0b authorMarcus Tomlinson <marcus.tomlinson@canonical.com> dateTue 9 Sep 2014, 21:08 (12 years ago) parent688f4d4
4 files changed+21−11
qml/Dash/CardGrid.qml+1−1 qml/Dash/DashRenderer.qml+2−1 qml/Dash/GenericScopeView.qml+16−5 qml/Dash/PreviewListView.qml+2−4
qml/Dash/CardGrid.qml+1−1
@@ -74,7 +74,7 @@ DashRenderer {
7474 Connections {
7575 target: loader.item
7676 onClicked: root.clicked(index, result, loader.item, model)
77− onPressAndHold: root.pressAndHold(index, model)
77+ onPressAndHold: root.pressAndHold(index, result, model)
7878 }
7979 }
8080 }
qml/Dash/DashRenderer.qml+2−1
@@ -47,6 +47,7 @@ Item {
4747
4848 /// Emitted when the user pressed and held on an item
4949 /// @param index is the index of the held item
50+ /// @param result result model of the cliked item, used for activation
5051 /// @param itemModel model of the item
51− signal pressAndHold(int index, var itemModel)
52+ signal pressAndHold(int index, var result, var itemModel)
5253}
qml/Dash/GenericScopeView.qml+16−5
@@ -66,17 +66,25 @@ FocusScope {
6666 // so it's not implemented
6767 scope.activate(result)
6868 } else {
69− openPreview(index, resultsModel, limitedCategoryItemCount);
69+ var previewStack = scope.preview(result);
70+ if (previewStack)
71+ {
72+ openPreview(index, resultsModel, limitedCategoryItemCount, previewStack);
73+ }
7074 }
7175 }
7276
73− function itemPressedAndHeld(index, itemModel, resultsModel, limitedCategoryItemCount) {
77+ function itemPressedAndHeld(index, result, itemModel, resultsModel, limitedCategoryItemCount) {
7478 if (itemModel.uri.indexOf("scope://") !== 0) {
75− openPreview(index, resultsModel, limitedCategoryItemCount);
79+ var previewStack = scope.preview(result);
80+ if (previewStack)
81+ {
82+ openPreview(index, resultsModel, limitedCategoryItemCount, previewStack);
83+ }
7684 }
7785 }
7886
79− function openPreview(index, resultsModel, limitedCategoryItemCount) {
87+ function openPreview(index, resultsModel, limitedCategoryItemCount, previewStack) {
8088 if (limitedCategoryItemCount > 0) {
8189 previewLimitModel.model = resultsModel;
8290 previewLimitModel.limit = limitedCategoryItemCount;
@@ -86,6 +94,7 @@ FocusScope {
8694 }
8795 subPageLoader.initialIndex = -1;
8896 subPageLoader.initialIndex = index;
97+ subPageLoader.previewModel = previewStack.getPreviewModel(0);
8998 subPageLoader.openSubPage("preview");
9099 }
91100
@@ -270,7 +279,7 @@ FocusScope {
270279 }
271280
272281 onPressAndHold: {
273− scopeView.itemPressedAndHeld(index, itemModel, target.model, categoryItemCount());
282+ scopeView.itemPressedAndHeld(index, result, itemModel, target.model, categoryItemCount());
274283 }
275284
276285 function categoryItemCount() {
@@ -519,6 +528,7 @@ FocusScope {
519528 property var scopeStyle: scopeView.scopeStyle
520529 property int initialIndex: -1
521530 property var model: null
531+ property var previewModel: null
522532
523533 readonly property bool processing: item && item.processing || false
524534 readonly property int count: item && item.count || 0
@@ -549,6 +559,7 @@ FocusScope {
549559 item.open = Qt.binding(function() { return subPageLoader.open; } )
550560 item.initialIndex = Qt.binding(function() { return subPageLoader.initialIndex; } )
551561 item.model = Qt.binding(function() { return subPageLoader.model; } )
562+ item.previewModel = Qt.binding(function() { return subPageLoader.previewModel; } )
552563 }
553564 open = true;
554565 }
qml/Dash/PreviewListView.qml+2−4
@@ -26,6 +26,7 @@ Item {
2626 property int initialIndex: -1
2727 property var scope: null
2828 property var scopeStyle: null
29+ property var previewModel: null
2930
3031 property alias showSignatureLine: header.showSignatureLine
3132
@@ -98,10 +99,7 @@ Item {
9899
99100 isCurrent: ListView.isCurrentItem
100101
101− previewModel: {
102− var previewStack = root.scope.preview(result);
103− return previewStack.getPreviewModel(0);
104− }
102+ previewModel: root.previewModel
105103 scopeStyle: root.scopeStyle
106104 }
107105 }