FilePathObject replaces SetUp in MediaImageContainer.
: EmuFrontFile(EmuFrontFile::FileType_MediaImageContainer)
{
lstMediaImage = QList<MediaImage*>();
- setup = 0;
+ //setup = 0;
+ filePath = 0;
}
-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(int id, QString name,
+ QString checksum, int size, QList<MediaImage *>images/*, Setup *setup*/, FilePathObject *fpo)
+ : EmuFrontFile(id, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer),
+ lstMediaImage(images)/*, setup(setup)*/, filePath(fpo)
{ }
-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(QString name, QString checksum,
+ int size, QList<MediaImage *>images/*, Setup *setup*/, FilePathObject *fpo)
+ : EmuFrontFile(-1, name, checksum, size, EmuFrontFile::FileType_MediaImageContainer),
+ lstMediaImage(images)/*, setup(setup)*/, filePath(fpo)
{ }
MediaImageContainer::~MediaImageContainer()
{
qDeleteAll(lstMediaImage);
- delete setup;
+ //delete setup;
+ delete filePath;
}
MediaImageContainer::MediaImageContainer(MediaImageContainer &mic)
lstMediaImage = QList<MediaImage*>();
foreach(MediaImage *mi, mic.lstMediaImage)
lstMediaImage.append(new MediaImage(*mi));
- setup = new Setup(*(mic.setup));
+ //setup = new Setup(*(mic.setup));
+ filePath = new FilePathObject(*(mic.filePath));
}
MediaImageContainer& MediaImageContainer::operator =(MediaImageContainer &mic)
qDeleteAll(lstMediaImage);
foreach(MediaImage *mi, mic.lstMediaImage)
lstMediaImage.append(new MediaImage(*mi));
- setup = new Setup(*(mic.setup));
+ //setup = new Setup(*(mic.setup));
+ filePath = new FilePathObject(*(mic.filePath));
return (*this);
}
void MediaImageContainer::addMediaImage(MediaImage *mi)
{ lstMediaImage.append(mi); }
-Setup* MediaImageContainer::getSetup() const
+/*Setup* MediaImageContainer::getSetup() const
{ return setup; }
void MediaImageContainer::setSetup(Setup *s)
-{ setup = s; }
+{ setup = s; }*/
+
+FilePathObject* MediaImageContainer::getFilePath() const
+{ return filePath; }
+
+void MediaImageContainer::setFilePath(FilePathObject *fp)
+{ filePath = fp; }
#include "emufrontfileobject.h"
#include "mediaimage.h"
#include "setup.h"
+#include "filepathobject.h"
class MediaImageContainer : public EmuFrontFile
{
public:
MediaImageContainer();
- 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(int id, QString name, QString checksum,
+ int size, QList<MediaImage*> images/*, Setup *setup*/, FilePathObject *fpo);
+ MediaImageContainer(QString name, QString checksum,
+ int size, QList<MediaImage*> images/*, Setup *setup*/, FilePathObject *fpo);
~MediaImageContainer();
MediaImageContainer(MediaImageContainer&);
MediaImageContainer& operator=(MediaImageContainer&);
QList<MediaImage*> getMediaImages() const;
void setMediaImages(QList<MediaImage*>);
void addMediaImage(MediaImage*);
- void setSetup(Setup *);
- Setup* getSetup() const;
+ /*void setSetup(Setup *);
+ Setup* getSetup() const;*/
+ void setFilePath(FilePathObject*);
+ FilePathObject* getFilePath() const;
private:
QList<MediaImage*> lstMediaImage;
- Setup *setup;
+ //Setup *setup;
+ FilePathObject *filePath;
};
#endif // MEDIAIMAGECONTAINER_H
qDebug() << "Failed inserting media image" << mi->getName();
}
}
- if (id > 0)
+ if (id > 0) {
ids.append(id);
+ mi->setId(id);
+ }
}
return ids;
}
int DbMediaImageContainer::insertDataObjectToModel(const EmuFrontObject *efo)
{
- // TODO
+ /* "CREATE TABLE IF NOT EXISTS mediaimagecontainer "
+ "(id INTEGER PRIMARY KEY, "
+ "fileid INTEGER REFERENCES file(id), "
+ "filepathid INTEGER REFERENCES filepath(id), "
+ "updatetime NUMERIC)"*/
+
+ const MediaImageContainer *mic
+ = dynamic_cast<const MediaImageContainer *>(efo);
+
+ // Insert MediaImageContainer first as a EmuFrontFile object...
+
+ int fileId = DbFile::insertDataObjectToModel(mic);
+
+ if (fileId < 0) {
+ throw new EmuFrontException(
+ QString(tr("Inserting media image container %1 to file database failed"))
+ .arg(mic->getName()));
+
+ }
+
+ // Insert to mediaimagecontainer table
+
return -1;
}
// insert the media image container file to file table
int micFileId = DbFile::insertDataObjectToModel(mic);
if (micFileId < 0) {
- throw new EmuFrontException(QString(tr("Inserting media image container %1 to file database failed")).arg(mic->getName()));
+ throw new EmuFrontException(
+ QString(tr("Inserting media image container %1 to file database failed"))
+ .arg(mic->getName()));
}
int fpId = fpo->getId();
// store media image to db
int micId = insertDataObjectToModel(mic);
if (micId < 0){
// because the previous insert failed, the next is most likely going to fail, throw exception
- throw new EmuFrontException(QString(tr("Failed inserting media image container '%1' to database!")).arg(mic->getName()));
+ throw new EmuFrontException(
+ QString(tr("Failed inserting media image container '%1' to database!"))
+ .arg(mic->getName()));
}
// link all the media image ids in list to media image container id
delete[] buf;
}
-QList<MediaImageContainer*> FileUtil::scanFilePath(const FilePathObject *fp, QStringList filters)
+QList<MediaImageContainer*> FileUtil::scanFilePath(FilePathObject *fp, QStringList filters)
{
if (!fp->getSetup()){
throw EmuFrontException(tr("Setup not available with %1.").arg(fp->getName()));
// * this function is designed to be used from media image path main dialog
// where we can ensure the lifecycle of file path object -> maybe move the implementation there!?
// TODO: Ensure this! We really need a reference instead of 1000s of copies of setup object!!!
- fp->getSetup()
+ //fp->getSetup(),
+ fp
);
containers.append(con);
qDebug() << "We have " << containers.size() << " containers.";
public:
FileUtil(QObject *parent);
~FileUtil();
- QList<MediaImageContainer*> scanFilePath(const FilePathObject *fpo, const QStringList filters);
+ QList<MediaImageContainer*> scanFilePath(FilePathObject *fpo, const QStringList filters);
private:
char *buf;
quint32 readCrc32(QString filePath);