EmuFrontObject* DatabaseManager::getDataObject(QString filter)
{
+ qDebug() << "Filtering data object" << filter;
filterDataObjects(filter);
+ qDebug() << "...done filtering.";
return getFilteredDataObject();
}
// You should have received a copy of the GNU General Public License
// along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
+#include <QDebug>
#include <QSqlRecord>
#include <QSqlQuery>
#include <QSqlTableModel>
int DbFile::insertFile(const EmuFrontFile *mi)
{
+ qDebug() << "Inserting file " << mi->getName() << " to db.";
QSqlQuery q;
q.prepare("INSERT INTO file "
"(id, name, type, checksum, size, updatetime) "
type = EmuFrontFile::FileType_MediaImage;
}
-/*bool DbMediaImage::updateDataObjectToModel(const EmuFrontObject *efo)
+bool DbMediaImage::updateDataObjectToModel(const EmuFrontObject *efo)
{
// TODO
return false;
-}*/
+}
-/*bool DbMediaImage::insertDataObjectToModel(const EmuFrontObject *efo)
+bool DbMediaImage::insertDataObjectToModel(const EmuFrontObject *efo)
{
// TODO
return false;
-}*/
+}
-/*bool DbMediaImage::deleteDataObjectFromModel(QModelIndex *i)
+bool DbMediaImage::deleteDataObjectFromModel(QModelIndex *i)
{
// TODO
return false;
-}*/
+}
-/*int DbMediaImage::countDataObjectRefs(int id) const
+int DbMediaImage::countDataObjectRefs(int id) const
{
// TODO
return -1;
-}*/
+}
-/*QString DbMediaImage::constructSelect(QString whereClause) const
+QString DbMediaImage::constructSelect(QString whereClause) const
{
// TODO
return "";
{
// TODO
return "";
-}*/
+}
-/*EmuFrontObject* DbMediaImage::recordToDataObject(const QSqlRecord *)
+EmuFrontObject* DbMediaImage::recordToDataObject(const QSqlRecord *)
{
// TODO
return 0;
-}*/
+}
-/*QSqlQueryModel* DbMediaImage::getData()
+QSqlQueryModel* DbMediaImage::getData()
{
QSqlTableModel *model = new QSqlTableModel;
model->setTable(DB_TABLE_NAME_FILE);
-}*/
-
-
+ return model;
+}
int DbMediaImage::insertMediaImage(const MediaImage *mi)
{
QList<int> DbMediaImage::storeMediaImages(QList<MediaImage *> images)
{
+ qDebug() << "Storing media images to database.";
QList<int> ids = QList<int>();
foreach(MediaImage* mi, images)
{
QString cksum = mi->getCheckSum();
+ qDebug() << "Storing media image " << mi->getName()
+ << " with checksum " << cksum;
+ // TODO: Crashed: Filtering never gets to dbtablemodelmanagers
+ // filterDataObjects!
EmuFrontObject *o = getFileByChecksum(cksum);
int id = o ? o->getId() : -1;
if (id >= 0)
{
+ qDebug() << "This media image already exists with id " << id;
// this media image is already in the database
// TODO: what if the name differs?
}
else if (id < 0)
{
+ qDebug() << "This media image is not yet in the db.";
id = insertMediaImage(mi);
if (id < 0)
{
}
ids.append(id);
}
+ return ids;
}
public:
DbMediaImage(QObject *parent);
QList<int> storeMediaImages(QList<MediaImage*>);
- //virtual bool updateDataObjectToModel(const EmuFrontObject *);
- //virtual bool insertDataObjectToModel(const EmuFrontObject *);
- //virtual bool deleteDataObjectFromModel(QModelIndex *);
- //virtual int countDataObjectRefs(int id) const;
- //int getMediaImage(QString checksum) const;
+ virtual bool updateDataObjectToModel(const EmuFrontObject *);
+ virtual bool insertDataObjectToModel(const EmuFrontObject *);
+ virtual bool deleteDataObjectFromModel(QModelIndex *);
+ virtual int countDataObjectRefs(int id) const;
+ int getMediaImage(QString checksum) const;
int insertMediaImage(const MediaImage*);
protected:
- //virtual QString constructSelect(QString whereClause) const;
- //virtual QString constructSelectById(int id) const;
- //virtual EmuFrontObject* recordToDataObject(const QSqlRecord *);
+ virtual QString constructSelect(QString whereClause) const;
+ virtual QString constructSelectById(int id) const;
+ virtual EmuFrontObject* recordToDataObject(const QSqlRecord *);
private:
- //virtual QSqlQueryModel* getData();
+ virtual QSqlQueryModel* getData();
};
#endif // DBMEDIAIMAGE_H
// You should have received a copy of the GNU General Public License
// along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
+#include <QDebug>
#include "dbmediaimagecontainer.h"
DbMediaImageContainer::DbMediaImageContainer(QObject *parent)
void DbMediaImageContainer::storeContainers(QList<MediaImageContainer *> lst)
{
+ qDebug() << "Storing media image containers to database.";
foreach(MediaImageContainer *mic, lst)
{
+ qDebug() << "Media image container " << mic->getName();
QList<MediaImage*> images = mic->getMediaImages();
if (getMediaImageContainer(mic->getCheckSum()) >= 0)
continue;
l << "*.zip"; // TODO set filters in a global constant class
QList<MediaImageContainer*> files = fileUtil.scanFilePath(fpo, l);
+ qDebug() << "Storing scanned " << files.size() << " files to database";
dbMediaImageContainer->storeContainers(files);
+ qDebug() << "Done storing scanned " << files.size() << " files to database";
}
catch (EmuFrontException s)
{
if (!dir.exists() || !dir.isReadable())
throw EmuFrontException(tr("Directory %1 doesn't exists or isn't readable!").arg(fp->getName()));
+ qDebug() << QString("Scanning directory %1.").arg(fp->getName());
dir.setFilter(QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot | QDir::Readable);
if (filters.count() > 0) dir.setNameFilters(filters);
// * if we assign a copy of the setup object -> waste of memory and time
// * 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()
);
containers.append(con);
+ qDebug() << "We have " << containers.size() << " containers.";
}
}
+ qDebug() << "Done scanning files!";
return containers;
}
if (ec != UnZip::Ok)
throw EmuFrontException(tr("Error while opening zip-file %1, error code %2").arg(filePath).arg(ec));
+ if (!fp->getSetup()){
+ throw EmuFrontException(tr("Setup not available with %1.").arg(fp->getName()));
+ }
+
Setup *sup = fp->getSetup();
QList<UnZip::ZipEntry> list = uz.entryList();
QList<MediaImage*> fileList;
foreach(UnZip::ZipEntry entry, list)
{
+ qDebug() << "Zip entry " << entry.filename;
if (isSupportedFile(entry.filename, sup->getSupportedFileTypeExtensions()))
{
QString checksum = QString("%1").arg(entry.crc32, 0, 16);
+ qDebug() << "Checksum " << checksum;
MediaImage *effo = new MediaImage(entry.filename,
checksum, entry.uncompressedSize);
fileList << effo;
}
}
+ qDebug() << "File list has " << fileList.size() << " entries.";
return fileList;
}