Implementing MediaImage and MediaImageContainer (WIP ... will not
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 19 Jun 2010 10:11:00 +0000 (13:11 +0300)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 19 Jun 2010 10:11:00 +0000 (13:11 +0300)
compile yet)

doc/uml-data_objects.dia
src/dataobjects/emufrontfile.cpp
src/dataobjects/emufrontfile.h
src/dataobjects/mediaimage.cpp
src/dataobjects/mediaimage.h
src/dataobjects/mediaimagecontainer.cpp
src/dataobjects/mediaimagecontainer.h
src/utils/fileutil.cpp

index 83e2790..3779526 100644 (file)
Binary files a/doc/uml-data_objects.dia and b/doc/uml-data_objects.dia differ
index afacf7f..f6ee835 100644 (file)
@@ -21,6 +21,8 @@
 
 EmuFrontFile::EmuFrontFile() : EmuFrontObject() { }
 
+EmuFrontFile::EmuFrontFile(int type) : EmuFrontObject(), type(type) { }
+
 EmuFrontFile::EmuFrontFile(int id, QString name, QString checksum, int size, int type)
    : EmuFrontObject(id, name), checkSum(checksum), size(size), type(type) { }
 
index 0deaed2..4b457ff 100644 (file)
@@ -26,6 +26,7 @@ class EmuFrontFile : public EmuFrontObject
 {
 public:
     EmuFrontFile();
+    EmuFrontFile(int type);
     EmuFrontFile(int id, QString name, QString checksum, int size, int type);
     QString getCheckSum() const;
     void setCheckSum(QString);
index 2ac3d3e..87ab431 100644 (file)
 #include "mediaimage.h"
 
 MediaImage::MediaImage()
-    : EmuFrontFileObject()
+    : EmuFrontFile(EmuFrontFile::FileType_MediaImage)
+{ }
+
+MediaImage::MediaImage(int id, QString name, QString checksum, int size)
+    : EmuFrontFile(id, name, checksum, size, EmuFrontFile::FileType_MediaImage)
+{ }
+
+MediaImage::MediaImage(QString name, QString checksum, int size)
+    : EmuFrontFile(-1, name, checksum, size, EmuFrontFile::FileType_MediaImage)
 { }
 
-MediaImage::MediaImage(int id, QString name, EmuFrontFile *file)
-    : EmuFrontFileObject(id, name, file) { }
 
index 5dc504a..6ca418f 100644 (file)
 
 #include "emufrontfileobject.h"
 
-class MediaImage : public EmuFrontFileObject
+class MediaImage : public EmuFrontFile
 {
 public:
     MediaImage();
-    MediaImage(int id, QString name, EmuFrontFile *file);
+    MediaImage(QString name, QString checksum, int size);
+    MediaImage(int id, QString name, QString checksum, int size);
 };
 
 #endif // MEDIAIMAGE_H
index 948b1fc..e4b2db9 100644 (file)
 #include "mediaimagecontainer.h"
 
 MediaImageContainer::MediaImageContainer()
-    : EmuFrontFileObject()
+    : EmuFrontFile(EmuFrontFile::FileType_MediaImageContainer)
 {
     lstMediaImage = QList<MediaImage*>();
 }
 
-MediaImageContainer::MediaImageContainer(int id, QString name, EmuFrontFile *file)
-    : EmuFrontFileObject(id, name, file) { }
+MediaImageContainer::MediaImageContainer(int id, QString name, QString checksum, int size, QList<MediaImage *>images)
+    : EmuFrontFile(id, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer)
+{
+    lstMediaImage = QList<MediaImage*>();
+}
+
+MediaImageContainer::MediaImageContainer(QString name, QString checksum, int size, QList<MediaImage *>images)
+    : EmuFrontFile(-1, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer)
+{
+    lstMediaImage = QList<MediaImage*>();
+}
+
+MediaImageContainer::~MediaImageContainer()
+{
+    qDeleteAll(lstMediaImage);
+}
+
+MediaImageContainer::MediaImageContainer(MediaImageContainer &mic)
+    : EmuFrontFile(mic.id, mic.name, mic.checkSum, mic.size, mic.type)
+{
+    lstMediaImage = QList<MediaImage*>();
+    foreach(MediaImage *mi, mic.lstMediaImage)
+        lstMediaImage.append(new MediaImage(mi));
+}
+
+MediaImageContainer& MediaImageContainer::operator =(MediaImageContainer &mic)
+{
+     if (this == &mic) return *this;
+    id = mic.id;
+    name = mic.name;
+    type = mic.type;
+    checkSum = mic.checkSum;
+    size = mic.size;
+    qDeleteAll(lstMediaImage);
+    foreach(MediaImage *mi, mic)
+        lstMediaImage.append(new MediaImage(mi));
+    return (*this);
+}
 
 void MediaImageContainer::setMediaImages(QList<MediaImage *> list)
 {
-    // TODO destroy old list
-    // connect new list
+    qDeleteAll(lstMediaImage);
+    lstMediaImage = list;
 }
+
+void MediaImageContainer::addMediaImage(MediaImage *mi)
+{   lstMediaImage.append(mi); }
index b9fe6f6..e8513c8 100644 (file)
 #include "emufrontfileobject.h"
 #include "mediaimage.h"
 
-class MediaImageContainer : public EmuFrontFileObject
+class MediaImageContainer : public EmuFrontFile
 {
 public:
     MediaImageContainer();
-    MediaImageContainer(int id, QString name, EmuFrontFile *file);
+    MediaImageContainer(int id, QString name, QString checksum, int size, QList<MediaImage*> images);
+    MediaImageContainer(QString name, QString checksum, int size, QList<MediaImage*> images);
+    ~MediaImageContainer();
+    MediaImageContainer(MediaImageContainer&);
+    MediaImageContainer& operator=(MediaImageContainer&);
     QList<MediaImage*> getMediaImages();
     void setMediaImages(QList<MediaImage*>);
     void addMediaImage(MediaImage*);
index 0fb4f45..93607a5 100644 (file)
@@ -40,9 +40,9 @@ QList<MediaImageContainer*> FileUtil::scanFilePath(const FilePathObject *fp, QSt
         // - time created / updated
         if (files.count() > 0)
         {
-            MediaImageContainer *con = new MediaImageContainer;
+            /* MediaImageContainer *con = new MediaImageContainer(fileInfo.fileName(), // TODO;
 
-            containers.append(con);
+            containers.append(con);*/
         }
 
         /*foreach (EmuFrontFileObject *o, files)
@@ -69,13 +69,8 @@ QList<MediaImage*> FileUtil::listContents(const QString filePath, const FilePath
         if (isSupportedFile(entry.filename, sup->getSupportedFileTypeExtensions()))
         {
             QString checksum = QString("%1").arg(entry.crc32, 0, 16);
-            EmuFrontFile *eff = new EmuFrontFile;
-            eff->setName(entry.filename);
-            eff->setCheckSum(checksum);
-            eff->setSize(entry.uncompressedSize);
-            eff->setType(EmuFrontFile::FileType_MediaImage);
-            MediaImage *effo = new MediaImage;
-            effo->setFile(eff);
+            MediaImage *effo = new MediaImage(entry.filename,
+                checksum, entry.uncompressedSize);
             fileList << effo;
         }
     }