diff --git a/qmlUiKirigami/AlbumDelegate.qml b/qmlUiKirigami/AlbumDelegate.qml --- a/qmlUiKirigami/AlbumDelegate.qml +++ b/qmlUiKirigami/AlbumDelegate.qml @@ -47,7 +47,8 @@ Kirigami.BasicListItem { visible: model.itemType == Koko.Types.Folder || model.itemType == Koko.Types.Album - label: model.fileCount == 1 ? qsTr(" %1 \n 1 Image").arg(model.display) : qsTr(" %1 \n %2 Images").arg(model.display).arg(model.fileCount); + label: model.fileCount ? (model.fileCount == 1 ? qsTr(" %1 \n 1 Image").arg(model.display) : qsTr(" %1 \n %2 Images").arg(model.display).arg(model.fileCount)) + : qsTr(" %1").arg(model.display) reserveSpaceForIcon: false width: image.width anchors.left: image.left @@ -93,11 +94,13 @@ case Koko.Types.Album: { imageListModel.imageList = model.files sortedListModel.sourceModel = imageListModel - collectionSelected(sortedListModel, model.display) + collectionSelected( sortedListModel, model.display) break; } case Koko.Types.Folder: { - console.log("Folder") + imageFolderModel.url = model.url + sortedListModel.sourceModel = imageFolderModel + folderSelected( sortedListModel, model.display) break; } case Koko.Types.Image: { diff --git a/qmlUiKirigami/AlbumView.qml b/qmlUiKirigami/AlbumView.qml --- a/qmlUiKirigami/AlbumView.qml +++ b/qmlUiKirigami/AlbumView.qml @@ -29,8 +29,9 @@ id: page property alias model: gridView.model - signal collectionSelected(Koko.SortModel files, string cover) + signal collectionSelected(QtObject selectedModel, string cover) signal imageSelected(int currentIndex) + signal folderSelected(QtObject selectedModel, string cover) keyboardNavigationEnabled: true focus: true @@ -65,5 +66,16 @@ Koko.ImageListModel { id: imageListModel } + Koko.ImageFolderModel { + id: imageFolderModel + } + onCollectionSelected: pageStack.push( Qt.resolvedUrl("AlbumView.qml"), { "model": selectedModel, "title": cover}) + onFolderSelected: pageStack.push( Qt.resolvedUrl("AlbumView.qml"), { "model": selectedModel, "title": cover}) + onImageSelected: { + currentImage.model = model + currentImage.index = currentIndex + imageViewer.state = "open"; + } + } diff --git a/qmlUiKirigami/main.qml b/qmlUiKirigami/main.qml --- a/qmlUiKirigami/main.qml +++ b/qmlUiKirigami/main.qml @@ -41,7 +41,6 @@ pageStack.initialPage: AlbumView { id: albumView - onCollectionSelected: pageStack.push(overviewPage, { "model": files, "title": cover}) } globalDrawer: Sidebar { @@ -144,18 +143,6 @@ sourceModel: Koko.ImageLocationModel { group: Koko.ImageLocationModel.City } - } - - Component { - id: overviewPage - AlbumView { - id: overviewPageAlbum - onImageSelected: { - currentImage.model = model - currentImage.index = currentIndex - imageViewer.state = "open"; - } - } } ImageViewer { diff --git a/src/imagefoldermodel.h b/src/imagefoldermodel.h --- a/src/imagefoldermodel.h +++ b/src/imagefoldermodel.h @@ -53,8 +53,7 @@ UrlRole = Qt::UserRole + 1, MimeTypeRole = Qt::UserRole + 2, Thumbnail = Qt::UserRole + 3, - SelectedRole = Qt::UserRole + 4, - ItemTypeRole = Qt::UserRole + 5 + ItemTypeRole = Qt::UserRole + 4 }; ImageFolderModel(QObject* parent=0); diff --git a/src/imagefoldermodel.cpp b/src/imagefoldermodel.cpp --- a/src/imagefoldermodel.cpp +++ b/src/imagefoldermodel.cpp @@ -86,7 +86,6 @@ { UrlRole, "url" }, { MimeTypeRole, "mimeType" }, { Thumbnail, "thumbnail" }, - { SelectedRole, "selected" }, { ItemTypeRole, "itemType"} }; } @@ -164,9 +163,6 @@ m_previewTimer->start(100); const_cast(this)->m_filesToPreview[item.url()] = QPersistentModelIndex(index); } - //TODO: implement selection - case SelectedRole: - return false; case ItemTypeRole: { KFileItem item = itemForIndex(index);