From f84598155ee8a6b20f163b459722e27eb24658ab Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 12 Jun 2010 11:13:11 +0200 Subject: Implemented SmUberModel::populateSeriesModel Implemented SmUberModel::populateSeriesModel(). Created a new QSqlDatabase with hardcoded access data for refactoring. This will change once the new schema is working. --- smubermodel.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ smubermodel.h | 7 +++++++ 2 files changed, 47 insertions(+) diff --git a/smubermodel.cpp b/smubermodel.cpp index 1134e18..784904a 100644 --- a/smubermodel.cpp +++ b/smubermodel.cpp @@ -5,10 +5,50 @@ 2 of the License, or (at your option) any later version. */ +#include +#include +#include + #include "smubermodel.h" #include "smtreemodel.h" +#include "smtreeitem.h" #include "actormodel.h" SmUberModel::SmUberModel(QObject *parent) : QObject(parent), mSeriesModel(0), mFileModel(0), mActorModel(0){ + //db setup + mDb = QSqlDatabase::addDatabase("QPSQL", "treedb"); + mDb.setHostName("localhost"); + mDb.setUserName("shemov"); + mDb.setPassword("shemov"); + mDb.setDatabaseName("shemov2"); + mSeriesPartsQuery = new QSqlQuery(mDb); + mSeriesPartsQuery->prepare("SELECT iseriespart_id, iseriespart, iseries_id, iquality FROM seriesparts WHERE iseries_id = :id ORDER BY iseriespart"); + + //series model + QStringList seriesHeaders = QStringList() << tr("Name") << tr("Quality") << tr("Id"); + mSeriesModel = new SmTreeModel(seriesHeaders, this); +} + +SmUberModel::~SmUberModel(){ + delete mSeriesPartsQuery; +} +void SmUberModel::populateSeriesmodel(){ + QSqlQuery seriesQuery("SELECT iseries_id, tseries_name FROM series ORDER BY tseries_name", mDb); + SmTreeItem *root = new SmTreeItem(3); + while(seriesQuery.next()){ + QList seriesData; + seriesData << seriesQuery.value(1) << QVariant() << seriesQuery.value(0); + SmTreeItem *seriesItem = new SmTreeItem(seriesData); + root->appendChild(seriesItem); + mSeriesPartsQuery->bindValue(":id", seriesQuery.value(0)); + mSeriesPartsQuery->exec(); + while(mSeriesPartsQuery->next()){ + QList partsData; + QString title = QString("%1 %2").arg(seriesData.at(0).toString()).arg(mSeriesPartsQuery->value(1).toInt()); + partsData << title << mSeriesPartsQuery->value(2) << mSeriesPartsQuery->value(0); + seriesItem->appendChild(new SmTreeItem(partsData, seriesItem)); + } + } + mSeriesModel->setRoot(root); } diff --git a/smubermodel.h b/smubermodel.h index edfa008..f860d56 100644 --- a/smubermodel.h +++ b/smubermodel.h @@ -9,9 +9,11 @@ #define SMUBERMODEL_H #include +#include class SmTreeModel; class ActorModel; +class QSqlQuery; class SmUberModel : public QObject { Q_OBJECT @@ -21,6 +23,11 @@ class SmUberModel : public QObject { private: void populateSeriesmodel(); + //database + QSqlDatabase mDb; + QSqlQuery *mSeriesPartsQuery; + + //models SmTreeModel *mSeriesModel; SmTreeModel *mFileModel; ActorModel *mActorModel; -- cgit v1.2.3-70-g09d2