diff options
author | Arno <am@disconnect.de> | 2010-06-12 11:13:11 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-06-12 11:13:11 +0200 |
commit | f84598155ee8a6b20f163b459722e27eb24658ab (patch) | |
tree | b5bf419c1451e7a21102572a93a60fe4b5f93922 | |
parent | 3240cad2718ead169a07219e2a65ae84328b4485 (diff) | |
download | SheMov-f84598155ee8a6b20f163b459722e27eb24658ab.tar.gz SheMov-f84598155ee8a6b20f163b459722e27eb24658ab.tar.bz2 SheMov-f84598155ee8a6b20f163b459722e27eb24658ab.zip |
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.
-rw-r--r-- | smubermodel.cpp | 40 | ||||
-rw-r--r-- | smubermodel.h | 7 |
2 files changed, 47 insertions, 0 deletions
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 <QSqlQuery> +#include <QList> +#include <QVariant> + #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<QVariant> 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<QVariant> 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 <QObject> +#include <QSqlDatabase> 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; |