#ifndef YACREADER_NAVIGATION_CONTROLLER_H #define YACREADER_NAVIGATION_CONTROLLER_H #include class LibraryWindow; class YACReaderLibrarySourceContainer; class YACReaderComicsViewsManager; class YACReaderNavigationController : public QObject { Q_OBJECT public: explicit YACReaderNavigationController(LibraryWindow * parent, YACReaderComicsViewsManager * comicsViewsManager); 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; YACReaderComicsViewsManager * comicsViewsManager; //convenience methods qulonglong folderModelIndexToID(const QModelIndex & mi); }; #endif // YACREADER_NAVIGATION_CONTROLLER_H