diff --git a/YACReaderLibrary/db/data_base_management.cpp b/YACReaderLibrary/db/data_base_management.cpp index 4c73398e..de68378e 100644 --- a/YACReaderLibrary/db/data_base_management.cpp +++ b/YACReaderLibrary/db/data_base_management.cpp @@ -172,7 +172,7 @@ bool DataBaseManagement::createTables(QSqlDatabase & database) //now 7.0 fields "hasBeenOpened BOOLEAN DEFAULT 0," - + "rating INTEGER DEFAULT 0," "currentPage INTEGER DEFAULT 1, " "bookmark1 INTEGER DEFAULT -1, " "bookmark2 INTEGER DEFAULT -1, " @@ -569,7 +569,7 @@ bool DataBaseManagement::updateToCurrentVersion(const QString & fullPath) QSqlQuery alterTableComicInfo(db); alterTableComicInfo.prepare("ALTER TABLE comic_info ADD (" "hasBeenOpened BOOLEAN DEFAULT 0," - + "rating INTEGER DEFAULT 0," "currentPage INTEGER DEFAULT 1, " "bookmark1 INTEGER DEFAULT -1, " "bookmark2 INTEGER DEFAULT -1, " diff --git a/YACReaderLibrary/db/tablemodel.cpp b/YACReaderLibrary/db/tablemodel.cpp index 3509f9b1..ba594e95 100644 --- a/YACReaderLibrary/db/tablemodel.cpp +++ b/YACReaderLibrary/db/tablemodel.cpp @@ -20,6 +20,9 @@ #define HASH 7 #define READ 8 #define IS_BIS 9 +#define CURRENT_PAGE 10 +#define RATING 11 +#define HAS_BEEN_OPENED 12 TableModel::TableModel(QObject *parent) : QAbstractItemModel(parent) @@ -58,6 +61,12 @@ QVariant TableModel::data(const QModelIndex &index, int role) const if (!index.isValid()) return QVariant(); + if (index.column() == RATING && role == Qt::DecorationRole) + { + TableItem *item = static_cast(index.internalPointer()); + return QPixmap(QString(":/images/rating%1.png").arg(item->data(index.column()).toInt())); + } + if (role == Qt::DecorationRole) { return QVariant(); @@ -73,6 +82,8 @@ QVariant TableModel::data(const QModelIndex &index, int role) const return QVariant(Qt::AlignRight | Qt::AlignVCenter); case 7: return QVariant(Qt::AlignRight | Qt::AlignVCenter); + case CURRENT_PAGE: + return QVariant(Qt::AlignRight | Qt::AlignVCenter); default: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); } @@ -87,6 +98,12 @@ QVariant TableModel::data(const QModelIndex &index, int role) const return QString::number(item->data(index.column()).toString().right(item->data(index.column()).toString().length()-40).toInt()/1024.0/1024.0,'f',2)+"Mb"; if(index.column() == READ) return item->data(index.column()).toBool()?QVariant(tr("yes")):QVariant(tr("no")); + if(index.column() == CURRENT_PAGE) + return item->data(HAS_BEEN_OPENED).toBool()?item->data(index.column()):QVariant("-"); + + if (index.column() == RATING) + return QVariant(); + return item->data(index.column()); } //! [3] @@ -121,6 +138,10 @@ QVariant TableModel::headerData(int section, Qt::Orientation orientation, return QVariant(QString(tr("Size"))); case 8: return QVariant(QString(tr("Read"))); + case CURRENT_PAGE: + return QVariant(QString(tr("Current Page"))); + case RATING: + return QVariant(QString(tr("Rating"))); } } @@ -134,6 +155,8 @@ QVariant TableModel::headerData(int section, Qt::Orientation orientation, return QVariant(Qt::AlignRight | Qt::AlignVCenter); case 7: return QVariant(Qt::AlignRight | Qt::AlignVCenter); + case CURRENT_PAGE: + return QVariant(Qt::AlignRight | Qt::AlignVCenter); default: return QVariant(Qt::AlignLeft | Qt::AlignVCenter); } @@ -235,7 +258,7 @@ void TableModel::setupModelData(unsigned long long int folderId,const QString & //crear la consulta //timer.restart(); QSqlQuery selectQuery(db); //TODO check - selectQuery.prepare("select ci.number,ci.title,c.fileName,ci.numPages,c.id,c.parentId,c.path,ci.hash,ci.read,ci.isBis from comic c inner join comic_info ci on (c.comicInfoId = ci.id) where c.parentId = :parentId"); + selectQuery.prepare("select ci.number,ci.title,c.fileName,ci.numPages,c.id,c.parentId,c.path,ci.hash,ci.read,ci.isBis,ci.currentPage,ci.rating,ci.hasBeenOpened from comic c inner join comic_info ci on (c.comicInfoId = ci.id) where c.parentId = :parentId"); selectQuery.bindValue(":parentId", folderId); selectQuery.exec(); //txtS << "TABLEMODEL: Tiempo de consulta: " << timer.elapsed() << "ms\r\n"; diff --git a/YACReaderLibrary/images.qrc b/YACReaderLibrary/images.qrc index 1563d83e..7014df9d 100644 --- a/YACReaderLibrary/images.qrc +++ b/YACReaderLibrary/images.qrc @@ -86,6 +86,12 @@ ../images/collapsed_branch_selected.png ../images/previousCoverPage.png ../images/nextCoverPage.png + ../images/rating0.png + ../images/rating1.png + ../images/rating2.png + ../images/rating3.png + ../images/rating4.png + ../images/rating5.png diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 8883988a..d5b8ca8d 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -936,6 +936,8 @@ void LibraryWindow::loadCovers(const QModelIndex & mi) comicView->horizontalHeader()->showSection(3); comicView->horizontalHeader()->showSection(7); comicView->horizontalHeader()->showSection(8); + comicView->horizontalHeader()->showSection(10); + comicView->horizontalHeader()->showSection(11); //debido a un bug, qt4 no es capaz de ajustar el ancho teniendo en cuenta todas la filas (no sólo las visibles) diff --git a/YACReaderLibrary/yacreader_local_server.cpp b/YACReaderLibrary/yacreader_local_server.cpp index 050c7cd7..eab24fa8 100644 --- a/YACReaderLibrary/yacreader_local_server.cpp +++ b/YACReaderLibrary/yacreader_local_server.cpp @@ -97,6 +97,7 @@ void YACReaderLocalServer::getComicInfo(quint64 libraryId, ComicDB & comic, QLis void YACReaderLocalServer::updateComic(quint64 libraryId, ComicDB & comic) { DBHelper::update(DBHelper::getLibrariesNames().at(libraryId), comic.info); + emit comicUpdated(comic); } bool YACReaderLocalServer::isRunning() diff --git a/YACReaderLibrary/yacreader_local_server.h b/YACReaderLibrary/yacreader_local_server.h index 8e193e16..b6b65a7f 100644 --- a/YACReaderLibrary/yacreader_local_server.h +++ b/YACReaderLibrary/yacreader_local_server.h @@ -13,7 +13,7 @@ public: explicit YACReaderLocalServer(QObject *parent = 0); signals: - + void comicUpdated(const ComicDB & comic); public slots: bool isListening(); void sendResponse(); diff --git a/common/comic_db.cpp b/common/comic_db.cpp index 8a669a4f..4c985006 100644 --- a/common/comic_db.cpp +++ b/common/comic_db.cpp @@ -111,7 +111,7 @@ QString ComicDB::toTXT() //----------------------------------------------------------------------------- ComicInfo::ComicInfo() :existOnDb(false), - rating(-1), + rating(0), hasBeenOpened(false), currentPage(1), bookmark1(-1), diff --git a/images/rating0.png b/images/rating0.png new file mode 100644 index 00000000..ba09981f Binary files /dev/null and b/images/rating0.png differ diff --git a/images/rating1.png b/images/rating1.png new file mode 100644 index 00000000..5210caf7 Binary files /dev/null and b/images/rating1.png differ diff --git a/images/rating2.png b/images/rating2.png new file mode 100644 index 00000000..b7f59492 Binary files /dev/null and b/images/rating2.png differ diff --git a/images/rating3.png b/images/rating3.png new file mode 100644 index 00000000..d2c312d5 Binary files /dev/null and b/images/rating3.png differ diff --git a/images/rating4.png b/images/rating4.png new file mode 100644 index 00000000..2ce6f202 Binary files /dev/null and b/images/rating4.png differ diff --git a/images/rating5.png b/images/rating5.png new file mode 100644 index 00000000..23eee225 Binary files /dev/null and b/images/rating5.png differ