const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
const QString DatabaseManager::DATABASE = QString("QSQLITE");
+const QString DatabaseManager::DB_TABLE_NAME_MEDIATYPE = QString("mediatype");
+const QString DatabaseManager::DB_TABLE_NAME_PLATFORM = QString("platform");
+const QString DatabaseManager::DB_TABLE_NAME_FILEPATH = QString("filepath");
DatabaseManager::DatabaseManager(QObject *parent)
: QObject(parent)
QSqlTableModel* sqlTableModel;
//virtual QSqlTableModel* getDataModel() = 0;
int countRows(QString tableName, QString columnName, int id) const;
+ static const QString DB_TABLE_NAME_FILEPATH;
+ static const QString DB_TABLE_NAME_MEDIATYPE;
+ static const QString DB_TABLE_NAME_PLATFORM;
private:
static const QString DB_FILENAME;
// You should have received a copy of the GNU General Public License
// along with Foobar. If not, see <http://www.gnu.org/licenses/>.
-#include <QSqlTableModel>
+#include <QSqlRelationalTableModel>
#include "dbfilepath.h"
#include "../dataobjects/filepathobject.h"
DbFilePath::DbFilePath(QObject *parent) : DatabaseManager(parent)
{
+ sqlTableModel = getData();
}
+
QSqlTableModel* DbFilePath::getDataModel()
{
return sqlTableModel;
QSqlTableModel* DbFilePath::getData()
{
- QSqlTableModel *model = new QSqlTableModel(this);
+ QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this);
+ model->setTable(DB_TABLE_NAME_FILEPATH);
+ model->setRelation(FilePath_PlatformId,
+ QSqlRelation(DB_TABLE_NAME_PLATFORM, "id", "name"));
+ model->setRelation(FilePath_MediaTypeId,
+ QSqlRelation(DB_TABLE_NAME_MEDIATYPE, "id", "name"));
+ model->setSort(FilePath_Name, Qt::AscendingOrder);
+ model->setHeaderData(FilePath_MediaTypeId, Qt::Horizontal, tr("Media type"));
+ model->setHeaderData(FilePath_PlatformId, Qt::Horizontal, tr("Platform"));
+ model->select();
return model;
}
FilePath_PlatformId = 4,
FilePath_MediaTypeId = 5,
FilePath_LastScanned = 6 };
- static const QString DB_TABLE_NAME_FILEPATH;
};
#endif // DBFILEPATH_H
#include "dbmediatype.h"
#include "../dataobjects/mediatype.h"
-const QString DbMediaType::DB_TABLE_NAME_MEDIATYPE = QString("mediatype");
-
DbMediaType::DbMediaType(QObject *parent) : DatabaseManager(parent)
{
class DbMediaType : public DatabaseManager
{
public:
- DbMediaType(QObject*);
+ DbMediaType(QObject *);
virtual QSqlTableModel* getDataModel();
virtual EmuFrontObject* getDataObjectFromModel(QModelIndex*);
virtual bool updateDataObjectToModel(const EmuFrontObject*);
virtual bool insertDataObjectToModel(const EmuFrontObject*);
virtual bool deleteDataObjectFromModel(QModelIndex*);
virtual int countDataObjectRefs(int) const;
-
-private:
enum {
MediaType_Id = 0,
MediaType_Name = 1,
MediaType_Filename = 2 };
- static const QString DB_TABLE_NAME_MEDIATYPE;
- virtual QSqlTableModel* getData();
+
+private:
+ virtual QSqlTableModel* getData();
};
#include <QDebug>
#include "dbplatform.h"
-const QString DbPlatform::DB_TABLE_NAME_PLATFORM = QString("platform");
DbPlatform::DbPlatform(QObject *parent) : DatabaseManager(parent)
{
Platform_Id = 0,
Platform_Name = 1,
Platform_Filename = 2 };
- static const QString DB_TABLE_NAME_PLATFORM;
virtual QSqlTableModel* getData();
};
connectSignals();
}
+MediaImagePathDialog::~MediaImagePathDialog()
+{
+ delete mediaTypeComBox;
+ delete platformModel;
+}
+
void MediaImagePathDialog::connectSignals()
{
}
void MediaImagePathDialog::populateMediaTypeComBox()
{
+ dbMediaType = new DbMediaType(this);
+ mediaTypeComBox->setModel(dbMediaType->getDataModel());
+ mediaTypeComBox->setModelColumn(DbMediaType::MediaType_Name);
}
void MediaImagePathDialog::populatePlatformComBox()
class QComboBox;
class QLabel;
class QPushButton;
+class QSqlTableModel;
+class DbMediaType;
+class DbPlatform;
class MediaImagePathDialog : public DataObjectEditDialog
{
public:
MediaImagePathDialog(QWidget *parent, EmuFrontObject*);
+ ~MediaImagePathDialog();
virtual void setDataObject(EmuFrontObject *);
protected slots:
QComboBox *platformComBox;
QLabel *filePathLabel;
QPushButton *filePathButton;
+ QSqlTableModel *mediaTypeModel;
+ QSqlTableModel *platformModel;
+ DbMediaType *dbMediaType;
+ DbPlatform *dbPlatform;
void initWidgets();
void layout();