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
1=== modified file 'telegram/app/qml/AccountSendMessage.qml'
2--- telegram/app/qml/AccountSendMessage.qml 2016-02-20 23:22:45 +0000
3+++ telegram/app/qml/AccountSendMessage.qml 2016-02-20 23:22:45 +0000
4@@ -183,10 +183,12 @@
5 }
6 onDisplayTextChanged: {
7 var lastAtPosition = displayText.lastIndexOf("@");
8+ var lastHashPosition = displayText.lastIndexOf("#");
9 var lastSpacePosition = displayText.lastIndexOf(" ");
10 if (!privates.suggestionItem && lastAtPosition == lastSpacePosition + 1) {
11 privates.suggestionItem = username_sgs_component.createObject(send_msg)
12 privates.suggestionItem.y = -privates.suggestionItem.height
13+ privates.suggestionItem.objectName = "username";
14
15 privates.suggestionItem.selected.connect(function() {
16 var uId = privates.suggestionItem.currentUserId()
17@@ -200,7 +202,26 @@
18
19 privates.suggestionItem.destroy()
20 })
21- } else if (privates.suggestionItem && (lastSpacePosition > lastAtPosition || lastAtPosition == -1)) {
22+ } else if (!privates.suggestionItem && lastHashPosition == lastSpacePosition + 1) {
23+ privates.suggestionItem = tags_sgs_component.createObject(send_msg)
24+ privates.suggestionItem.y = -privates.suggestionItem.height
25+ privates.suggestionItem.objectName = "tag";
26+
27+ privates.suggestionItem.selected.connect(function() {
28+ var tag = privates.suggestionItem.currentTag()
29+
30+ txt.selectWord()
31+ txt.remove(txt.selectionStart, txt.selectionEnd)
32+ txt.insert(txt.cursorPosition, tag + " ")
33+ txt.deselect()
34+
35+ privates.suggestionItem.destroy()
36+ })
37+
38+ } else if (privates.suggestionItem &&
39+ ((privates.suggestionItem.objectName === "username" && (lastSpacePosition > lastAtPosition || lastAtPosition == -1)) ||
40+ (privates.suggestionItem.objectName === "tag" && (lastSpacePosition > lastHashPosition || lastHashPosition == -1)))
41+ ) {
42 privates.suggestionItem.destroy();
43 } else if (privates.suggestionItem) {
44 check_suggestion.restart();
45
46=== modified file 'telegram/app/qml/TagSuggestionMenu.qml'
47--- telegram/app/qml/TagSuggestionMenu.qml 2015-09-22 09:57:07 +0000
48+++ telegram/app/qml/TagSuggestionMenu.qml 2016-02-20 23:22:45 +0000
49@@ -4,14 +4,17 @@
50 import QtGraphicalEffects 1.0
51
52 Item {
53- width: 200
54- height: 200
55+ id: root
56+ width: parent.width
57+ height: 3 * 32*Devices.density + back_frame.anchors.topMargin
58 visible: fmodel.count != 0
59 clip: true
60
61 property Telegram telegram
62 property alias keyword: fmodel.keyword
63
64+ signal selected();
65+
66 TagFilterModel {
67 id: fmodel
68 userData: telegram.userData
69@@ -35,10 +38,7 @@
70 id: back_frame
71 anchors.fill: parent
72 anchors.topMargin: 8*Devices.density
73- anchors.leftMargin: 8*Devices.density
74- anchors.rightMargin: 8*Devices.density
75 color: Cutegram.currentTheme.sendFrameColor
76- radius: 4*Devices.density
77
78 Rectangle {
79 width: parent.width
80@@ -81,6 +81,14 @@
81 text: tag
82 color: Cutegram.currentTheme.sendFrameFontColor
83 }
84+
85+ MouseArea {
86+ anchors.fill: parent
87+ onClicked: {
88+ listv.currentIndex = index;
89+ root.selected();
90+ }
91+ }
92 }
93 }
94

Subscribers

People subscribed via source and target branches

to status/vote changes: