yacreader/YACReaderLibrary/yacreader_navigation_controller.h
2022-10-14 13:11:59 +02:00

54 lines
1.6 KiB
C++

#ifndef YACREADER_NAVIGATION_CONTROLLER_H
#define YACREADER_NAVIGATION_CONTROLLER_H
#include <QObject>
class LibraryWindow;
class YACReaderLibrarySourceContainer;
class YACReaderContentViewsManager;
class YACReaderNavigationController : public QObject
{
Q_OBJECT
public:
explicit YACReaderNavigationController(LibraryWindow *parent, YACReaderContentViewsManager *contentViewsManager);
signals:
public slots:
// info origins
// folders view
void selectedFolder(const QModelIndex &mi);
void reselectCurrentFolder();
// reading lists
void selectedList(const QModelIndex &mi);
void reselectCurrentList();
void reselectCurrentSource();
// history navigation
void selectedIndexFromHistory(const YACReaderLibrarySourceContainer &sourceContainer);
void loadIndexFromHistory(const YACReaderLibrarySourceContainer &sourceContainer);
// empty subfolder
void selectSubfolder(const QModelIndex &sourceMI, int child);
void loadEmptyFolderInfo(const QModelIndex &modelIndex);
void loadFolderInfo(const QModelIndex &modelIndex);
void loadListInfo(const QModelIndex &modelIndex);
void loadSpecialListInfo(const QModelIndex &modelIndex);
void loadLabelInfo(const QModelIndex &modelIndex);
void loadReadingListInfo(const QModelIndex &modelIndex);
void loadPreviousStatus();
private:
void setupConnections();
LibraryWindow *libraryWindow;
YACReaderContentViewsManager *contentViewsManager;
// convenience methods
qulonglong folderModelIndexToID(const QModelIndex &mi);
};
#endif // YACREADER_NAVIGATION_CONTROLLER_H