Fix forward navigation control on Linux.
[dorian] / model / library.cpp
index c3e16e9..14082e5 100644 (file)
@@ -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)
@@ -116,6 +121,7 @@ bool Library::add(const QString &path)
     beginInsertRows(QModelIndex(), size, size);
     Book *book = new Book(path);
     book->peek();
+    book->dateAdded = QDateTime::currentDateTime().toUTC();
     mBooks.append(book);
     save();
     endInsertRows();
@@ -144,6 +150,7 @@ void Library::remove(const QModelIndex &index)
 
 void Library::remove(const QString &path)
 {
+    TRACE;
     remove(find(path));
 }
 
@@ -161,6 +168,7 @@ void Library::setNowReading(const QModelIndex &index)
 
 void Library::clear()
 {
+    TRACE;
     for (int i = 0; i < mBooks.size(); i++) {
         delete mBooks[i];
     }
@@ -170,6 +178,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 +192,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]) {