/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 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"); mDb.open(); mSeriesPartsQuery = new QSqlQuery(mDb); mSeriesPartsQuery->prepare("SELECT iseriesparts_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); populateSeriesmodel(); } 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); 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(3) << mSeriesPartsQuery->value(0); seriesItem->appendChild(new SmTreeItem(partsData, seriesItem)); } } mSeriesModel->setRoot(root); }