Expanded media image container implementation
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 19 Jun 2010 13:06:59 +0000 (16:06 +0300)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 19 Jun 2010 13:06:59 +0000 (16:06 +0300)
doc/uml-data_objects.dia
src/dataobjects/mediaimagecontainer.cpp
src/dataobjects/mediaimagecontainer.h
src/utils/fileutil.cpp

index 3779526..7cdbd7d 100644 (file)
Binary files a/doc/uml-data_objects.dia and b/doc/uml-data_objects.dia differ
index ce9c267..bfb6467 100644 (file)
@@ -23,19 +23,21 @@ MediaImageContainer::MediaImageContainer()
     : EmuFrontFile(EmuFrontFile::FileType_MediaImageContainer)
 {
     lstMediaImage = QList<MediaImage*>();
+    setup = 0;
 }
 
-MediaImageContainer::MediaImageContainer(int id, QString name, QString checksum, int size, QList<MediaImage *>images)
-    : EmuFrontFile(id, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer), lstMediaImage(images)
+MediaImageContainer::MediaImageContainer(int id, QString name, QString checksum, int size, QList<MediaImage *>images, Setup *setup)
+    : EmuFrontFile(id, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer), lstMediaImage(images), setup(setup)
 { }
 
-MediaImageContainer::MediaImageContainer(QString name, QString checksum, int size, QList<MediaImage *>images)
-    : EmuFrontFile(-1, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer), lstMediaImage(images)
+MediaImageContainer::MediaImageContainer(QString name, QString checksum, int size, QList<MediaImage *>images, Setup *setup)
+    : EmuFrontFile(-1, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer), lstMediaImage(images), setup(setup)
 { }
 
 MediaImageContainer::~MediaImageContainer()
 {
     qDeleteAll(lstMediaImage);
+    delete setup;
 }
 
 MediaImageContainer::MediaImageContainer(MediaImageContainer &mic)
@@ -44,6 +46,7 @@ MediaImageContainer::MediaImageContainer(MediaImageContainer &mic)
     lstMediaImage = QList<MediaImage*>();
     foreach(MediaImage *mi, mic.lstMediaImage)
         lstMediaImage.append(new MediaImage(*mi));
+    setup = new Setup(*(mic.setup));
 }
 
 MediaImageContainer& MediaImageContainer::operator =(MediaImageContainer &mic)
@@ -57,6 +60,7 @@ MediaImageContainer& MediaImageContainer::operator =(MediaImageContainer &mic)
     qDeleteAll(lstMediaImage);
     foreach(MediaImage *mi, mic.lstMediaImage)
         lstMediaImage.append(new MediaImage(*mi));
+    setup = new Setup(*(mic.setup));
     return (*this);
 }
 
@@ -66,5 +70,14 @@ void MediaImageContainer::setMediaImages(QList<MediaImage *> list)
     lstMediaImage = list;
 }
 
+QList<MediaImage *> MediaImageContainer::getMediaImages() const
+{   return lstMediaImage; }
+
 void MediaImageContainer::addMediaImage(MediaImage *mi)
 {   lstMediaImage.append(mi); }
+
+Setup* MediaImageContainer::getSetup() const
+{ return setup; }
+
+void MediaImageContainer::setSetup(Setup *s)
+{ setup = s; }
index e8513c8..ee94adb 100644 (file)
 
 #include "emufrontfileobject.h"
 #include "mediaimage.h"
+#include "setup.h"
 
 class MediaImageContainer : public EmuFrontFile
 {
 public:
     MediaImageContainer();
-    MediaImageContainer(int id, QString name, QString checksum, int size, QList<MediaImage*> images);
-    MediaImageContainer(QString name, QString checksum, int size, QList<MediaImage*> images);
+    MediaImageContainer(int id, QString name, QString checksum, int size, QList<MediaImage*> images, Setup *setup);
+    MediaImageContainer(QString name, QString checksum, int size, QList<MediaImage*> images, Setup *setup);
     ~MediaImageContainer();
     MediaImageContainer(MediaImageContainer&);
     MediaImageContainer& operator=(MediaImageContainer&);
-    QList<MediaImage*> getMediaImages();
+    QList<MediaImage*> getMediaImages() const;
     void setMediaImages(QList<MediaImage*>);
     void addMediaImage(MediaImage*);
+    void setSetup(Setup *);
+    Setup* getSetup() const;
 private:
     QList<MediaImage*> lstMediaImage;
+    Setup *setup;
 };
 
 #endif // MEDIAIMAGECONTAINER_H
index 93607a5..410d0b8 100644 (file)
@@ -29,26 +29,21 @@ QList<MediaImageContainer*> FileUtil::scanFilePath(const FilePathObject *fp, QSt
         QFileInfo fileInfo = list.at(i);
         qDebug() << QString("%1 %2").arg(fileInfo.size(), 10).arg(fileInfo.absoluteFilePath());
 
-
         //... and collect the contents of each archive
         QList<MediaImage*> files = listContents(fileInfo.absoluteFilePath(), fp);
 
-        // if the archive contained supported file types we will create a media image container object
-        // - platform
-        // - meditype
-        // - media image objects in a list
-        // - time created / updated
         if (files.count() > 0)
         {
-            /* MediaImageContainer *con = new MediaImageContainer(fileInfo.fileName(), // TODO;
-
-            containers.append(con);*/
+            MediaImageContainer *con = new MediaImageContainer
+                (
+                    fileInfo.fileName(),
+                    "" /* TODO */,
+                    fileInfo.size(),
+                    files,
+                    fp->getSetup() // TODO: maybe assign a copy of the setup object, we cannot guarantee that the setup object in file path object will stay alive!!!
+                );
+            containers.append(con);
         }
-
-        /*foreach (EmuFrontFileObject *o, files)
-        {
-            qDebug() << o->getFilename();
-        }*/
     }
     return containers;
 }