From 65ed153aade435d0093d8722d78d8f37bfc5da0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 21 Jul 2013 11:14:37 +0200 Subject: [PATCH] rating images added --- YACReaderLibrary/db/data_base_management.cpp | 4 +-- YACReaderLibrary/db/tablemodel.cpp | 25 ++++++++++++++++++- YACReaderLibrary/images.qrc | 6 +++++ YACReaderLibrary/library_window.cpp | 2 ++ YACReaderLibrary/yacreader_local_server.cpp | 1 + YACReaderLibrary/yacreader_local_server.h | 2 +- common/comic_db.cpp | 2 +- images/rating0.png | Bin 0 -> 402 bytes images/rating1.png | Bin 0 -> 479 bytes images/rating2.png | Bin 0 -> 514 bytes images/rating3.png | Bin 0 -> 514 bytes images/rating4.png | Bin 0 -> 498 bytes images/rating5.png | Bin 0 -> 404 bytes 13 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 images/rating0.png create mode 100644 images/rating1.png create mode 100644 images/rating2.png create mode 100644 images/rating3.png create mode 100644 images/rating4.png create mode 100644 images/rating5.png 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 0000000000000000000000000000000000000000..ba09981f045dd0ef2303b9885219f934ee9159a1 GIT binary patch literal 402 zcmV;D0d4+?P)##%NSrV*bjNl2Y2PfvgWIfs=6 z7)xOlec#LO%js13V)}B5a#{h=BKM-aH&%jGvc`1ZOd{rV^k_0xf>pAn1edQsk0xU! zShCS~rE9Lq)1%2)36^ZM6!sSNq{`^DlGDtQ+gJ-<^B!9`fOSUYFS*2@R14 ze6A#5>(=tN3vfitDX;<0+PWRQ366!BBv@Hd6r#SIP6Ywy&?!P}Ijs@iBKD%dJqz%8 z=SFxIVh_*CS!23Ak;NF(F-J4U+S`B_W0GOztSO_3w~;xTy;vJ85&EWd&5&8@DhVwU@z|mN}X^7HZQji!sTta@5@`ldllc21J(cTr6|6n&eqn#0ECtS+ z>wb=|32=W6X?zsdaxQekxi)QVbY{?@s#~6W?IZ|cC z{E(xu?r*f^fW3Cgiu3Ydo;0599~Kr*mbJba)-2kFuaavmp8v4{l@&909+~wkzyJUU V-#7bx@m>G`002ovPDHLkV1l$X&&B`% literal 0 HcmV?d00001 diff --git a/images/rating2.png b/images/rating2.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f594923369cb47215b2d333b24e7b1d1a93cc8 GIT binary patch literal 514 zcmV+d0{#7oP)*l1 zjlc#C6O>Wt1kepKLPp?~r)C5;pubN)r$jMut?uC}#gdgs*q`u^@tJH{7PDGemaq6Z z!L7Nsv-mVkR}*M4S$*H{vYMtzo|UaaLzoUfAMh^*&Ww41*YJ1vCj@E(M2^NnF+nU8 zl{Cu<4PgfSuOwir)7YT`91(Nc5jh$Q#dy|Mr?IOX3o*&EvZ5$NeR(<+ik=TTRi4%e zZxMS|u190xMm-BRIv;eGXCXF8R?ZpI9SI}Gn2tG`MQ0rqBgUAdSvhCQXu@q|j%H8R z21|s#DyQb2S>|Z=WNolSXc_D+W@Z(zO-M}39L=J$Fy{_gj7gf6V^&_6d_nPcM;N*0 zVwt1O-DoV#H_yTi+nr)Oi#bWMZujV#0QYLhVMReK_d>UvYa7DG_7R1}Q{J=WfMF4L zENw$biIpi|hTrfv1`a$m#}HAJT{#MiJE_VF5hVrIZAV)!*y~AIamO9ZFD)jEUGl&} zA^(cCei_yr+J>K!>-?PmAaXPoU(W|t$PSwt>qmeA0H99aH%kv+ApigX07*qoM6N<$ Ef_(AT9RL6T literal 0 HcmV?d00001 diff --git a/images/rating3.png b/images/rating3.png new file mode 100644 index 0000000000000000000000000000000000000000..d2c312d568605030f767be1d64c03a659af109d0 GIT binary patch literal 514 zcmV+d0{#7oP)*l1 zjlc#C6O>WN1kepKLPp?~r)C5;puf@2DNzhu(~EQuv1BC@_9y&fd?uNu$t;%V`8$3N zaBFVuBt8to#dun*thQ}8Syfd%g_SHqqnHLiU+`}Rj*NMOm+(*c5k=J=!bHh}FkUPO z6r42+jbb|dFC<{CJJ?kM>=AR=5GG0%gmJ93u4RYLEW`w5C0Uk<`to!N+~~N|UGlVg zc#YVTay?2Gigqj%J??a>V<9#eE9H!7_KFc>Ov4<_qGs(0BgUBEtdujQH~!W$N3$1e zg(X5?lv8udEORt_u~t|jv<&tdbFT2%03@bnj%HD_Ff(^qj0w(4G2hNiKI4Y%Mlo`2 zj%AKEE2Cs#Ryr1nw;RGZ7IT8JuJ`DYfce#s1BOLd?uGMmuAS;D8$)y~ZVZkkhZP06 zVQJgOe_4t0W%vXCU|`2nv-c@P*>9s`alchrJ_0|=y6$Mp1$#Lu3+|uvp>6mnxy-!r0b!zK@m0TL`Rv0XSib@c06?SPH#c*@<^TWy07*qoM6N<$ Ef`}mBBLDyZ literal 0 HcmV?d00001 diff --git a/images/rating4.png b/images/rating4.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce6f202ba947d857308c255cf9eef108adffee2 GIT binary patch literal 498 zcmVke6UT{~86g~kF}e0;&b88|cM4PL@O;WsR#@pzcvSrFNa1+g0^ zG#1d~doBTcZt;WBjnl>jL;3rbM+$eph%*x>=4=oxVvjh%++{4lSZ}OlqhT8Gxsim_iSqOW7?5*V zS%9$=R#8=z?7o~%gD<8przoct5FK(a%6nraSS4#r|IH*~PEU^}V