~qqworini/ubuntu-rssreader-app/editable-topic-name

« back to all changes in this revision

Viewing changes to feeds/TopicManagement.qml

  • Committer: Joey Chan
  • Date: 2013-08-22 15:36:25 UTC
  • Revision ID: qqworini@gmail.com-20130822153625-2fzkp1yx3v0d1h8j
new feature: editable topic name and removable topic item

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
    Component.onCompleted:
28
28
    {
29
 
        reloadTopics () ;
 
29
        reloadTopics ()
30
30
    }
31
31
 
32
32
    function reloadTopics ()
33
33
    {
34
34
        topicModel.clear()
35
 
        var topics = DB.loadTags() ;
 
35
        var topics = DB.loadTags()
36
36
        for (var i=0; i < topics.rows.length; i++){
37
37
            topicModel.append(
38
38
                    {
56
56
        contentHeight: contentItem.childrenRect.height
57
57
        boundsBehavior: (contentHeight > topicManagement.height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
58
58
 
59
 
        Column
60
 
        {
 
59
        Column{
61
60
            anchors{ left: parent.left; right: parent.right }
62
61
 
63
62
            Item {
66
65
                anchors{ left: parent.left; right: parent.right }
67
66
                height: units.gu(8)
68
67
 
69
 
                UbuntuShape
70
 
                {
 
68
                UbuntuShape{
71
69
                    id: uAddTopic
72
70
                    anchors { fill: parent; margins: units.gu(1) }
73
71
                    gradientColor: "goldenrod"
74
72
                    radius: "medium"
75
73
 
76
 
                    Label
77
 
                    {
 
74
                    Label{
78
75
                        text: i18n.tr("Add a Topic")
79
76
                        fontSize: "large"
80
77
                        anchors.centerIn: parent
81
78
                    }
82
79
 
83
 
                    MouseArea
84
 
                    {
 
80
                    MouseArea{
85
81
                        id: maAddTopic
86
82
                        anchors.fill: parent
87
83
                        onClicked: pageStack.push(createTopicPage)
102
98
                }
103
99
            }
104
100
 
105
 
            ListView
106
 
            {
 
101
            ListView {
107
102
                id: topicList
108
103
                anchors{ left: parent.left; right: parent.right }
109
104
                height: contentItem.childrenRect.height
134
129
                        anchors{ left: parent.left; right: parent.right }
135
130
                        height: topicItem.height
136
131
 
137
 
//                        onPressAndHold:
138
 
//                        {
139
 
//                            delegateRoot.drag.target = icon
140
 
//                        }
141
 
 
142
 
                        TopicComponent
143
 
                        {
 
132
                        TopicComponent{
144
133
                            id: topicItem
145
134
                            topicName: model.name
146
135
                            topicId: model.id
151
140
                        DropArea {
152
141
                            anchors { fill: parent; margins: 0 }
153
142
 
154
 
                            onEntered:
155
 
                            {
 
143
                            onEntered:{
156
144
//                                console.log("enter", drag.source)
157
 
                                topicItem.selected = true ;
 
145
                                topicItem.selected = true
158
146
                            }
159
147
 
160
 
                            onExited:
161
 
                            {
 
148
                            onExited:{
162
149
//                                console.log("exit", drag.source)
163
 
                                topicItem.selected = false ;
 
150
                                topicItem.selected = false
164
151
                            }
165
152
 
166
 
                            onDropped:
167
 
                            {
168
 
//                                console.log("drop", drag.source) ;
169
 
                                topicItem.selected = false ;
170
 
                                drag.source.opacity = 0 ;
171
 
                                console.log("dropped item feed id", drag.source.feedId) ;
172
 
                                console.log("dropped item topic id", drag.source.topicId) ;
173
 
                                DB.deleteFeedTag(drag.source.feedId, drag.source.topicId) ;
174
 
                                DB.addFeedTag(drag.source.feedId, model.id) ;
175
 
                                delegateRoot.isExpended = true ;
 
153
                            onDropped:{
 
154
//                                console.log("drop", drag.source)
 
155
                                topicItem.selected = false
 
156
                                drag.source.opacity = 0
 
157
                                console.log("dropped item feed id", drag.source.feedId)
 
158
                                console.log("dropped item topic id", drag.source.topicId)
 
159
                                DB.deleteFeedTag(drag.source.feedId, drag.source.topicId)
 
160
                                DB.addFeedTag(drag.source.feedId, model.id)
 
161
                                delegateRoot.isExpended = true
176
162
                            }
177
163
                        }
178
164
 
179
 
                        Connections
180
 
                        {
 
165
                        Connections{
181
166
                            id: connTopicList
182
167
                            target: topicList
183
168
 
184
169
                            onCollapseAllItem:
185
170
                            {
186
 
                                delegateRoot.isExpended = false ;
 
171
                                delegateRoot.isExpended = false
187
172
                            }
188
173
                        }
189
174
 
190
 
                        Connections
191
 
                        {
 
175
                        Connections{
192
176
                            id: connEditFeed0
193
177
                            target: editFeed
194
178
 
195
 
                            onApply:
196
 
                            {
197
 
                                if (model.id == newTopicId || model.id == previousTopicId)
198
 
                                {
199
 
                                    topicItem.reloadFeed() ;
200
 
                                    topicItem.isExpended = true ;
 
179
                            onApply:{
 
180
                                if (model.id == newTopicId || model.id == previousTopicId){
 
181
                                    topicItem.reloadFeed()
 
182
                                    topicItem.isExpended = true
201
183
                                }
202
184
                            }
203
185
 
204
 
                            onDeleteFeed:
205
 
                            {
206
 
                                if (model.id == topicId)
207
 
                                {
208
 
                                    topicItem.reloadFeed() ;
209
 
                                    topicItem.isExpended = true ;
 
186
                            onDeleteFeed:{
 
187
                                if (model.id == topicId){
 
188
                                    topicItem.reloadFeed()
 
189
                                    topicItem.isExpended = true
210
190
                                }
211
191
                            }
212
192
                        }
217
197
        } // column
218
198
    } // flickable
219
199
 
220
 
    Connections
221
 
    {
 
200
    Connections{
222
201
        id: connAddTopic
223
202
        target: createTopicPage
224
203
 
225
 
        onTopicAdded:
226
 
        {
227
 
            reloadTopics() ;
 
204
        onTopicAdded:{
 
205
            reloadTopics()
228
206
        }
229
207
    }
230
208
 
231
 
    Connections
232
 
    {
 
209
    Connections {
233
210
        id: connAddFeed
234
211
        target: chooseTopicPage
235
212
 
236
 
        onFeedAdded:
237
 
        {
238
 
            reloadTopics() ;
239
 
            for (var i=0; i<topicModel.count; i++)
240
 
            {
241
 
                if (topicModel.get(i).id == topicId)
242
 
                {
243
 
                    topicList.currentIndex = i ;
244
 
                    topicList.currentItem.isExpended = true ;
 
213
        onFeedAdded:{
 
214
            reloadTopics()
 
215
            for (var i=0; i<topicModel.count; i++){
 
216
                if (topicModel.get(i).id == topicId){
 
217
                    topicList.currentIndex = i
 
218
                    topicList.currentItem.isExpended = true
245
219
                }
246
220
            }
247
221
        }