X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=model%2Flibrary.cpp;h=1a666399ac28232adf521a881faf924b027637e3;hb=30e85d759793aa2b367e4bacd730b733112a1a7b;hp=1a322fc4530f97254fc95fefa0e4450190abb150;hpb=27bea09d57db7170512c9df1e3605e8fa3537ff7;p=dorian diff --git a/model/library.cpp b/model/library.cpp index 1a322fc..1a66639 100644 --- a/model/library.cpp +++ b/model/library.cpp @@ -7,7 +7,7 @@ static const char *DORIAN_VERSION = #include "pkg/version.txt" ; -Library *Library::mInstance = 0; +static Library *theInstance = 0; Library::Library(QObject *parent): QAbstractListModel(parent) { @@ -20,10 +20,10 @@ Library::~Library() Library *Library::instance() { - if (!mInstance) { - mInstance = new Library(); + if (!theInstance) { + theInstance = new Library(); } - return mInstance; + return theInstance; } int Library::rowCount(const QModelIndex &parent) const @@ -37,18 +37,23 @@ int Library::rowCount(const QModelIndex &parent) const QVariant Library::data(const QModelIndex &index, int role) const { + QVariant ret; if (!index.isValid()) { - return QVariant(); + return ret; } switch (role) { case Qt::DisplayRole: - return mBooks[index.row()]->name(); + ret = mBooks[index.row()]->name(); + break; case Qt::DecorationRole: - return QPixmap::fromImage(mBooks[index.row()]->cover); + ret.setValue(mBooks[index.row()]->coverImage()); + break; default: - return QVariant(); + ; } + + return ret; } Book *Library::book(const QModelIndex &index) @@ -65,8 +70,8 @@ Book *Library::book(const QModelIndex &index) void Library::close() { - delete mInstance; - mInstance = 0; + delete theInstance; + theInstance = 0; } void Library::load() @@ -129,21 +134,22 @@ void Library::remove(const QModelIndex &index) if (!toRemove) { return; } + if (index == mNowReading) { + mNowReading = QModelIndex(); + emit nowReadingChanged(); + } toRemove->remove(); int row = index.row(); beginRemoveRows(QModelIndex(), row, row); mBooks.removeAt(row); save(); endRemoveRows(); - if (index == mNowReading) { - mNowReading = QModelIndex(); - emit nowReadingChanged(); - } delete toRemove; } void Library::remove(const QString &path) { + TRACE; remove(find(path)); } @@ -161,6 +167,7 @@ void Library::setNowReading(const QModelIndex &index) void Library::clear() { + TRACE; for (int i = 0; i < mBooks.size(); i++) { delete mBooks[i]; } @@ -170,6 +177,7 @@ void Library::clear() QModelIndex Library::find(QString path) const { + TRACE; if (path != "") { QString absolutePath = QFileInfo(path).absoluteFilePath(); for (int i = 0; i < mBooks.size(); i++) { @@ -183,6 +191,7 @@ QModelIndex Library::find(QString path) const QModelIndex Library::find(const Book *book) const { + TRACE; if (book) { for (int i = 0; i < mBooks.size(); i++) { if (book == mBooks[i]) {