Merge lp:~mzanetti/telegram-app/hashtag-completion into lp:telegram-app

Proposed by Michael Zanetti
Status: Merged
Approved by: Michał Karnicki
Approved revision: 149
Merged at revision: 151
Proposed branch: lp:~mzanetti/telegram-app/hashtag-completion
Merge into: lp:telegram-app
Prerequisite: lp:~mzanetti/telegram-app/username-completion
Diff against target: 93 lines (+35/-6)
2 files modified
telegram/app/qml/AccountSendMessage.qml (+22/-1)
telegram/app/qml/TagSuggestionMenu.qml (+13/-5)
To merge this branch: bzr merge lp:~mzanetti/telegram-app/hashtag-completion
Reviewer Review Type Date Requested Status
Michał Karnicki (community) Approve
Review via email: mp+286743@code.launchpad.net

Commit message

add support for #hashtag completion

To post a comment you must log in.
Revision history for this message
Michał Karnicki (karni) wrote :

Awesome :)!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'telegram/app/qml/AccountSendMessage.qml'
--- telegram/app/qml/AccountSendMessage.qml 2016-02-20 23:22:45 +0000
+++ telegram/app/qml/AccountSendMessage.qml 2016-02-20 23:22:45 +0000
@@ -183,10 +183,12 @@
183 }183 }
184 onDisplayTextChanged: {184 onDisplayTextChanged: {
185 var lastAtPosition = displayText.lastIndexOf("@");185 var lastAtPosition = displayText.lastIndexOf("@");
186 var lastHashPosition = displayText.lastIndexOf("#");
186 var lastSpacePosition = displayText.lastIndexOf(" ");187 var lastSpacePosition = displayText.lastIndexOf(" ");
187 if (!privates.suggestionItem && lastAtPosition == lastSpacePosition + 1) {188 if (!privates.suggestionItem && lastAtPosition == lastSpacePosition + 1) {
188 privates.suggestionItem = username_sgs_component.createObject(send_msg)189 privates.suggestionItem = username_sgs_component.createObject(send_msg)
189 privates.suggestionItem.y = -privates.suggestionItem.height190 privates.suggestionItem.y = -privates.suggestionItem.height
191 privates.suggestionItem.objectName = "username";
190192
191 privates.suggestionItem.selected.connect(function() {193 privates.suggestionItem.selected.connect(function() {
192 var uId = privates.suggestionItem.currentUserId()194 var uId = privates.suggestionItem.currentUserId()
@@ -200,7 +202,26 @@
200202
201 privates.suggestionItem.destroy()203 privates.suggestionItem.destroy()
202 })204 })
203 } else if (privates.suggestionItem && (lastSpacePosition > lastAtPosition || lastAtPosition == -1)) {205 } else if (!privates.suggestionItem && lastHashPosition == lastSpacePosition + 1) {
206 privates.suggestionItem = tags_sgs_component.createObject(send_msg)
207 privates.suggestionItem.y = -privates.suggestionItem.height
208 privates.suggestionItem.objectName = "tag";
209
210 privates.suggestionItem.selected.connect(function() {
211 var tag = privates.suggestionItem.currentTag()
212
213 txt.selectWord()
214 txt.remove(txt.selectionStart, txt.selectionEnd)
215 txt.insert(txt.cursorPosition, tag + " ")
216 txt.deselect()
217
218 privates.suggestionItem.destroy()
219 })
220
221 } else if (privates.suggestionItem &&
222 ((privates.suggestionItem.objectName === "username" && (lastSpacePosition > lastAtPosition || lastAtPosition == -1)) ||
223 (privates.suggestionItem.objectName === "tag" && (lastSpacePosition > lastHashPosition || lastHashPosition == -1)))
224 ) {
204 privates.suggestionItem.destroy();225 privates.suggestionItem.destroy();
205 } else if (privates.suggestionItem) {226 } else if (privates.suggestionItem) {
206 check_suggestion.restart();227 check_suggestion.restart();
207228
=== modified file 'telegram/app/qml/TagSuggestionMenu.qml'
--- telegram/app/qml/TagSuggestionMenu.qml 2015-09-22 09:57:07 +0000
+++ telegram/app/qml/TagSuggestionMenu.qml 2016-02-20 23:22:45 +0000
@@ -4,14 +4,17 @@
4import QtGraphicalEffects 1.04import QtGraphicalEffects 1.0
55
6Item {6Item {
7 width: 2007 id: root
8 height: 2008 width: parent.width
9 height: 3 * 32*Devices.density + back_frame.anchors.topMargin
9 visible: fmodel.count != 010 visible: fmodel.count != 0
10 clip: true11 clip: true
1112
12 property Telegram telegram13 property Telegram telegram
13 property alias keyword: fmodel.keyword14 property alias keyword: fmodel.keyword
1415
16 signal selected();
17
15 TagFilterModel {18 TagFilterModel {
16 id: fmodel19 id: fmodel
17 userData: telegram.userData20 userData: telegram.userData
@@ -35,10 +38,7 @@
35 id: back_frame38 id: back_frame
36 anchors.fill: parent39 anchors.fill: parent
37 anchors.topMargin: 8*Devices.density40 anchors.topMargin: 8*Devices.density
38 anchors.leftMargin: 8*Devices.density
39 anchors.rightMargin: 8*Devices.density
40 color: Cutegram.currentTheme.sendFrameColor41 color: Cutegram.currentTheme.sendFrameColor
41 radius: 4*Devices.density
4242
43 Rectangle {43 Rectangle {
44 width: parent.width44 width: parent.width
@@ -81,6 +81,14 @@
81 text: tag81 text: tag
82 color: Cutegram.currentTheme.sendFrameFontColor82 color: Cutegram.currentTheme.sendFrameFontColor
83 }83 }
84
85 MouseArea {
86 anchors.fill: parent
87 onClicked: {
88 listv.currentIndex = index;
89 root.selected();
90 }
91 }
84 }92 }
85 }93 }
8694

Subscribers

People subscribed via source and target branches

to status/vote changes: