From 2af75b35ca2f9b0e5546ddaebe1be3a28872e231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Thu, 20 Nov 2014 23:38:27 +0100 Subject: [PATCH] fixed contextual folders actions --- YACReaderLibrary/db/folder_model.cpp | 3 +++ YACReaderLibrary/library_window.cpp | 17 ++++++++++------- YACReaderLibrary/yacreader_folders_view.cpp | 1 - .../yacreader_navigation_controller.cpp | 6 ++++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/YACReaderLibrary/db/folder_model.cpp b/YACReaderLibrary/db/folder_model.cpp index 27d1054c..2952c5c9 100644 --- a/YACReaderLibrary/db/folder_model.cpp +++ b/YACReaderLibrary/db/folder_model.cpp @@ -169,6 +169,9 @@ QVariant FolderModel::data(const QModelIndex &index, int role) const if(role == FolderModel::CompletedRole) return item->data(FolderModel::Completed); + if(role == FolderModel::FinishedRole) + return item->data(FolderModel::Finished); + if (role != Qt::DisplayRole) return QVariant(); diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 8d684dfe..3a5f7e22 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -2247,22 +2247,26 @@ void LibraryWindow::openContainingFolder() void LibraryWindow::setFolderAsNotCompleted() { - foldersModel->updateFolderCompletedStatus(foldersView->selectionModel()->selectedRows(),false); + //foldersModel->updateFolderCompletedStatus(foldersView->selectionModel()->selectedRows(),false); + foldersModel->updateFolderCompletedStatus(QModelIndexList() << foldersModelProxy->mapToSource(foldersView->currentIndex()),false); } void LibraryWindow::setFolderAsCompleted() { - foldersModel->updateFolderCompletedStatus(foldersView->selectionModel()->selectedRows(),true); + //foldersModel->updateFolderCompletedStatus(foldersView->selectionModel()->selectedRows(),true); + foldersModel->updateFolderCompletedStatus(QModelIndexList() << foldersModelProxy->mapToSource(foldersView->currentIndex()),true); } void LibraryWindow::setFolderAsRead() { - foldersModel->updateFolderFinishedStatus(foldersView->selectionModel()->selectedRows(),true); + //foldersModel->updateFolderFinishedStatus(foldersView->selectionModel()->selectedRows(),true); + foldersModel->updateFolderFinishedStatus(QModelIndexList() << foldersModelProxy->mapToSource(foldersView->currentIndex()),true); } void LibraryWindow::setFolderAsUnread() { - foldersModel->updateFolderFinishedStatus(foldersView->selectionModel()->selectedRows(),false); + //foldersModel->updateFolderFinishedStatus(foldersView->selectionModel()->selectedRows(),false); + foldersModel->updateFolderFinishedStatus(QModelIndexList() << foldersModelProxy->mapToSource(foldersView->currentIndex()),false); } void LibraryWindow::exportLibrary(QString destPath) @@ -2479,9 +2483,8 @@ void LibraryWindow::updateFoldersViewConextMenu(const QModelIndex &mi) if(!mi.isValid()) return; - FolderItem * item = static_cast(mi.internalPointer()); - bool isFinished = item->data(FolderModel::Finished).toBool(); - bool isCompleted = item->data(FolderModel::Completed).toBool(); + bool isFinished = mi.data(FolderModel::FinishedRole).toBool(); + bool isCompleted = mi.data(FolderModel::CompletedRole).toBool(); setFolderAsReadAction->setVisible(!isFinished); setFolderAsUnreadAction->setVisible(isFinished); diff --git a/YACReaderLibrary/yacreader_folders_view.cpp b/YACReaderLibrary/yacreader_folders_view.cpp index cd374553..7f49f3af 100644 --- a/YACReaderLibrary/yacreader_folders_view.cpp +++ b/YACReaderLibrary/yacreader_folders_view.cpp @@ -87,7 +87,6 @@ YACReaderFoldersViewItemDeletegate::YACReaderFoldersViewItemDeletegate(QObject * void YACReaderFoldersViewItemDeletegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { - if(!index.data(FolderModel::CompletedRole).toBool()) { painter->save(); diff --git a/YACReaderLibrary/yacreader_navigation_controller.cpp b/YACReaderLibrary/yacreader_navigation_controller.cpp index e4546a0c..35a85a13 100644 --- a/YACReaderLibrary/yacreader_navigation_controller.cpp +++ b/YACReaderLibrary/yacreader_navigation_controller.cpp @@ -72,6 +72,8 @@ void YACReaderNavigationController::loadFolderInfo(const QModelIndex &modelIndex libraryWindow->showEmptyFolderView(); libraryWindow->disableComicsActions(true); } + + libraryWindow->updateFoldersViewConextMenu(modelIndex); } void YACReaderNavigationController::loadListInfo(const QModelIndex &modelIndex) @@ -80,7 +82,7 @@ void YACReaderNavigationController::loadListInfo(const QModelIndex &modelIndex) } void YACReaderNavigationController::selectedList(const QModelIndex &mi) -{/* +{ //A proxy is used QModelIndex modelIndex = libraryWindow->listsModelProxy->mapToSource(mi); @@ -99,7 +101,7 @@ void YACReaderNavigationController::selectedList(const QModelIndex &mi) loadListInfo(modelIndex); //if a list is selected, foldersView selection must be cleared - libraryWindow->foldersView->clearSelection();*/ + libraryWindow->foldersView->clearSelection(); } void YACReaderNavigationController::selectedIndexFromHistory(const QModelIndex &sourceMI)