}
qDebug() << listMIndex.count() << " items selected.";
- // TODO: write a method to ExternalExecutable to return an Executable object of a selected row.
- // TODO2: rewrite ExecutableComboBox and reimplement getSelected?
- /*EmuFrontObject *obExe = execSelectBox->getSelected();
- if (!obExe) {
- throw EmuFrontException(tr("Failed fetching selected emulator!"));
- }
- exe = dynamic_cast<Executable*>(obExe);
+ QAbstractItemModel *absModel = execSelectBox->model();
+ ExternalExecutableModel *extModel = qobject_cast<ExternalExecutableModel*>(absModel);
+ exe = extModel->getExecutable(execSelectBox->currentIndex());
if (!exe) {
- throw EmuFrontException(tr("Failed creating Emulator object!"));
- }*/
-
- qDebug() << "File types; " << exe->getSetup()->getSupportedFileTypeExtensions().count();
+ errorMessage->showMessage(tr("Failed creating an executable object from selection."));
+ return;
+ }
bool mame = exe->getSetup()->getSupportedFileTypeExtensions().isEmpty();
EmuFrontQueryModel::EmuFrontQueryModel(QObject *parent) :
QSqlQueryModel(parent)
-{
-}
+{ }
-EmuFrontObject* EmuFrontQueryModel::getObject(int row) const
+EmuFrontObject* EmuFrontQueryModel::getObject(int row)
{
- // TODO
- return 0;
+ if (row < 0 || row > rowCount() - 1)
+ return 0;
+ QSqlRecord rec = record(row);
+ return recordToDataObject(&rec);
}
-/*Platform* EmuFrontQueryModel::getPlatform(int id) const
-{
-}*/
-
EmuFrontObject* EmuFrontQueryModel::getDataObject(int id)
{
filterById(id);
EmuFrontQueryModel(QObject *parent = 0);
EmuFrontObject* getDataObject(int id);
EmuFrontObject* getDataObject(const QModelIndex &index);
- EmuFrontObject* getObject(int row) const;
+ EmuFrontObject* getObject(int row);
static int getCurrentTimeStamp();
protected:
{
return QString("executable.id=%1").arg(id);
}
+
+Executable* ExternalExecutableModel::getExecutable(int row)
+{
+ if (row < 0) return 0;
+ EmuFrontObject *efo = getObject(row);
+ return dynamic_cast<Executable*>(efo);
+}
#include "emufrontquerymodel.h"
+class Executable;
+
class ExternalExecutableModel : public EmuFrontQueryModel
{
Q_OBJECT
virtual bool insertRows(int row, int count, const QModelIndex &parent);
virtual bool removeRows(int row, int count, const QModelIndex &parent);
void filterBySetup(int setupId);
+ Executable* getExecutable(int row);
enum {
Executable_Id = 0,
Executable_Name,