Changeset View
Changeset View
Standalone View
Standalone View
qmlUiKirigami/Main.qml
Show All 23 Lines | |||||
24 | 24 | | |||
25 | import org.kde.kirigami 2.0 as Kirigami | 25 | import org.kde.kirigami 2.0 as Kirigami | ||
26 | import org.kde.koko 0.1 as Koko | 26 | import org.kde.koko 0.1 as Koko | ||
27 | 27 | | |||
28 | Kirigami.ApplicationWindow { | 28 | Kirigami.ApplicationWindow { | ||
29 | id: root | 29 | id: root | ||
30 | header: Kirigami.ApplicationHeader {} | 30 | header: Kirigami.ApplicationHeader {} | ||
31 | 31 | | |||
32 | property var intermediateFolders; | ||||
33 | | ||||
32 | /* | 34 | /* | ||
33 | * currentImage now stores the information related to the source model | 35 | * currentImage now stores the information related to the source model | ||
34 | */ | 36 | */ | ||
35 | QtObject { | 37 | QtObject { | ||
36 | id: currentImage | 38 | id: currentImage | ||
37 | property int index | 39 | property int index | ||
38 | property var model | 40 | property var model | ||
39 | property GridView view : pageStack.currentItem.flickable | 41 | property GridView view : pageStack.currentItem.flickable | ||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Line(s) | 58 | switch( value){ | |||
97 | } | 99 | } | ||
98 | } | 100 | } | ||
99 | } | 101 | } | ||
100 | } | 102 | } | ||
101 | 103 | | |||
102 | Koko.SortModel { | 104 | Koko.SortModel { | ||
103 | id: imageFolderModel | 105 | id: imageFolderModel | ||
104 | sourceModel: Koko.ImageFolderModel { | 106 | sourceModel: Koko.ImageFolderModel { | ||
105 | url: imagePathArgument | 107 | imagePath: imagePathArgument | ||
106 | /** | 108 | /** | ||
107 | * makes sure that operation only occurs after the model is populated | 109 | * makes sure that operation only occurs after the model is populated | ||
108 | */ | 110 | */ | ||
109 | onRowsInserted: { | 111 | onRowsInserted: { | ||
110 | if( indexForUrl(imagePathArgument) != -1) { | 112 | albumView.GridView.currentIndex = indexForUrl(intermediateFolders[0]) | ||
113 | if( intermediateFolders.length > 1) { | ||||
114 | pushFolders() | ||||
115 | } else { | ||||
111 | currentImage.model = this | 116 | currentImage.model = this | ||
112 | currentImage.index = indexForUrl(imagePathArgument) | 117 | currentImage.index = indexForUrl(imagePathArgument) | ||
113 | } | 118 | } | ||
114 | } | 119 | } | ||
120 | | ||||
121 | onIntermediateUrlsChanged: intermediateFolders = intermediateUrls | ||||
115 | } | 122 | } | ||
116 | /* | 123 | /* | ||
117 | * filterRole is an Item property exposed by the QSortFilterProxyModel | 124 | * filterRole is an Item property exposed by the QSortFilterProxyModel | ||
118 | */ | 125 | */ | ||
119 | filterRole: Koko.Roles.MimeTypeRole | 126 | filterRole: Koko.Roles.MimeTypeRole | ||
120 | } | 127 | } | ||
121 | 128 | | |||
122 | Koko.SortModel { | 129 | Koko.SortModel { | ||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Line(s) | 186 | ImageViewer { | |||
190 | imageHeight: root.height | 197 | imageHeight: root.height | ||
191 | state: imagePathArgument == "" ? "closed" : "open" | 198 | state: imagePathArgument == "" ? "closed" : "open" | ||
192 | } | 199 | } | ||
193 | 200 | | |||
194 | Component.onCompleted: { | 201 | Component.onCompleted: { | ||
195 | albumView.model = imageFolderModel | 202 | albumView.model = imageFolderModel | ||
196 | albumView.title = i18n("Folders") | 203 | albumView.title = i18n("Folders") | ||
197 | } | 204 | } | ||
205 | | ||||
206 | function pushFolders() { | ||||
207 | var folderModel, sortModel; | ||||
208 | for( var i = 1; i < intermediateFolders.length; i++) { | ||||
209 | folderModel = Qt.createQmlObject("import org.kde.koko 0.1 as Koko; Koko.ImageFolderModel{}", root, "errorString"); | ||||
210 | folderModel.url = intermediateFolders[i]; | ||||
211 | console.log(folderModel.url) | ||||
212 | sortModel = Qt.createQmlObject("import org.kde.koko 0.1 as Koko; Koko.SortModel{}", root, "errorString"); | ||||
213 | sortModel.sourceModel = folderModel | ||||
214 | /** | ||||
215 | * FIXME: display title is not correct yet | ||||
216 | * also the currentIndex pointing to 0 index for sortModel | ||||
217 | */ | ||||
218 | albumView.folderSelected(sortModel, "Cover"); | ||||
219 | } | ||||
220 | currentImage.model = folderModel | ||||
221 | currentImage.index = folderModel.indexForUrl(imagePathArgument) | ||||
222 | } | ||||
198 | } | 223 | } |