Merge lp:~mzanetti/telegram-app/listitem into lp:telegram-app
- listitem
- Merge into telegram
Proposed by
Michael Zanetti
Status: | Merged |
---|---|
Approved by: | MichaĆ Karnicki |
Approved revision: | 160 |
Merged at revision: | 157 |
Proposed branch: | lp:~mzanetti/telegram-app/listitem |
Merge into: | lp:telegram-app |
Diff against target: |
858 lines (+41/-683) 9 files modified
telegram/app/qml/AccountMessageList.qml (+36/-34) telegram/app/qml/InstallStickerDialog.qml (+2/-2) telegram/app/qml/components/AccountPanelItem.qml (+0/-2) telegram/app/qml/components/MessagesListItem.qml (+3/-5) telegram/app/qml/components/listitems/ImageWithFallback.qml (+0/-46) telegram/app/qml/components/listitems/ListItemWithActions.qml (+0/-515) telegram/app/qml/components/listitems/ListItemWithActionsCheckBox.qml (+0/-25) telegram/app/qml/components/listitems/ProgressionVisual.qml (+0/-52) telegram/app/telegram.qrc (+0/-2) |
To merge this branch: | bzr merge lp:~mzanetti/telegram-app/listitem |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Michael Zanetti | Abstain | ||
Review via email: mp+287545@code.launchpad.net |
Commit message
update MessageListItem to uitk ListItem
This replaces the last occurance of the custom ListItemWithAction
so that one can be dropped. This seems to help a little with
scrolling performance and also fixes some listview contentY placement
issues.
Description of the change
To post a comment you must log in.
Revision history for this message
Michael Zanetti (mzanetti) wrote : | # |
> just found an issue... clicking images is broken
fixed
review:
Abstain
Revision history for this message
Andrea Bernabei (faenil) wrote : | # |
lgtm
- 160. By Michael Zanetti
-
improve hiding of the divider
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'telegram/app/qml/AccountMessageList.qml' |
2 | --- telegram/app/qml/AccountMessageList.qml 2016-02-29 10:22:26 +0000 |
3 | +++ telegram/app/qml/AccountMessageList.qml 2016-03-01 11:29:27 +0000 |
4 | @@ -228,48 +228,51 @@ |
5 | visibleNames: isChat |
6 | opacity: filterId == user.id || filterId == -1 ? 1 : 0.1 |
7 | |
8 | - leftSideActions: [ |
9 | - Action { |
10 | - iconName: "delete" |
11 | - text: i18n.tr("Delete") |
12 | - onTriggered: telegram.deleteMessages([item.id]) |
13 | - } |
14 | - ] |
15 | + leadingActions: ListItemActions { |
16 | + actions: [ |
17 | + Action { |
18 | + iconName: "delete" |
19 | + text: i18n.tr("Delete") |
20 | + onTriggered: telegram.deleteMessages([item.id]) |
21 | + } |
22 | + ] |
23 | + } |
24 | |
25 | - rightSideActions: [ |
26 | + trailingActions: ListItemActions { |
27 | // TODO resend action |
28 | - Action { |
29 | - iconName: "edit-copy" |
30 | - text: i18n.tr("Copy") |
31 | - visible: !message_item.hasMedia |
32 | - onTriggered: Clipboard.push(item.message) |
33 | - }, |
34 | - Action { |
35 | - iconName: "info" |
36 | - text: i18n.tr("Sticker Pack info") |
37 | - visible: message_item.isSticker && telegramObject.documentStickerId(message_item.media.document) !== 0 |
38 | - onTriggered: { |
39 | - sticker_installer.doc = message_item.media.document |
40 | - telegramObject.getStickerSet(sticker_installer.doc) |
41 | + actions: [ |
42 | + Action { |
43 | + iconName: "edit-copy" |
44 | + text: i18n.tr("Copy") |
45 | + visible: !message_item.hasMedia |
46 | + onTriggered: Clipboard.push(item.message) |
47 | + }, |
48 | + Action { |
49 | + iconName: "info" |
50 | + text: i18n.tr("Sticker Pack info") |
51 | + visible: message_item.isSticker && telegramObject.documentStickerId(message_item.media.document) !== 0 |
52 | + onTriggered: { |
53 | + sticker_installer.doc = message_item.media.document |
54 | + telegramObject.getStickerSet(sticker_installer.doc) |
55 | + } |
56 | + }, |
57 | + Action { |
58 | + iconName: "next" |
59 | + text: i18n.tr("Forward") |
60 | + visible: enchat == telegramObject.nullEncryptedChat |
61 | + onTriggered: forwardMessages([message.id]) |
62 | } |
63 | - }, |
64 | - Action { |
65 | - iconName: "next" |
66 | - text: i18n.tr("Forward") |
67 | - visible: enchat == telegramObject.nullEncryptedChat |
68 | - onTriggered: forwardMessages([message.id]) |
69 | - } |
70 | - |
71 | - ] |
72 | + ] |
73 | + } |
74 | |
75 | selected: mlist.isSelected(message_item) |
76 | - selectionMode: mlist.isInSelectionMode |
77 | + selectMode: mlist.isInSelectionMode |
78 | |
79 | onDialogRequest: acc_msg_list.dialogRequest(dialog) |
80 | onTagSearchRequest: acc_msg_list.tagSearchRequest(tag) |
81 | onMessageFocusRequest: focusOnMessage(msgId) |
82 | |
83 | - onItemPressAndHold: { |
84 | + onPressAndHold: { |
85 | mlist.clearSelection(); |
86 | mlist.startSelection(); |
87 | if (mlist.isInSelectionMode) { |
88 | @@ -277,7 +280,7 @@ |
89 | } |
90 | } |
91 | |
92 | - onItemClicked: { |
93 | + onClicked: { |
94 | console.log("on item clicked"); |
95 | if (mlist.isInSelectionMode) { |
96 | if (selected) { |
97 | @@ -287,7 +290,6 @@ |
98 | } |
99 | } |
100 | |
101 | - mouse.accepted = true; |
102 | message_item.click(); |
103 | } |
104 | |
105 | |
106 | === modified file 'telegram/app/qml/InstallStickerDialog.qml' |
107 | --- telegram/app/qml/InstallStickerDialog.qml 2016-02-29 10:32:35 +0000 |
108 | +++ telegram/app/qml/InstallStickerDialog.qml 2016-03-01 11:29:27 +0000 |
109 | @@ -65,7 +65,7 @@ |
110 | |
111 | UC.Button { |
112 | text: i18n.tr("Install") |
113 | - color: UT.UbuntuColors.blue |
114 | + color: UC.UbuntuColors.blue |
115 | onClicked: { |
116 | telegram.installStickerSet(root.stickerSet) |
117 | PopupUtils.close(root) |
118 | @@ -73,7 +73,7 @@ |
119 | } |
120 | UC.Button { |
121 | text: i18n.tr("Close") |
122 | - color: UT.UbuntuColors.orange |
123 | + color: UC.UbuntuColors.orange |
124 | onClicked: PopupUtils.close(root) |
125 | } |
126 | } |
127 | |
128 | === modified file 'telegram/app/qml/components/AccountPanelItem.qml' |
129 | --- telegram/app/qml/components/AccountPanelItem.qml 2015-10-02 11:59:49 +0000 |
130 | +++ telegram/app/qml/components/AccountPanelItem.qml 2016-03-01 11:29:27 +0000 |
131 | @@ -17,8 +17,6 @@ |
132 | import QtQuick 2.4 |
133 | import Ubuntu.Components 1.3 |
134 | |
135 | -import "./listitems" |
136 | - |
137 | ListItem { |
138 | id: item |
139 | |
140 | |
141 | === modified file 'telegram/app/qml/components/MessagesListItem.qml' |
142 | --- telegram/app/qml/components/MessagesListItem.qml 2016-02-29 10:22:26 +0000 |
143 | +++ telegram/app/qml/components/MessagesListItem.qml 2016-03-01 11:29:27 +0000 |
144 | @@ -6,19 +6,16 @@ |
145 | |
146 | import "qrc:/qml" |
147 | import "qrc:/qml/components" |
148 | -import "qrc:/qml/components/listitems" |
149 | import "qrc:/qml/js/colors.js" as Colors |
150 | import "../js/avatar.js" as Avatar |
151 | import "../js/ba-linkify.js" as BaLinkify |
152 | |
153 | -ListItemWithActions { |
154 | +ListItem { |
155 | id: message_item |
156 | width: 100 |
157 | height: (logicalHeight > minimumHeight) ? logicalHeight : minimumHeight |
158 | clip: true |
159 | - |
160 | - color: Qt.rgba(0, 0, 0, 0) |
161 | - selectedColor: Qt.rgba(0, 0, 0, 0.2) |
162 | + divider.visible: false |
163 | |
164 | property real messageFrameX: back_rect.x |
165 | property real messageFrameY: back_rect.y |
166 | @@ -95,6 +92,7 @@ |
167 | anchors { |
168 | top: frame_row.top |
169 | leftMargin: units.dp(4) |
170 | + topMargin: units.gu(.5) |
171 | } |
172 | height: units.gu(5) |
173 | visible: message_item.visibleNames && !message.out |
174 | |
175 | === removed directory 'telegram/app/qml/components/listitems' |
176 | === removed file 'telegram/app/qml/components/listitems/ImageWithFallback.qml' |
177 | --- telegram/app/qml/components/listitems/ImageWithFallback.qml 2015-09-22 09:57:07 +0000 |
178 | +++ telegram/app/qml/components/listitems/ImageWithFallback.qml 1970-01-01 00:00:00 +0000 |
179 | @@ -1,46 +0,0 @@ |
180 | -/* |
181 | - * Copyright 2012 Canonical Ltd. |
182 | - * |
183 | - * This program is free software; you can redistribute it and/or modify |
184 | - * it under the terms of the GNU Lesser General Public License as published by |
185 | - * the Free Software Foundation; version 3. |
186 | - * |
187 | - * This program is distributed in the hope that it will be useful, |
188 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
189 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
190 | - * GNU Lesser General Public License for more details. |
191 | - * |
192 | - * You should have received a copy of the GNU Lesser General Public License |
193 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
194 | - */ |
195 | - |
196 | -import QtQuick 2.0 |
197 | - |
198 | -Image { |
199 | - id: image |
200 | - |
201 | - property url fallbackSource |
202 | - property bool fallbackRequired: false |
203 | - |
204 | - function isSourceDefined(sourceUrl) { |
205 | - return sourceUrl != "" && sourceUrl != undefined |
206 | - } |
207 | - |
208 | - function tryLoadingFallbackSource() { |
209 | - if (isSourceDefined(fallbackSource)) { |
210 | - source = fallbackSource |
211 | - } |
212 | - } |
213 | - |
214 | - function checkStatus() { |
215 | - if (!isSourceDefined(source) || (status == Image.Error && source != fallbackSource)) { |
216 | - fallbackRequired = true |
217 | - tryLoadingFallbackSource() |
218 | - } |
219 | - } |
220 | - |
221 | - onSourceChanged: fallbackRequired = false |
222 | - onFallbackSourceChanged: if (fallbackRequired) tryLoadingFallbackSource() |
223 | - onStatusChanged: checkStatus() |
224 | - Component.onCompleted: checkStatus() |
225 | -} |
226 | |
227 | === removed file 'telegram/app/qml/components/listitems/ListItemWithActions.qml' |
228 | --- telegram/app/qml/components/listitems/ListItemWithActions.qml 2015-09-25 14:00:07 +0000 |
229 | +++ telegram/app/qml/components/listitems/ListItemWithActions.qml 1970-01-01 00:00:00 +0000 |
230 | @@ -1,515 +0,0 @@ |
231 | -/* |
232 | - * Copyright (C) 2012-2014 Canonical, Ltd. |
233 | - * |
234 | - * This program is free software; you can redistribute it and/or modify |
235 | - * it under the terms of the GNU General Public License as published by |
236 | - * the Free Software Foundation; version 3. |
237 | - * |
238 | - * This program is distributed in the hope that it will be useful, |
239 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
240 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
241 | - * GNU General Public License for more details. |
242 | - * |
243 | - * You should have received a copy of the GNU General Public License |
244 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
245 | - */ |
246 | - |
247 | -import QtQuick 2.2 |
248 | -import QtFeedback 5.0 |
249 | -import Ubuntu.Components 1.1 |
250 | -import Ubuntu.Components.ListItems 1.0 as ListItem |
251 | - |
252 | -Item { |
253 | - id: root |
254 | - |
255 | - property list<Action> leftSideActions |
256 | - property list<Action> rightSideActions |
257 | - property double defaultHeight: units.gu(8) |
258 | - property bool locked: false |
259 | - property Action activeAction: null |
260 | - property var activeItem: null |
261 | - property bool triggerActionOnMouseRelease: false |
262 | - property color color: Theme.palette.normal.background |
263 | - property color selectedColor: "#E6E6E6" |
264 | - property bool selected: false |
265 | - property bool selectionMode: false |
266 | - property alias pressed: mouseArea.pressed |
267 | - property alias showDivider: divider.visible |
268 | - property alias internalAnchors: mainContents.anchors |
269 | - default property alias contents: mainContents.children |
270 | - |
271 | - readonly property double actionWidth: units.gu(4) |
272 | - readonly property double actionThreshold: actionWidth * 0.4 |
273 | - readonly property double threshold: actionWidth * 0.8 |
274 | - readonly property string swipeState: main.x == 0 ? "Normal" : main.x > 0 ? "LeftToRight" : "RightToLeft" |
275 | - readonly property alias swipping: mainItemMoving.running |
276 | - readonly property bool _showActions: mouseArea.pressed || swipeState != "Normal" || swipping |
277 | - |
278 | - /* internal */ |
279 | - property var _visibleLeftSideActions: filterVisibleActions(leftSideActions) |
280 | - property var _visibleRightSideActions: filterVisibleActions(rightSideActions) |
281 | - |
282 | - /* Remember to mouse.accepted = true when managing this component */ |
283 | - signal itemClicked(var mouse) |
284 | - signal itemPressAndHold(var mouse) |
285 | - |
286 | - function returnToBoundsRTL(direction) { |
287 | - var actionFullWidth = actionWidth + units.gu(2) |
288 | - |
289 | - // go back to normal state if swipping reverse |
290 | - if (direction === "LTR") { |
291 | - updatePosition(0) |
292 | - return |
293 | - } else if (!triggerActionOnMouseRelease) { |
294 | - updatePosition(-rightActionsView.width + units.gu(2)) |
295 | - return |
296 | - } |
297 | - |
298 | - var xOffset = Math.abs(main.x) |
299 | - var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleRightSideActions.length) |
300 | - var newX = 0 |
301 | - if (index === _visibleRightSideActions.length) { |
302 | - newX = -(rightActionsView.width - units.gu(2)) |
303 | - } else if (index >= 1) { |
304 | - newX = -(actionFullWidth * index) |
305 | - } |
306 | - updatePosition(newX) |
307 | - } |
308 | - |
309 | - function returnToBoundsLTR(direction) { |
310 | - var actionFullWidth = actionWidth + units.gu(2) |
311 | - |
312 | - // go back to normal state if swipping reverse |
313 | - if (direction === "RTL") { |
314 | - updatePosition(0) |
315 | - return |
316 | - } else if (!triggerActionOnMouseRelease) { |
317 | - updatePosition(leftActionView.width - units.gu(2)) |
318 | - return |
319 | - } |
320 | - |
321 | - var xOffset = Math.abs(main.x) |
322 | - var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleLeftSideActions.length) |
323 | - var newX = 0 |
324 | - if (index === _visibleLeftSideActions.length) { |
325 | - newX = leftActionView.width - units.gu(2) |
326 | - } else if (index >= 1) { |
327 | - newX = actionFullWidth * index |
328 | - } |
329 | - updatePosition(newX) |
330 | - } |
331 | - |
332 | - function returnToBounds(direction) { |
333 | - if (main.x < 0) { |
334 | - returnToBoundsRTL(direction) |
335 | - } else if (main.x > 0) { |
336 | - returnToBoundsLTR(direction) |
337 | - } else { |
338 | - updatePosition(0) |
339 | - } |
340 | - } |
341 | - |
342 | - function contains(item, point, marginX) { |
343 | - var itemStartX = item.x - marginX |
344 | - var itemEndX = item.x + item.width + marginX |
345 | - return (point.x >= itemStartX) && (point.x <= itemEndX) && |
346 | - (point.y >= item.y) && (point.y <= (item.y + item.height)); |
347 | - } |
348 | - |
349 | - function getActionAt(point) { |
350 | - if (contains(leftActionView, point, 0)) { |
351 | - var newPoint = root.mapToItem(leftActionView, point.x, point.y) |
352 | - for (var i = 0; i < leftActionsRepeater.count; i++) { |
353 | - var child = leftActionsRepeater.itemAt(i) |
354 | - if (contains(child, newPoint, units.gu(3))) { |
355 | - return i |
356 | - } |
357 | - } |
358 | - } else if (contains(rightActionsView, point, 0)) { |
359 | - var newPoint = root.mapToItem(rightActionsView, point.x, point.y) |
360 | - for (var i = 0; i < rightActionsRepeater.count; i++) { |
361 | - var child = rightActionsRepeater.itemAt(i) |
362 | - if (contains(child, newPoint, units.gu(3))) { |
363 | - return i |
364 | - } |
365 | - } |
366 | - } |
367 | - return -1 |
368 | - } |
369 | - |
370 | - function updateActiveAction() { |
371 | - if (triggerActionOnMouseRelease && |
372 | - (main.x <= -(root.actionWidth + units.gu(2))) && |
373 | - (main.x > -(rightActionsView.width - units.gu(2)))) { |
374 | - var actionFullWidth = actionWidth + units.gu(2) |
375 | - var xOffset = Math.abs(main.x) |
376 | - var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleRightSideActions.length) |
377 | - index = index - 1 |
378 | - if (index > -1) { |
379 | - root.activeItem = rightActionsRepeater.itemAt(index) |
380 | - root.activeAction = root._visibleRightSideActions[index] |
381 | - } |
382 | - } else { |
383 | - root.activeAction = null |
384 | - } |
385 | - } |
386 | - |
387 | - function resetSwipe() { |
388 | - main.x = 0 |
389 | - } |
390 | - |
391 | - function filterVisibleActions(actions) { |
392 | - var visibleActions = [] |
393 | - for(var i = 0; i < actions.length; i++) { |
394 | - var action = actions[i] |
395 | - if (action.visible) { |
396 | - visibleActions.push(action) |
397 | - } |
398 | - } |
399 | - return visibleActions |
400 | - } |
401 | - |
402 | - function updatePosition(pos) { |
403 | - if (!root.triggerActionOnMouseRelease && (pos !== 0)) { |
404 | - mouseArea.state = pos > 0 ? "RightToLeft" : "LeftToRight" |
405 | - } else { |
406 | - mouseArea.state = "" |
407 | - } |
408 | - main.x = pos |
409 | - } |
410 | - |
411 | - states: [ |
412 | - State { |
413 | - name: "select" |
414 | - when: selectionMode || selected |
415 | - PropertyChanges { |
416 | - target: selectionIcon |
417 | - source: Qt.resolvedUrl("ListItemWithActionsCheckBox.qml") |
418 | - anchors.leftMargin: units.gu(2) |
419 | - } |
420 | - PropertyChanges { |
421 | - target: root |
422 | - locked: true |
423 | - } |
424 | - PropertyChanges { |
425 | - target: main |
426 | - x: 0 |
427 | - } |
428 | - } |
429 | - ] |
430 | - |
431 | - height: defaultHeight |
432 | - clip: height !== defaultHeight |
433 | - HapticsEffect { |
434 | - id: clickEffect |
435 | - attackIntensity: 0.0 |
436 | - attackTime: 50 |
437 | - intensity: 1.0 |
438 | - duration: 10 |
439 | - fadeTime: 50 |
440 | - fadeIntensity: 0.0 |
441 | - } |
442 | - |
443 | - Rectangle { |
444 | - id: leftActionView |
445 | - |
446 | - anchors { |
447 | - top: parent.top |
448 | - bottom: parent.bottom |
449 | - right: main.left |
450 | - } |
451 | - visible: _visibleLeftSideActions.length > 0 |
452 | - width: leftActionsRepeater.count > 0 ? leftActionsRepeater.count * (root.actionWidth + units.gu(2)) + root.actionThreshold + units.gu(3) : 0 |
453 | - color: "#eef32c36" // UbuntuColors.red with alpha |
454 | - |
455 | - Row { |
456 | - anchors{ |
457 | - top: parent.top |
458 | - bottom: parent.bottom |
459 | - right: parent.right |
460 | - rightMargin: units.gu(1) |
461 | - } |
462 | - spacing: 0 |
463 | - Repeater { |
464 | - id: leftActionsRepeater |
465 | - |
466 | - model: _showActions ? _visibleLeftSideActions : [] |
467 | - Item { |
468 | - property alias image: img |
469 | - |
470 | - height: leftActionView.height |
471 | - width: root.actionWidth + units.gu(2) |
472 | - |
473 | - Icon { |
474 | - id: img |
475 | - |
476 | - anchors.centerIn: parent |
477 | - width: units.gu(3) |
478 | - height: units.gu(3) |
479 | - name: modelData.iconName |
480 | - color: "white" |
481 | - } |
482 | - } |
483 | - } |
484 | - } |
485 | - } |
486 | - |
487 | - Rectangle { |
488 | - id: rightActionsView |
489 | - |
490 | - anchors { |
491 | - top: main.top |
492 | - left: main.right |
493 | - bottom: main.bottom |
494 | - } |
495 | - visible: _visibleRightSideActions.length > 0 |
496 | - width: rightActionsRepeater.count > 0 ? rightActionsRepeater.count * (root.actionWidth + units.gu(2)) + root.actionThreshold + units.gu(3) : 0 |
497 | - color: "white" |
498 | - Row { |
499 | - anchors{ |
500 | - top: parent.top |
501 | - bottom: parent.bottom |
502 | - left: parent.left |
503 | - leftMargin: units.gu(1) |
504 | - } |
505 | - spacing: 0 |
506 | - Repeater { |
507 | - id: rightActionsRepeater |
508 | - |
509 | - model: _showActions ? _visibleRightSideActions : [] |
510 | - Item { |
511 | - property alias image: img |
512 | - |
513 | - height: rightActionsView.height |
514 | - width: root.actionWidth + units.gu(2) |
515 | - |
516 | - Icon { |
517 | - id: img |
518 | - |
519 | - anchors.centerIn: parent |
520 | - width: units.gu(3) |
521 | - height: units.gu(3) |
522 | - name: modelData.iconName |
523 | - color: root.activeAction === modelData ? UbuntuColors.lightAubergine : UbuntuColors.lightGrey |
524 | - } |
525 | - } |
526 | - } |
527 | - } |
528 | - } |
529 | - |
530 | - Rectangle { |
531 | - id: main |
532 | - objectName: "mainItem" |
533 | - |
534 | - anchors { |
535 | - top: parent.top |
536 | - bottom: parent.bottom |
537 | - } |
538 | - |
539 | - width: parent.width |
540 | - color: root.selected ? root.selectedColor : root.color |
541 | - |
542 | - Loader { |
543 | - id: selectionIcon |
544 | - |
545 | - anchors { |
546 | - left: main.left |
547 | - verticalCenter: main.verticalCenter |
548 | - } |
549 | - width: (status === Loader.Ready) ? item.implicitWidth : 0 |
550 | - visible: (status === Loader.Ready) && (item.width === item.implicitWidth) |
551 | - Behavior on width { |
552 | - NumberAnimation { |
553 | - duration: UbuntuAnimation.SnapDuration |
554 | - } |
555 | - } |
556 | - } |
557 | - |
558 | - Item { |
559 | - id: mainContents |
560 | - |
561 | - anchors { |
562 | - left: selectionIcon.right |
563 | - top: parent.top |
564 | - topMargin: units.gu(1) |
565 | - right: parent.right |
566 | - bottom: parent.bottom |
567 | - bottomMargin: units.gu(1) |
568 | - } |
569 | - } |
570 | - |
571 | - Behavior on x { |
572 | - UbuntuNumberAnimation { |
573 | - id: mainItemMoving |
574 | - |
575 | - easing.type: Easing.OutElastic |
576 | - duration: UbuntuAnimation.SlowDuration |
577 | - } |
578 | - } |
579 | - |
580 | - Behavior on color { |
581 | - ColorAnimation {} |
582 | - } |
583 | - } |
584 | - |
585 | - SequentialAnimation { |
586 | - id: triggerAction |
587 | - |
588 | - property var currentItem: root.activeItem ? root.activeItem.image : null |
589 | - |
590 | - running: false |
591 | - ParallelAnimation { |
592 | - UbuntuNumberAnimation { |
593 | - target: triggerAction.currentItem |
594 | - property: "opacity" |
595 | - from: 1.0 |
596 | - to: 0.0 |
597 | - duration: UbuntuAnimation.SlowDuration |
598 | - easing { type: Easing.InOutBack; } |
599 | - } |
600 | - UbuntuNumberAnimation { |
601 | - target: triggerAction.currentItem |
602 | - properties: "width, height" |
603 | - from: units.gu(3) |
604 | - to: root.actionWidth |
605 | - duration: UbuntuAnimation.SlowDuration |
606 | - easing { type: Easing.InOutBack; } |
607 | - } |
608 | - } |
609 | - PropertyAction { |
610 | - target: triggerAction.currentItem |
611 | - properties: "width, height" |
612 | - value: units.gu(3) |
613 | - } |
614 | - PropertyAction { |
615 | - target: triggerAction.currentItem |
616 | - properties: "opacity" |
617 | - value: 1.0 |
618 | - } |
619 | - ScriptAction { |
620 | - script: { |
621 | - root.activeAction.triggered(root) |
622 | - mouseArea.state = "" |
623 | - } |
624 | - } |
625 | - PauseAnimation { |
626 | - duration: 500 |
627 | - } |
628 | - UbuntuNumberAnimation { |
629 | - target: main |
630 | - property: "x" |
631 | - to: 0 |
632 | - } |
633 | - } |
634 | - |
635 | - MouseArea { |
636 | - id: mouseArea |
637 | - |
638 | - propagateComposedEvents: true |
639 | - property bool locked: root.locked || ((root._visibleLeftSideActions === null) && (root._visibleRightSideActions.count === 0)) |
640 | - property bool manual: false |
641 | - property string direction: "None" |
642 | - property real lastX: -1 |
643 | - |
644 | - anchors.fill: parent |
645 | - z: -100 |
646 | - |
647 | - drag { |
648 | - target: locked ? null : main |
649 | - axis: Drag.XAxis |
650 | - minimumX: rightActionsView.visible ? -(rightActionsView.width) : 0 |
651 | - maximumX: leftActionView.visible ? leftActionView.width : 0 |
652 | - threshold: root.threshold |
653 | - } |
654 | - |
655 | - states: [ |
656 | - State { |
657 | - name: "LeftToRight" |
658 | - PropertyChanges { |
659 | - target: mouseArea |
660 | - drag.maximumX: 0 |
661 | - } |
662 | - }, |
663 | - State { |
664 | - name: "RightToLeft" |
665 | - PropertyChanges { |
666 | - target: mouseArea |
667 | - drag.minimumX: 0 |
668 | - } |
669 | - } |
670 | - ] |
671 | - |
672 | - onMouseXChanged: { |
673 | - var offset = (lastX - mouseX) |
674 | - if (Math.abs(offset) <= root.threshold) { |
675 | - return |
676 | - } |
677 | - lastX = mouseX |
678 | - direction = offset > 0 ? "RTL" : "LTR"; |
679 | - } |
680 | - |
681 | - onPressed: { |
682 | - lastX = mouse.x |
683 | - } |
684 | - |
685 | - onReleased: { |
686 | - if (root.triggerActionOnMouseRelease && root.activeAction) { |
687 | - triggerAction.start() |
688 | - } else { |
689 | - root.returnToBounds(direction) |
690 | - root.activeAction = null |
691 | - } |
692 | - lastX = -1 |
693 | - direction = "None" |
694 | - } |
695 | - |
696 | - onClicked: { |
697 | - mouse.accepted = false |
698 | - clickEffect.start() |
699 | - if (main.x === 0) { |
700 | - root.itemClicked(mouse) |
701 | - } else if (main.x > 0) { |
702 | - var actionIndex = getActionAt(Qt.point(mouse.x, mouse.y)) |
703 | - if (actionIndex !== -1) { |
704 | - root.activeItem = leftActionsRepeater.itemAt(actionIndex) |
705 | - root.activeAction = root._visibleLeftSideActions[actionIndex] |
706 | - triggerAction.start() |
707 | - return |
708 | - } |
709 | - } else { |
710 | - var actionIndex = getActionAt(Qt.point(mouse.x, mouse.y)) |
711 | - if (actionIndex !== -1) { |
712 | - root.activeItem = rightActionsRepeater.itemAt(actionIndex) |
713 | - root.activeAction = root._visibleRightSideActions[actionIndex] |
714 | - triggerAction.start() |
715 | - return |
716 | - } |
717 | - } |
718 | - root.resetSwipe() |
719 | - } |
720 | - |
721 | - onPositionChanged: { |
722 | - if (mouseArea.pressed) { |
723 | - updateActiveAction() |
724 | - } |
725 | - } |
726 | - |
727 | - onPressAndHold: { |
728 | - if (main.x === 0) { |
729 | - root.itemPressAndHold(mouse) |
730 | - } |
731 | - } |
732 | - } |
733 | - |
734 | - ListItem.ThinDivider { |
735 | - id: divider |
736 | - visible: false |
737 | - width: parent.width + units.gu(4) |
738 | - anchors { |
739 | - left: parent.left |
740 | - right: parent.right |
741 | - bottom: parent.bottom |
742 | - bottomMargin: units.gu(-0.1) |
743 | - } |
744 | - } |
745 | -} |
746 | |
747 | === removed file 'telegram/app/qml/components/listitems/ListItemWithActionsCheckBox.qml' |
748 | --- telegram/app/qml/components/listitems/ListItemWithActionsCheckBox.qml 2015-09-22 09:57:07 +0000 |
749 | +++ telegram/app/qml/components/listitems/ListItemWithActionsCheckBox.qml 1970-01-01 00:00:00 +0000 |
750 | @@ -1,25 +0,0 @@ |
751 | -/* |
752 | - * Copyright (C) 2012-2014 Canonical, Ltd. |
753 | - * |
754 | - * This program is free software; you can redistribute it and/or modify |
755 | - * it under the terms of the GNU General Public License as published by |
756 | - * the Free Software Foundation; version 3. |
757 | - * |
758 | - * This program is distributed in the hope that it will be useful, |
759 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
760 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
761 | - * GNU General Public License for more details. |
762 | - * |
763 | - * You should have received a copy of the GNU General Public License |
764 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
765 | - */ |
766 | - |
767 | -import QtQuick 2.2 |
768 | -import Ubuntu.Components 1.1 |
769 | - |
770 | -CheckBox { |
771 | - checked: root.selected |
772 | - width: implicitWidth |
773 | - // disable item mouse area to avoid conflicts with parent mouse area |
774 | - __mouseArea.enabled: false |
775 | -} |
776 | |
777 | === removed file 'telegram/app/qml/components/listitems/ProgressionVisual.qml' |
778 | --- telegram/app/qml/components/listitems/ProgressionVisual.qml 2015-09-22 09:57:07 +0000 |
779 | +++ telegram/app/qml/components/listitems/ProgressionVisual.qml 1970-01-01 00:00:00 +0000 |
780 | @@ -1,52 +0,0 @@ |
781 | -/* |
782 | - * Copyright 2012 Canonical Ltd. |
783 | - * |
784 | - * This program is free software; you can redistribute it and/or modify |
785 | - * it under the terms of the GNU Lesser General Public License as published by |
786 | - * the Free Software Foundation; version 3. |
787 | - * |
788 | - * This program is distributed in the hope that it will be useful, |
789 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
790 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
791 | - * GNU Lesser General Public License for more details. |
792 | - * |
793 | - * You should have received a copy of the GNU Lesser General Public License |
794 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
795 | - */ |
796 | - |
797 | -import QtQuick 2.0 |
798 | - |
799 | -// Internal helper class for the visuals of |
800 | -// the progression symbol. |
801 | -Item { |
802 | - id: progressionVisual |
803 | - |
804 | - width: progressIcon.width + (showSplit ? splitMargin + progressionDivider.width : 0) |
805 | - |
806 | - property bool showSplit: false |
807 | - property real splitMargin |
808 | - |
809 | - Image { |
810 | - id: progressIcon |
811 | - source: "artwork/ListItemProgressionArrow.png" |
812 | - anchors { |
813 | - verticalCenter: parent.verticalCenter |
814 | - right: parent.right |
815 | - } |
816 | - |
817 | - opacity: enabled ? 1.0 : 0.5 |
818 | - } |
819 | - |
820 | - Image { |
821 | - id: progressionDivider |
822 | - visible: progressionVisual.showSplit |
823 | - anchors { |
824 | - top: parent.top |
825 | - bottom: parent.bottom |
826 | - right: progressIcon.left |
827 | - rightMargin: splitMargin |
828 | - } |
829 | - source: "artwork/ListItemDividerVertical.png" |
830 | - opacity: enabled ? 1.0 : 0.5 |
831 | - } |
832 | -} |
833 | |
834 | === removed directory 'telegram/app/qml/components/listitems/artwork' |
835 | === removed file 'telegram/app/qml/components/listitems/artwork/ListItemDivider24px@8.png' |
836 | Binary files telegram/app/qml/components/listitems/artwork/ListItemDivider24px@8.png 2015-09-22 09:57:07 +0000 and telegram/app/qml/components/listitems/artwork/ListItemDivider24px@8.png 1970-01-01 00:00:00 +0000 differ |
837 | === removed file 'telegram/app/qml/components/listitems/artwork/ListItemDivider6px@8.png' |
838 | Binary files telegram/app/qml/components/listitems/artwork/ListItemDivider6px@8.png 2015-09-22 09:57:07 +0000 and telegram/app/qml/components/listitems/artwork/ListItemDivider6px@8.png 1970-01-01 00:00:00 +0000 differ |
839 | === removed file 'telegram/app/qml/components/listitems/artwork/ListItemDividerHorizontal@18.png' |
840 | Binary files telegram/app/qml/components/listitems/artwork/ListItemDividerHorizontal@18.png 2015-09-22 09:57:07 +0000 and telegram/app/qml/components/listitems/artwork/ListItemDividerHorizontal@18.png 1970-01-01 00:00:00 +0000 differ |
841 | === removed file 'telegram/app/qml/components/listitems/artwork/ListItemDividerVertical@18.png' |
842 | Binary files telegram/app/qml/components/listitems/artwork/ListItemDividerVertical@18.png 2015-09-22 09:57:07 +0000 and telegram/app/qml/components/listitems/artwork/ListItemDividerVertical@18.png 1970-01-01 00:00:00 +0000 differ |
843 | === removed file 'telegram/app/qml/components/listitems/artwork/ListItemProgressionArrow@8.png' |
844 | Binary files telegram/app/qml/components/listitems/artwork/ListItemProgressionArrow@8.png 2015-09-22 09:57:07 +0000 and telegram/app/qml/components/listitems/artwork/ListItemProgressionArrow@8.png 1970-01-01 00:00:00 +0000 differ |
845 | === removed file 'telegram/app/qml/components/listitems/artwork/delete@8.png' |
846 | Binary files telegram/app/qml/components/listitems/artwork/delete@8.png 2015-09-22 09:57:07 +0000 and telegram/app/qml/components/listitems/artwork/delete@8.png 1970-01-01 00:00:00 +0000 differ |
847 | === modified file 'telegram/app/telegram.qrc' |
848 | --- telegram/app/telegram.qrc 2016-02-29 10:22:26 +0000 |
849 | +++ telegram/app/telegram.qrc 2016-03-01 11:29:27 +0000 |
850 | @@ -62,8 +62,6 @@ |
851 | <file>qml/components/TelegramContactsListItem.qml</file> |
852 | <file>qml/components/TelegramHeader.qml</file> |
853 | <file>qml/components/TelegramPage.qml</file> |
854 | - <file>qml/components/listitems/ListItemWithActions.qml</file> |
855 | - <file>qml/components/listitems/ListItemWithActionsCheckBox.qml</file> |
856 | <file>qml/js/avatar.js</file> |
857 | <file>qml/js/ba-linkify.js</file> |
858 | <file>qml/js/colors.js</file> |
just found an issue... clicking images is broken