X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=library.h;h=a1ac1764ba43a52adbe7fd4de0a7294a94ff65b9;hb=826aea4a3e3f4b4361b7592ad824963a529ffefd;hp=b111dae588f3f20e95ad8e475c61ee0103c75eb7;hpb=76446a14739779702a024d207be9fb52da36bd24;p=dorian diff --git a/library.h b/library.h index b111dae..a1ac176 100644 --- a/library.h +++ b/library.h @@ -1,43 +1,48 @@ #ifndef LIBRARY_H #define LIBRARY_H -#include +#include +#include #include #include -#include "book.h" +class QObject; +class QModelIndex; +class Book; /** Library of books. */ -class Library: public QObject +class Library: public QAbstractListModel { Q_OBJECT public: static Library *instance(); static void close(); + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role) const; void save(); - int find(QString path) const; - int find(const Book *book) const; - Book *at(int index) const; - int size() const; - Book *current() const; + QModelIndex find(QString path) const; + QModelIndex find(const Book *book) const; bool add(QString path); - void remove(int index); - void setCurrent(int index); + void remove(const QModelIndex &index); + void setNowReading(const QModelIndex &index); + QModelIndex nowReading() const; + Book *book(const QModelIndex &index); signals: - void bookAdded(); - void bookRemoved(int index); - void currentBookChanged(); + void nowReadingChanged(); + +public slots: + void onBookOpened(const QString &path); private: - Library(); + explicit Library(QObject *parent = 0); ~Library(); void load(); void clear(); static Library *mInstance; QList mBooks; - Book *mCurrent; + QModelIndex mNowReading; }; #endif // LIBRARY_H