From 5ec03916fb7e44e442fc9f181c60920b453e31f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Fri, 21 Nov 2014 22:33:12 +0100 Subject: [PATCH] fixed adding label and sorting on setup --- YACReaderLibrary/db/reading_list_model.cpp | 15 ++++++++------- YACReaderLibrary/db/reading_list_model.h | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/YACReaderLibrary/db/reading_list_model.cpp b/YACReaderLibrary/db/reading_list_model.cpp index 84a3d535..fa8dc104 100644 --- a/YACReaderLibrary/db/reading_list_model.cpp +++ b/YACReaderLibrary/db/reading_list_model.cpp @@ -195,7 +195,7 @@ void ReadingListModel::setupReadingListsData(QString path) //separator-------------------------------------------- //setup labels - labels = setupLabels(db); + setupLabels(db); //separator-------------------------------------------- @@ -389,14 +389,12 @@ QList ReadingListModel::setupSpecialLists(QSqlDatabase & db) return list; } -QList ReadingListModel::setupLabels(QSqlDatabase & db) +void 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") << record.value("ordering")); + addLabelIntoList(new LabelItem(QList() << record.value("name") << record.value("color") << record.value("id") << record.value("ordering"))); } //TEST @@ -414,7 +412,6 @@ QList ReadingListModel::setupLabels(QSqlDatabase & db) // 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) @@ -450,16 +447,20 @@ int ReadingListModel::addLabelIntoList(LabelItem *item) { if(labels.at(i)->colorid() == item->colorid()) //sort by name { - while( i < labels.count() && naturalSortLessThanCI(labels.at(i)->name(),item->name())) + while( i < labels.count() && labels.at(i)->colorid() == item->colorid() && naturalSortLessThanCI(labels.at(i)->name(),item->name())) i++; } } if(i >= labels.count()) + { + QLOG_DEBUG() << "insertando label al final " << item->name(); labels << item; + } else { + QLOG_DEBUG() << "insertando label en " << i << "-" << item->name(); labels.insert(i,item); } diff --git a/YACReaderLibrary/db/reading_list_model.h b/YACReaderLibrary/db/reading_list_model.h index fc3f3b8a..efe01296 100644 --- a/YACReaderLibrary/db/reading_list_model.h +++ b/YACReaderLibrary/db/reading_list_model.h @@ -69,7 +69,7 @@ private: void cleanAll(); void setupReadingListsData(QSqlQuery &sqlquery, ReadingListItem *parent); QList setupSpecialLists(QSqlDatabase &db); - QList setupLabels(QSqlDatabase &db); + void setupLabels(QSqlDatabase &db); void setupReadingLists(QSqlDatabase &db); int addLabelIntoList(LabelItem *item);