summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--smubermodel.cpp40
-rw-r--r--smubermodel.h7
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;