added new history navigation for supporting different source containers

This commit is contained in:
Luis Ángel San Martín
2014-11-26 21:33:41 +01:00
parent 6f648f6d4d
commit c2f4ab403c
4 changed files with 108 additions and 28 deletions

View File

@ -5,6 +5,35 @@
#include <QModelIndex>
class YACReaderHistoryController;
class YACReaderLibrarySourceContainer
{
public:
enum SourceType {
None,
Folder,
List
};
explicit YACReaderLibrarySourceContainer();
explicit YACReaderLibrarySourceContainer(const QModelIndex & sourceModelIndex, YACReaderLibrarySourceContainer::SourceType type);
QModelIndex getSourceModelIndex() const;
YACReaderLibrarySourceContainer::SourceType getType() const;
bool operator==(const YACReaderLibrarySourceContainer& other) const;
bool operator!=(const YACReaderLibrarySourceContainer& other) const;
protected:
QModelIndex sourceModelIndex;
YACReaderLibrarySourceContainer::SourceType type;
friend class YACReaderHistoryController;
};
Q_DECLARE_METATYPE(YACReaderLibrarySourceContainer)
class YACReaderHistoryController : public QObject
{
Q_OBJECT
@ -14,19 +43,19 @@ public:
signals:
void enabledForward(bool enabled);
void enabledBackward(bool enabled);
void modelIndexSelected(QModelIndex mi);
void modelIndexSelected(YACReaderLibrarySourceContainer);
public slots:
void clear();
void backward();
void forward();
void updateHistory(const QModelIndex & mi);
QModelIndex lastIndex();
QModelIndex currentIndex();
void updateHistory(const YACReaderLibrarySourceContainer & source);
YACReaderLibrarySourceContainer lastSourceContainer();
YACReaderLibrarySourceContainer currentSourceContainer();
protected:
int currentFolderNavigation;
QList<QModelIndex> history;
QList<YACReaderLibrarySourceContainer> history;
};