From a66b360456b4297b7026440cfa70319e70d99c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Mon, 10 Nov 2014 23:33:11 +0100 Subject: [PATCH] default/special lists and labels are loaded from db --- YACReaderLibrary/db/data_base_management.cpp | 2 +- YACReaderLibrary/db/reading_list_item.cpp | 6 +- YACReaderLibrary/db/reading_list_model.cpp | 108 +++++++++++++----- YACReaderLibrary/db/reading_list_model.h | 4 + YACReaderLibrary/images_osx.qrc | 5 +- YACReaderLibrary/images_win.qrc | 5 +- images/lists/{reading.png => default_0.png} | Bin .../{reading_osx.png => default_0_osx.png} | Bin images/lists/{favorites.png => default_1.png} | Bin .../{favorites_osx.png => default_1_osx.png} | Bin 10 files changed, 92 insertions(+), 38 deletions(-) rename images/lists/{reading.png => default_0.png} (100%) rename images/lists/{reading_osx.png => default_0_osx.png} (100%) rename images/lists/{favorites.png => default_1.png} (100%) rename images/lists/{favorites_osx.png => default_1_osx.png} (100%) diff --git a/YACReaderLibrary/db/data_base_management.cpp b/YACReaderLibrary/db/data_base_management.cpp index a87eb87a..6b0e8a4b 100644 --- a/YACReaderLibrary/db/data_base_management.cpp +++ b/YACReaderLibrary/db/data_base_management.cpp @@ -228,7 +228,7 @@ bool DataBaseManagement::createV8Tables(QSqlDatabase &database) //8.0> tables //LABEL QSqlQuery queryLabel(database); - queryLabel.prepare("CREATE TABLE label (id INTEGER PRIMARY KEY, name TEXT NOT NULL, color TEXT NOT NULL)"); + queryLabel.prepare("CREATE TABLE label (id INTEGER PRIMARY KEY, name TEXT NOT NULL, color TEXT NOT NULL, ordering INTEGER NOT NULL)"); //order depends on the color success = success && queryLabel.exec(); //COMIC LABEL diff --git a/YACReaderLibrary/db/reading_list_item.cpp b/YACReaderLibrary/db/reading_list_item.cpp index 687708ea..c86143d7 100644 --- a/YACReaderLibrary/db/reading_list_item.cpp +++ b/YACReaderLibrary/db/reading_list_item.cpp @@ -26,10 +26,10 @@ SpecialListItem::SpecialListItem(const QList &data) QIcon SpecialListItem::getIcon() const { - if(itemData.count()>0) + if(itemData.count()>1) { - QString name = itemData.at(0).toString(); - return QIcon(QString(":/images/lists/%1.png").arg(name).toLower()); + QString id = itemData.at(1).toString(); + return QIcon(QString(":/images/lists/default_%1.png").arg(id)); } } diff --git a/YACReaderLibrary/db/reading_list_model.cpp b/YACReaderLibrary/db/reading_list_model.cpp index c62838f1..94069fd1 100644 --- a/YACReaderLibrary/db/reading_list_model.cpp +++ b/YACReaderLibrary/db/reading_list_model.cpp @@ -2,6 +2,8 @@ #include "reading_list_item.h" +#include "data_base_management.h" + #include "QsLog.h" ReadingListModel::ReadingListModel(QObject *parent) : @@ -158,6 +160,34 @@ void ReadingListModel::setupModelData(QString path) { beginResetModel(); + cleanAll(); + + _databasePath = path; + QSqlDatabase db = DataBaseManagement::loadDatabase(path); + + //setup special lists + specialLists = setupSpecialLists(db); + + //separator-------------------------------------------- + + //setup labels + labels = setupLabels(db); + + //separator-------------------------------------------- + + //setup reading list + setupReadingLists(db); + + endResetModel(); +} + +void ReadingListModel::deleteItem(const QModelIndex &mi) +{ + +} + +void ReadingListModel::cleanAll() +{ if(rootItem != 0) { delete rootItem; @@ -172,29 +202,59 @@ void ReadingListModel::setupModelData(QString path) } rootItem = 0; +} - //setup special lists - specialLists << new SpecialListItem(QList() /*<< 0*/ << "Favorites"); - specialLists << new SpecialListItem(QList() /*<< 1*/ << "Reading"); +void ReadingListModel::setupModelData(QSqlQuery &sqlquery, ReadingListItem *parent) +{ - //separator +} - //setup labels - labels << new LabelItem(QList() /*<< 0*/ << "Oh Oh" << "red"); - labels << new LabelItem(QList() /*<< 1*/ << "lalala" << "orange"); - labels << new LabelItem(QList() /*<< 2*/ << "we are not sorry" << "yellow"); - labels << new LabelItem(QList() /*<< 3*/ << "there we go" << "green"); - labels << new LabelItem(QList() /*<< 4*/ << "oklabunga" << "cyan"); - labels << new LabelItem(QList() /*<< 5*/ << "hailer mailer" << "blue"); - labels << new LabelItem(QList() /*<< 6*/ << "lol" << "violet"); - labels << new LabelItem(QList() /*<< 7*/ << "problems" << "purple"); - labels << new LabelItem(QList() /*<< 8*/ << "me gussssta" << "pink"); - labels << new LabelItem(QList() /*<< 9*/ << ":D" << "white"); - labels << new LabelItem(QList() /*<< 10*/ << "ainsss" << "light"); - labels << new LabelItem(QList() /*<< 11*/ << "put a smile on my face" << "dark"); +QList ReadingListModel::setupSpecialLists(QSqlDatabase & db) +{ + QList list; - //separator + QSqlQuery selectQuery("SELECT * FROM default_reading_list ORDER BY id",db); + while(selectQuery.next()) { + QSqlRecord record = selectQuery.record(); + list << new SpecialListItem(QList() << record.value("name") << record.value("id")); + } + //Reading after Favorites, Why? Because I want :P + list.insert(1,new SpecialListItem(QList() << "Reading" << 0)); + + return list; +} + +QList ReadingListModel::setupLabels(QSqlDatabase & db) +{ + QList list; + + QSqlQuery selectQuery("SELECT * FROM label ORDER BY ordering,name",db); //TODO add some kind of + while(selectQuery.next()) { + QSqlRecord record = selectQuery.record(); + list << new LabelItem(QList() << record.value("name") << record.value("color") << record.value("id")); + } + + //TEST + +// INSERT INTO label (name, color, ordering) VALUES ("Oh Oh", "red", 1); +// INSERT INTO label (name, color, ordering) VALUES ("lalala", "orange", 2); +// INSERT INTO label (name, color, ordering) VALUES ("we are not sorry", "yellow", 3); +// INSERT INTO label (name, color, ordering) VALUES ("there we go", "green", 4); +// INSERT INTO label (name, color, ordering) VALUES ("oklabunga", "cyan", 5); +// INSERT INTO label (name, color, ordering) VALUES ("hailer mailer", "blue", 6); +// INSERT INTO label (name, color, ordering) VALUES ("lol", "violet", 7); +// INSERT INTO label (name, color, ordering) VALUES ("problems", "purple", 8); +// INSERT INTO label (name, color, ordering) VALUES ("me gussssta", "pink", 9); +// INSERT INTO label (name, color, ordering) VALUES (":D", "white", 10); +// INSERT INTO label (name, color, ordering) VALUES ("ainsss", "light", 11); +// INSERT INTO label (name, color, ordering) VALUES ("put a smile on my face", "dark", 12); + + return list; +} + +void ReadingListModel::setupReadingLists(QSqlDatabase & db) +{ //setup root item rootItem = new ReadingListItem(QList() /*<< 0*/ << "ROOT" << "atr"); @@ -204,18 +264,6 @@ void ReadingListModel::setupModelData(QString path) rootItem->appendChild(new ReadingListItem(QList() /*<< 0*/ << "X timeline" << "atr")); node1->appendChild(new ReadingListItem(QList() /*<< 0*/ << "sublist" << "atr",node1)); - - endResetModel(); -} - -void ReadingListModel::deleteItem(const QModelIndex &mi) -{ - -} - -void ReadingListModel::setupModelData(QSqlQuery &sqlquery, ReadingListItem *parent) -{ - } diff --git a/YACReaderLibrary/db/reading_list_model.h b/YACReaderLibrary/db/reading_list_model.h index b72c1c29..3dbfcd8a 100644 --- a/YACReaderLibrary/db/reading_list_model.h +++ b/YACReaderLibrary/db/reading_list_model.h @@ -38,7 +38,11 @@ public slots: void deleteItem(const QModelIndex & mi); private: + void cleanAll(); void setupModelData(QSqlQuery &sqlquery, ReadingListItem *parent); + QList setupSpecialLists(QSqlDatabase &db); + QList setupLabels(QSqlDatabase &db); + void setupReadingLists(QSqlDatabase &db); //Special lists QList specialLists; diff --git a/YACReaderLibrary/images_osx.qrc b/YACReaderLibrary/images_osx.qrc index 40ecc91f..65aed99b 100644 --- a/YACReaderLibrary/images_osx.qrc +++ b/YACReaderLibrary/images_osx.qrc @@ -30,7 +30,8 @@ ../images/clearSearch.png - ../images/lists/favorites_osx.png + ../images/lists/default_0_osx.png + ../images/lists/default_1_osx.png ../images/lists/label_blue_osx.png ../images/lists/label_cyan_osx.png ../images/lists/label_dark_osx.png @@ -44,7 +45,7 @@ ../images/lists/label_white_osx.png ../images/lists/label_yellow_osx.png ../images/lists/list_osx.png - ../images/lists/reading_osx.png + diff --git a/YACReaderLibrary/images_win.qrc b/YACReaderLibrary/images_win.qrc index c8eae6a5..f5d4e3a0 100644 --- a/YACReaderLibrary/images_win.qrc +++ b/YACReaderLibrary/images_win.qrc @@ -26,7 +26,8 @@ ../images/clearSearchNew.png ../images/addLabelIcon.png - ../images/lists/favorites.png + ../images/lists/default_0.png + ../images/lists/default_1.png ../images/lists/label_blue.png ../images/lists/label_cyan.png ../images/lists/label_dark.png @@ -40,6 +41,6 @@ ../images/lists/label_white.png ../images/lists/label_yellow.png ../images/lists/list.png - ../images/lists/reading.png + diff --git a/images/lists/reading.png b/images/lists/default_0.png similarity index 100% rename from images/lists/reading.png rename to images/lists/default_0.png diff --git a/images/lists/reading_osx.png b/images/lists/default_0_osx.png similarity index 100% rename from images/lists/reading_osx.png rename to images/lists/default_0_osx.png diff --git a/images/lists/favorites.png b/images/lists/default_1.png similarity index 100% rename from images/lists/favorites.png rename to images/lists/default_1.png diff --git a/images/lists/favorites_osx.png b/images/lists/default_1_osx.png similarity index 100% rename from images/lists/favorites_osx.png rename to images/lists/default_1_osx.png