/* 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 "smmodelsingleton.h" #include "seriestreemodel.h" #include "filestreemodel.h" SmModelSingleton *SmModelSingleton::mInstance = 0; SmModelSingleton::~SmModelSingleton(){ foreach(QAbstractItemModel *model, mModels.values()){ delete model; } QSqlDatabase::removeDatabase("treedb"); } SmModelSingleton *SmModelSingleton::instance(){ if(!mInstance){ mInstance = new SmModelSingleton; if(!QSqlDatabase::contains("treedb")){ QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "treedb"); db.setHostName("hadante"); db.setUserName("shemov"); db.setPassword("shemov"); db.setDatabaseName("shemov2"); db.open(); } } return mInstance; } QAbstractItemModel *SmModelSingleton::model(const QString &which){ if(which == "SeriesModel"){ if(!mModels.contains(which)){ QStringList headers = QStringList() << tr("Series") << tr("Series ID") << tr("Series part ID") << tr("Part") << tr("Type"); SeriesTreeModel *model = new SeriesTreeModel(headers); mModels.insert(which, model); } }else if(which == "FilesModel"){ if(!mModels.contains(which)){ QStringList headers = QStringList() << tr("Name") << tr("P") << tr("Size") << tr("Q") << tr("DvdNo") << tr("Full Path") << tr("Size") << tr("Type") << tr("Md5 sum") << tr("Series part ID") << tr("File ID"); FilesTreeModel *model = new FilesTreeModel(headers); mModels.insert(which, model); } } return mModels.contains(which) ? mModels.value(which ) : 0; }