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