Working on media image search.
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 2 Oct 2010 21:17:37 +0000 (00:17 +0300)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 2 Oct 2010 21:17:37 +0000 (00:17 +0300)
src/db/dbmediaimagecontainer.cpp
src/db/dbmediaimagecontainer.h
src/emulauncher.cpp
src/emulauncher.h

index a5ed727..dc6aab6 100644 (file)
@@ -124,7 +124,23 @@ int DbMediaImageContainer::countDataObjectRefs(int id) const
 
 QString DbMediaImageContainer::constructSelect(QString whereClause) const
 {
-    return DbFile::constructSelect(whereClause);
+    // TODO, for a usual search we need a "light" version of this select
+    // and MediaImageContainer (only id, name)
+    /*
+        SELECT file.id, file.name, file.checksum, file.size,
+            filepath.id, filepath.name,
+            setup.id,
+            platform.id, platform.name,
+            mediatype.id, mediatype.name
+        FROM mediaimagecontainer
+        INNER JOIN file ON mediaimagecontainer.fileid = file.id
+        INNER JOIN filepath ON mediaimagecontainer.filepathid = filepath.id
+        INNER JOIN setup ON filepath.setupid = setup.id
+        INNER JOIN platform ON setup.platformid = platform.id
+        INNER JOIN mediatype ON setup.mediatypeid = mediatype.id
+        */
+    return "";
+    //return DbFile::constructSelect(whereClause);
 }
 
 QString DbMediaImageContainer::constructFilterById(int id) const
@@ -132,11 +148,6 @@ QString DbMediaImageContainer::constructFilterById(int id) const
     return DbFile::constructFilterById(id);
 }
 
-QList<MediaImageContainer*> DbMediaImageContainer::getMediaImageContainers(int platformId, int mediaTypeId) const
-{
-
-}
-
 QString DbMediaImageContainer::constructSelectById(int id) const
 {
     return DbFile::constructSelectById(id);
@@ -199,3 +210,11 @@ void DbMediaImageContainer::linkMediaImagesWithContainer(int micId, QList<int> m
         }
     }
 }
+
+void DbMediaImageContainer::filter(int mediaTypeId, int platformId) const
+{
+        /*
+        WHERE setup.platformid = :platformid
+        AND setup.mediatypeid = :mediatypeid
+    */
+}
index abdfcea..1812b44 100644 (file)
@@ -36,7 +36,7 @@ public:
     virtual int countDataObjectRefs(int id) const;
     void storeContainers(QList<MediaImageContainer*>, FilePathObject*);
     int getMediaImageContainer(QString checksum) const;
-    QList<MediaImageContainer*> getMediaImageContainers(int platformId, int mediaTypeId) const;
+    void filter(int mediaTypeId, int platformId) const;
 protected:
     virtual QString constructSelect(QString whereClause) const;
     virtual QString constructSelectById(int id) const;
index a0321d7..3123cda 100644 (file)
@@ -22,6 +22,7 @@
 #include "emulauncher.h"
 #include "db/dbmediatype.h"
 #include "db/dbplatform.h"
+#include "db/dbmediaimagecontainer.h"
 #include "widgets/effileobjectcombobox.h"
 
 EmuLauncher::EmuLauncher(QWidget *parent) :
@@ -37,6 +38,7 @@ EmuLauncher::EmuLauncher(QWidget *parent) :
 void EmuLauncher::initWidgets()
 {
     micTable = new QTableView(this);
+    micTable->setSelectionMode(QAbstractItemView::SingleSelection);
     mediaTypeSelectBox = new EFFileObjectComboBox(dbMediaType, this);
     platformSelectBox = new EFFileObjectComboBox(dbPlatform, this);
     selectButton = new QPushButton(tr("&Update"));
@@ -60,4 +62,14 @@ void EmuLauncher::connectSignals()
 void EmuLauncher::updateMediaImageContainers()
 {
     qDebug() << "updateMediaImageContainers slot";
+    int mtid = mediaTypeSelectBox->getSelected()
+        ? mediaTypeSelectBox->getSelected()->getId()
+        : -1;
+    int plfid = platformSelectBox->getSelected()
+        ? platformSelectBox->getSelected()->getId()
+        : -1;
+
+    dbMic->filter(mtid, plfid);
+    micTable->setModel(dbMic->getDataModel());
+    micTable->resizeColumnsToContents();
 }
index efda228..c1acf6f 100644 (file)
@@ -27,6 +27,7 @@ class QComboBox;
 class QPushButton;
 class DbMediaType;
 class DbPlatform;
+class DbMediaImageContainer;
 class EFFileObjectComboBox;
 
 class EmuLauncher : public QWidget
@@ -47,6 +48,7 @@ private:
     QPushButton *selectButton;
     DbPlatform *dbPlatform;
     DbMediaType *dbMediaType;
+    DbMediaImageContainer *dbMic;
     void initWidgets();
     void layout();
     void connectSignals();