#ifndef YACREADER_NAVIGATION_CONTROLLER_H #define YACREADER_NAVIGATION_CONTROLLER_H #include 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