diff --git a/YACReaderLibrary/db/treemodel.cpp b/YACReaderLibrary/db/treemodel.cpp index aff6d801..f8872cbb 100644 --- a/YACReaderLibrary/db/treemodel.cpp +++ b/YACReaderLibrary/db/treemodel.cpp @@ -315,7 +315,7 @@ void TreeModel::setupFilteredModelData() db.close(); QSqlDatabase::removeDatabase(_databasePath); - endResetModel(); + endResetModel(); } void TreeModel::setupFilteredModelData(QSqlQuery &sqlquery, TreeItem *parent) @@ -453,3 +453,23 @@ void TreeModel::updateFolderCompletedStatus(const QModelIndexList &list, bool st emit dataChanged(index(list.first().row(),TreeModel::Name),index(list.last().row(),TreeModel::Completed)); } + +void TreeModel::updateFolderFinishedStatus(const QModelIndexList &list, bool status) +{ + QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); + db.transaction(); + foreach (QModelIndex mi, list) + { + TreeItem * item = static_cast(mi.internalPointer()); + item->setData(TreeModel::Finished,status); + + Folder f = DBHelper::loadFolder(item->id,db); + f.setFinished(status); + DBHelper::update(f,db); + } + db.commit(); + db.close(); + QSqlDatabase::removeDatabase(_databasePath); + + emit dataChanged(index(list.first().row(),TreeModel::Name),index(list.last().row(),TreeModel::Completed)); +} diff --git a/YACReaderLibrary/db/treemodel.h b/YACReaderLibrary/db/treemodel.h index 4e389c0d..02168cbb 100644 --- a/YACReaderLibrary/db/treemodel.h +++ b/YACReaderLibrary/db/treemodel.h @@ -83,6 +83,7 @@ public: bool isFilterEnabled(){return filterEnabled;}; void updateFolderCompletedStatus(const QModelIndexList & list, bool status); + void updateFolderFinishedStatus(const QModelIndexList & list, bool status); enum Columns { Name = 0, diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 7e3e55fe..928d7ebd 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -442,11 +442,16 @@ void LibraryWindow::createActions() openContainingFolderAction->setIcon(QIcon(":/images/open.png")); setFolderAsNotCompletedAction = new QAction(this); - setFolderAsNotCompletedAction->setText(tr("Set as not completed")); + setFolderAsNotCompletedAction->setText(tr("Set as uncompleted")); setFolderAsCompletedAction = new QAction(this); setFolderAsCompletedAction->setText(tr("Set as completed")); + setFolderAsFinishedAction = new QAction(this); + setFolderAsFinishedAction->setText(tr("Set as finished")); + + setFolderAsNotFinishedAction = new QAction(this); + setFolderAsNotFinishedAction->setText(tr("Set as unfinished")); openContainingFolderComicAction = new QAction(this); openContainingFolderComicAction->setText(tr("Open containing folder...")); @@ -636,6 +641,13 @@ void LibraryWindow::createMenus() } foldersView->addAction(setFolderAsNotCompletedAction); foldersView->addAction(setFolderAsCompletedAction); + { + QAction *act = new QAction(this); + act->setSeparator(true); + foldersView->addAction(act); + } + foldersView->addAction(setFolderAsFinishedAction); + foldersView->addAction(setFolderAsNotFinishedAction); selectedLibrary->addAction(updateLibraryAction); selectedLibrary->addAction(renameLibraryAction); @@ -768,6 +780,8 @@ void LibraryWindow::createConnections() connect(openContainingFolderComicAction,SIGNAL(triggered()),this,SLOT(openContainingFolderComic())); connect(setFolderAsNotCompletedAction,SIGNAL(triggered()),this,SLOT(setFolderAsNotCompleted())); connect(setFolderAsCompletedAction,SIGNAL(triggered()),this,SLOT(setFolderAsCompleted())); + connect(setFolderAsFinishedAction,SIGNAL(triggered()),this,SLOT(setFolderAsFinished())); + connect(setFolderAsNotFinishedAction,SIGNAL(triggered()),this,SLOT(setFolderAsNotFinished())); connect(openContainingFolderAction,SIGNAL(triggered()),this,SLOT(openContainingFolder())); connect(resetComicRatingAction,SIGNAL(triggered()),this,SLOT(resetComicRating())); @@ -1557,6 +1571,16 @@ void LibraryWindow::setFolderAsCompleted() dm->updateFolderCompletedStatus(foldersView->selectionModel()->selectedRows(),true); } +void LibraryWindow::setFolderAsFinished() +{ + dm->updateFolderFinishedStatus(foldersView->selectionModel()->selectedRows(),true); +} + +void LibraryWindow::setFolderAsNotFinished() +{ + dm->updateFolderFinishedStatus(foldersView->selectionModel()->selectedRows(),false); +} + void LibraryWindow::exportLibrary(QString destPath) { QString currentLibrary = selectedLibrary->currentText(); diff --git a/YACReaderLibrary/library_window.h b/YACReaderLibrary/library_window.h index ab8f0c51..061b5f23 100644 --- a/YACReaderLibrary/library_window.h +++ b/YACReaderLibrary/library_window.h @@ -137,8 +137,12 @@ private: QAction * colapseAllNodesAction; QAction * openContainingFolderAction; + //-- QAction * setFolderAsNotCompletedAction; QAction * setFolderAsCompletedAction; + //-- + QAction * setFolderAsFinishedAction; + QAction * setFolderAsNotFinishedAction; QAction * openContainingFolderComicAction; QAction * setAsReadAction; @@ -236,6 +240,8 @@ public: void openContainingFolder(); void setFolderAsNotCompleted(); void setFolderAsCompleted(); + void setFolderAsFinished(); + void setFolderAsNotFinished(); void openContainingFolderComic(); void deleteCurrentLibrary(); void removeLibrary();