mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
Use the new widget instead of EmptyFolderWidget
This commit is contained in:
parent
d2dff7b4a5
commit
abfa03fa16
@ -79,6 +79,7 @@
|
|||||||
#include "opengl_checker.h"
|
#include "opengl_checker.h"
|
||||||
|
|
||||||
#include "yacreader_comics_views_manager.h"
|
#include "yacreader_comics_views_manager.h"
|
||||||
|
#include "folder_content_view.h"
|
||||||
|
|
||||||
#include "trayicon_controller.h"
|
#include "trayicon_controller.h"
|
||||||
|
|
||||||
@ -1544,7 +1545,7 @@ void LibraryWindow::reloadAfterCopyMove(const QModelIndex &mi)
|
|||||||
navigationController->loadFolderInfo(mi);
|
navigationController->loadFolderInfo(mi);
|
||||||
}
|
}
|
||||||
|
|
||||||
foldersModel->fetchMoreFromDB(mi);
|
foldersModel->reload();
|
||||||
|
|
||||||
enableNeededActions();
|
enableNeededActions();
|
||||||
}
|
}
|
||||||
@ -1783,6 +1784,87 @@ void LibraryWindow::showComicsItemContextMenu(const QPoint &point)
|
|||||||
menu.exec(comicsViewsManager->comicsView->mapToGlobal(point));
|
menu.exec(comicsViewsManager->comicsView->mapToGlobal(point));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LibraryWindow::showGridFoldersContextMenu(QPoint point, Folder folder)
|
||||||
|
{
|
||||||
|
QMenu menu;
|
||||||
|
|
||||||
|
auto openContainingFolderAction = new QAction();
|
||||||
|
openContainingFolderAction->setText(tr("Open folder..."));
|
||||||
|
openContainingFolderAction->setIcon(QIcon(":/images/menus_icons/open.png"));
|
||||||
|
|
||||||
|
auto updateFolderAction = new QAction(tr("Update folder"), this);
|
||||||
|
updateFolderAction->setIcon(QIcon(":/images/menus_icons/updateLibraryIcon.png"));
|
||||||
|
|
||||||
|
auto setFolderAsNotCompletedAction = new QAction();
|
||||||
|
setFolderAsNotCompletedAction->setText(tr("Set as uncompleted"));
|
||||||
|
|
||||||
|
auto setFolderAsCompletedAction = new QAction();
|
||||||
|
setFolderAsCompletedAction->setText(tr("Set as completed"));
|
||||||
|
|
||||||
|
auto setFolderAsReadAction = new QAction();
|
||||||
|
setFolderAsReadAction->setText(tr("Set as read"));
|
||||||
|
|
||||||
|
auto setFolderAsUnreadAction = new QAction();
|
||||||
|
setFolderAsUnreadAction->setText(tr("Set as unread"));
|
||||||
|
|
||||||
|
auto setFolderAsMangaAction = new QAction();
|
||||||
|
setFolderAsMangaAction->setText(tr("Set as manga"));
|
||||||
|
|
||||||
|
auto setFolderAsNormalAction = new QAction();
|
||||||
|
setFolderAsNormalAction->setText(tr("Set as comic"));
|
||||||
|
|
||||||
|
menu.addAction(openContainingFolderAction);
|
||||||
|
menu.addAction(updateFolderAction);
|
||||||
|
menu.addSeparator();
|
||||||
|
if (folder.isCompleted())
|
||||||
|
menu.addAction(setFolderAsNotCompletedAction);
|
||||||
|
else
|
||||||
|
menu.addAction(setFolderAsCompletedAction);
|
||||||
|
menu.addSeparator();
|
||||||
|
if (folder.isFinished())
|
||||||
|
menu.addAction(setFolderAsUnreadAction);
|
||||||
|
else
|
||||||
|
menu.addAction(setFolderAsReadAction);
|
||||||
|
menu.addSeparator();
|
||||||
|
if (folder.isManga())
|
||||||
|
menu.addAction(setFolderAsNormalAction);
|
||||||
|
else
|
||||||
|
menu.addAction(setFolderAsMangaAction);
|
||||||
|
|
||||||
|
// TODO update the subfolder model loaded in folderContentView
|
||||||
|
connect(openContainingFolderAction, &QAction::triggered, this, [=]() {
|
||||||
|
QDesktopServices::openUrl(QUrl("file:///" + QDir::cleanPath(currentPath() + "/" + folder.path), QUrl::TolerantMode));
|
||||||
|
});
|
||||||
|
connect(updateFolderAction, &QAction::triggered, this, [=]() {
|
||||||
|
updateFolder(foldersModel->getIndexFromFolder(folder));
|
||||||
|
});
|
||||||
|
connect(setFolderAsNotCompletedAction, &QAction::triggered, this, [=]() {
|
||||||
|
foldersModel->updateFolderCompletedStatus(QModelIndexList() << foldersModel->getIndexFromFolder(folder), false);
|
||||||
|
});
|
||||||
|
connect(setFolderAsCompletedAction, &QAction::triggered, this, [=]() {
|
||||||
|
foldersModel->updateFolderCompletedStatus(QModelIndexList() << foldersModel->getIndexFromFolder(folder), true);
|
||||||
|
});
|
||||||
|
connect(setFolderAsReadAction, &QAction::triggered, this, [=]() {
|
||||||
|
foldersModel->updateFolderFinishedStatus(QModelIndexList() << foldersModel->getIndexFromFolder(folder), true);
|
||||||
|
});
|
||||||
|
connect(setFolderAsUnreadAction, &QAction::triggered, this, [=]() {
|
||||||
|
foldersModel->updateFolderFinishedStatus(QModelIndexList() << foldersModel->getIndexFromFolder(folder), false);
|
||||||
|
});
|
||||||
|
connect(setFolderAsMangaAction, &QAction::triggered, this, [=]() {
|
||||||
|
foldersModel->updateFolderManga(QModelIndexList() << foldersModel->getIndexFromFolder(folder), true);
|
||||||
|
});
|
||||||
|
connect(setFolderAsNormalAction, &QAction::triggered, this, [=]() {
|
||||||
|
foldersModel->updateFolderManga(QModelIndexList() << foldersModel->getIndexFromFolder(folder), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
menu.exec(comicsViewsManager->folderContentView->mapToGlobal(point));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LibraryWindow::showContinueReadingContextMenu(QPoint point, ComicDB comic)
|
||||||
|
{
|
||||||
|
qDebug() << "openContinueReadingComicContextMenu" << comic.name;
|
||||||
|
}
|
||||||
|
|
||||||
void LibraryWindow::setupAddToSubmenu(QMenu &menu)
|
void LibraryWindow::setupAddToSubmenu(QMenu &menu)
|
||||||
{
|
{
|
||||||
menu.addAction(addToFavoritesAction);
|
menu.addAction(addToFavoritesAction);
|
||||||
@ -1832,7 +1914,7 @@ void LibraryWindow::saveSelectedCoversTo()
|
|||||||
if (!folderPath.isEmpty()) {
|
if (!folderPath.isEmpty()) {
|
||||||
QModelIndexList comics = getSelectedComics();
|
QModelIndexList comics = getSelectedComics();
|
||||||
foreach (QModelIndex comic, comics) {
|
foreach (QModelIndex comic, comics) {
|
||||||
QString origin = comic.data(ComicModel::CoverPathRole).toString().remove("file:///");
|
QString origin = comic.data(ComicModel::CoverPathRole).toString().remove("file:///").remove("file:");
|
||||||
QString destination = QDir(folderPath).filePath(comic.data(ComicModel::FileNameRole).toString() + ".jpg");
|
QString destination = QDir(folderPath).filePath(comic.data(ComicModel::FileNameRole).toString() + ".jpg");
|
||||||
|
|
||||||
QLOG_DEBUG() << "From : " << origin;
|
QLOG_DEBUG() << "From : " << origin;
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
#include "folder_query_result_processor.h"
|
#include "folder_query_result_processor.h"
|
||||||
|
|
||||||
#include "comic_model.h"
|
#include "comic_model.h"
|
||||||
|
#include "comic_db.h"
|
||||||
|
#include "folder.h"
|
||||||
|
|
||||||
#include <future>
|
#include <future>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@ -379,6 +381,8 @@ public slots:
|
|||||||
void deleteComicsFromList();
|
void deleteComicsFromList();
|
||||||
// void showSocial();
|
// void showSocial();
|
||||||
void showFoldersContextMenu(const QPoint &point);
|
void showFoldersContextMenu(const QPoint &point);
|
||||||
|
void showGridFoldersContextMenu(QPoint point, Folder folder);
|
||||||
|
void showContinueReadingContextMenu(QPoint point, ComicDB comic);
|
||||||
void libraryAlreadyExists(const QString &name);
|
void libraryAlreadyExists(const QString &name);
|
||||||
void importLibraryPackage();
|
void importLibraryPackage();
|
||||||
void updateComicsView(quint64 libraryId, const ComicDB &comic);
|
void updateComicsView(quint64 libraryId, const ComicDB &comic);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include "grid_comics_view.h"
|
#include "grid_comics_view.h"
|
||||||
#include "info_comics_view.h"
|
#include "info_comics_view.h"
|
||||||
#include "comics_view_transition.h"
|
#include "comics_view_transition.h"
|
||||||
#include "empty_folder_widget.h"
|
#include "folder_content_view.h"
|
||||||
#include "empty_label_widget.h"
|
#include "empty_label_widget.h"
|
||||||
#include "empty_special_list.h"
|
#include "empty_special_list.h"
|
||||||
#include "empty_reading_list_widget.h"
|
#include "empty_reading_list_widget.h"
|
||||||
@ -48,7 +48,7 @@ YACReaderComicsViewsManager::YACReaderComicsViewsManager(QSettings *settings, Li
|
|||||||
doComicsViewConnections();
|
doComicsViewConnections();
|
||||||
|
|
||||||
comicsViewStack->addWidget(comicsViewTransition = new ComicsViewTransition());
|
comicsViewStack->addWidget(comicsViewTransition = new ComicsViewTransition());
|
||||||
comicsViewStack->addWidget(emptyFolderWidget = new EmptyFolderWidget());
|
comicsViewStack->addWidget(folderContentView = new FolderContentView());
|
||||||
comicsViewStack->addWidget(emptyLabelWidget = new EmptyLabelWidget());
|
comicsViewStack->addWidget(emptyLabelWidget = new EmptyLabelWidget());
|
||||||
comicsViewStack->addWidget(emptySpecialList = new EmptySpecialListWidget());
|
comicsViewStack->addWidget(emptySpecialList = new EmptySpecialListWidget());
|
||||||
comicsViewStack->addWidget(emptyReadingList = new EmptyReadingListWidget());
|
comicsViewStack->addWidget(emptyReadingList = new EmptyReadingListWidget());
|
||||||
@ -59,8 +59,8 @@ YACReaderComicsViewsManager::YACReaderComicsViewsManager(QSettings *settings, Li
|
|||||||
comicsViewStack->setCurrentWidget(comicsView);
|
comicsViewStack->setCurrentWidget(comicsView);
|
||||||
|
|
||||||
// connections
|
// connections
|
||||||
connect(emptyFolderWidget, &EmptyFolderWidget::copyComicsToCurrentFolder, libraryWindow, &LibraryWindow::copyAndImportComicsToCurrentFolder);
|
connect(folderContentView, &FolderContentView::copyComicsToCurrentFolder, libraryWindow, &LibraryWindow::copyAndImportComicsToCurrentFolder);
|
||||||
connect(emptyFolderWidget, &EmptyFolderWidget::moveComicsToCurrentFolder, libraryWindow, &LibraryWindow::moveAndImportComicsToCurrentFolder);
|
connect(folderContentView, &FolderContentView::moveComicsToCurrentFolder, libraryWindow, &LibraryWindow::moveAndImportComicsToCurrentFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *YACReaderComicsViewsManager::containerWidget()
|
QWidget *YACReaderComicsViewsManager::containerWidget()
|
||||||
@ -86,7 +86,7 @@ void YACReaderComicsViewsManager::showComicsView()
|
|||||||
|
|
||||||
void YACReaderComicsViewsManager::showEmptyFolderView()
|
void YACReaderComicsViewsManager::showEmptyFolderView()
|
||||||
{
|
{
|
||||||
comicsViewStack->setCurrentWidget(emptyFolderWidget);
|
comicsViewStack->setCurrentWidget(folderContentView);
|
||||||
}
|
}
|
||||||
|
|
||||||
void YACReaderComicsViewsManager::showEmptyLabelView()
|
void YACReaderComicsViewsManager::showEmptyLabelView()
|
||||||
|
@ -12,7 +12,7 @@ class ClassicComicsView;
|
|||||||
class GridComicsView;
|
class GridComicsView;
|
||||||
class InfoComicsView;
|
class InfoComicsView;
|
||||||
class ComicsViewTransition;
|
class ComicsViewTransition;
|
||||||
class EmptyFolderWidget;
|
class FolderContentView;
|
||||||
class EmptyLabelWidget;
|
class EmptyLabelWidget;
|
||||||
class EmptySpecialListWidget;
|
class EmptySpecialListWidget;
|
||||||
class EmptyReadingListWidget;
|
class EmptyReadingListWidget;
|
||||||
@ -20,6 +20,7 @@ class NoSearchResultsWidget;
|
|||||||
|
|
||||||
using namespace YACReader;
|
using namespace YACReader;
|
||||||
|
|
||||||
|
// TODO rename to YACReaderContentViewsManager
|
||||||
class YACReaderComicsViewsManager : public QObject
|
class YACReaderComicsViewsManager : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -32,7 +33,7 @@ public:
|
|||||||
|
|
||||||
ComicsViewTransition *comicsViewTransition;
|
ComicsViewTransition *comicsViewTransition;
|
||||||
|
|
||||||
EmptyFolderWidget *emptyFolderWidget;
|
FolderContentView *folderContentView;
|
||||||
EmptyLabelWidget *emptyLabelWidget;
|
EmptyLabelWidget *emptyLabelWidget;
|
||||||
EmptySpecialListWidget *emptySpecialList;
|
EmptySpecialListWidget *emptySpecialList;
|
||||||
EmptyReadingListWidget *emptyReadingList;
|
EmptyReadingListWidget *emptyReadingList;
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#include "folder_model.h"
|
#include "folder_model.h"
|
||||||
#include "reading_list_model.h"
|
#include "reading_list_model.h"
|
||||||
#include "comics_view.h"
|
#include "comics_view.h"
|
||||||
#include "empty_folder_widget.h"
|
#include "folder_content_view.h"
|
||||||
#include "yacreader_search_line_edit.h"
|
#include "yacreader_search_line_edit.h"
|
||||||
#include "yacreader_global.h"
|
#include "yacreader_global.h"
|
||||||
#include "empty_label_widget.h"
|
#include "empty_label_widget.h"
|
||||||
@ -249,9 +249,18 @@ void YACReaderNavigationController::selectSubfolder(const QModelIndex &sourceMIP
|
|||||||
|
|
||||||
void YACReaderNavigationController::loadEmptyFolderInfo(const QModelIndex &modelIndex)
|
void YACReaderNavigationController::loadEmptyFolderInfo(const QModelIndex &modelIndex)
|
||||||
{
|
{
|
||||||
QStringList subfolders;
|
auto readingComicsModel = new ComicModel();
|
||||||
subfolders = libraryWindow->foldersModel->getSubfoldersNames(modelIndex);
|
|
||||||
comicsViewsManager->emptyFolderWidget->setSubfolders(modelIndex, subfolders);
|
auto isRoot = !modelIndex.isValid();
|
||||||
|
|
||||||
|
if (isRoot) {
|
||||||
|
readingComicsModel->setupReadingModelData(libraryWindow->foldersModel->getDatabase());
|
||||||
|
}
|
||||||
|
|
||||||
|
comicsViewsManager->folderContentView->setContinueReadingModel(readingComicsModel);
|
||||||
|
|
||||||
|
auto subFolderModel = libraryWindow->foldersModel->getSubfoldersModel(modelIndex);
|
||||||
|
comicsViewsManager->folderContentView->setModel(modelIndex, subFolderModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void YACReaderNavigationController::loadPreviousStatus()
|
void YACReaderNavigationController::loadPreviousStatus()
|
||||||
@ -266,7 +275,10 @@ void YACReaderNavigationController::setupConnections()
|
|||||||
connect(libraryWindow->foldersView, &YACReaderTreeView::clicked, this, &YACReaderNavigationController::selectedFolder);
|
connect(libraryWindow->foldersView, &YACReaderTreeView::clicked, this, &YACReaderNavigationController::selectedFolder);
|
||||||
connect(libraryWindow->listsView, &QAbstractItemView::clicked, this, &YACReaderNavigationController::selectedList);
|
connect(libraryWindow->listsView, &QAbstractItemView::clicked, this, &YACReaderNavigationController::selectedList);
|
||||||
connect(libraryWindow->historyController, &YACReaderHistoryController::modelIndexSelected, this, &YACReaderNavigationController::selectedIndexFromHistory);
|
connect(libraryWindow->historyController, &YACReaderHistoryController::modelIndexSelected, this, &YACReaderNavigationController::selectedIndexFromHistory);
|
||||||
connect(comicsViewsManager->emptyFolderWidget, &EmptyFolderWidget::subfolderSelected, this, &YACReaderNavigationController::selectSubfolder);
|
connect(comicsViewsManager->folderContentView, &FolderContentView::subfolderSelected, this, &YACReaderNavigationController::selectSubfolder);
|
||||||
|
connect(comicsViewsManager->folderContentView, &FolderContentView::openComic, libraryWindow, QOverload<const ComicDB &, const ComicModel::Mode>::of(&LibraryWindow::openComic));
|
||||||
|
connect(comicsViewsManager->folderContentView, &FolderContentView::openFolderContextMenu, libraryWindow, &LibraryWindow::showGridFoldersContextMenu);
|
||||||
|
connect(comicsViewsManager->folderContentView, &FolderContentView::openContinueReadingComicContextMenu, libraryWindow, &LibraryWindow::showContinueReadingContextMenu);
|
||||||
connect(libraryWindow->comicsModel, &ComicModel::isEmpty, this, &YACReaderNavigationController::reselectCurrentSource);
|
connect(libraryWindow->comicsModel, &ComicModel::isEmpty, this, &YACReaderNavigationController::reselectCurrentSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user