store the hash of the first comic in a folder, this is more useful than storing the id

This commit is contained in:
Luis Ángel San Martín 2016-01-24 19:14:16 +01:00
parent b9e7dbe41e
commit e23f6b0bc3
4 changed files with 20 additions and 26 deletions

View File

@ -197,11 +197,9 @@ bool DataBaseManagement::createTables(QSqlDatabase & database)
"completed BOOLEAN DEFAULT 1," //collecting "completed BOOLEAN DEFAULT 1," //collecting
//new 8.6 fields //new 8.6 fields
"numChildren INTEGER," "numChildren INTEGER,"
"firstChildId INTEGER," "firstChildHash TEXT,"
"customImage TEXT," "customImage TEXT,"
"FOREIGN KEY(parentId) REFERENCES folder(id) ON DELETE CASCADE, " "FOREIGN KEY(parentId) REFERENCES folder(id) ON DELETE CASCADE)");
//8.6
"FOREIGN KEY(firstChildId) REFERENCES comic_info(id))");
success = success && queryFolder.exec(); success = success && queryFolder.exec();
//COMIC (representa un cómic en disco, contiene el nombre de fichero) //COMIC (representa un cómic en disco, contiene el nombre de fichero)
@ -771,10 +769,9 @@ bool DataBaseManagement::updateToCurrentVersion(const QString & fullPath)
QStringList columnDefs; QStringList columnDefs;
//TODO //TODO
columnDefs << "numChildren INTEGER"; columnDefs << "numChildren INTEGER";
columnDefs << "firstChildId INTEGER"; columnDefs << "firstChildHash TEXT";
columnDefs << "customImage TEXT"; columnDefs << "customImage TEXT";
//returnValue = returnValue && addColumns("folder", columnDefs, db); //returnValue = returnValue && addColumns("folder", columnDefs, db);
//returnValue = returnValue && addConstraint("folder", FOREIGN KEY(firstChildId) REFERENCES comic_info(id), db);
} }
} }

View File

@ -419,10 +419,10 @@ void DBHelper::updateChildrenInfo(const Folder & folder, QSqlDatabase & db)
QSqlQuery updateFolderInfo(db); QSqlQuery updateFolderInfo(db);
updateFolderInfo.prepare("UPDATE folder SET " updateFolderInfo.prepare("UPDATE folder SET "
"numChildren = :numChildren, " "numChildren = :numChildren, "
"firstChildId = :firstChildId " "firstChildHash = :firstChildHash "
"WHERE id = :id "); "WHERE id = :id ");
updateFolderInfo.bindValue(":numChildren", folder.getNumChildren()); updateFolderInfo.bindValue(":numChildren", folder.getNumChildren());
updateFolderInfo.bindValue(":firstChildId", folder.getFirstChildId()); updateFolderInfo.bindValue(":firstChildHash", folder.getFirstChildHash());
updateFolderInfo.bindValue(":id", folder.id); updateFolderInfo.bindValue(":id", folder.id);
updateFolderInfo.exec(); updateFolderInfo.exec();
} }
@ -439,10 +439,10 @@ void DBHelper::updateChildrenInfo(qulonglong folderId, QSqlDatabase & db)
QSqlQuery updateFolderInfo(db); QSqlQuery updateFolderInfo(db);
updateFolderInfo.prepare("UPDATE folder SET " updateFolderInfo.prepare("UPDATE folder SET "
"numChildren = :numChildren, " "numChildren = :numChildren, "
"firstChildId = :firstChildId " "firstChildHash = :firstChildHash "
"WHERE id = :id "); "WHERE id = :id ");
updateFolderInfo.bindValue(":numChildren", subfolders.count() + comics.count()); updateFolderInfo.bindValue(":numChildren", subfolders.count() + comics.count());
updateFolderInfo.bindValue(":firstChildId", firstComic != NULL ? firstComic->info.id : 0); updateFolderInfo.bindValue(":firstChildHash", firstComic != NULL ? firstComic->info.hash : "");
updateFolderInfo.bindValue(":id", folderId); updateFolderInfo.bindValue(":id", folderId);
updateFolderInfo.exec(); updateFolderInfo.exec();
} }
@ -783,7 +783,7 @@ QList<LibraryItem *> DBHelper::getFoldersFromParent(qulonglong parentId, QSqlDat
if(!record.value("numChildren").isNull() && record.value("numChildren").isValid()) if(!record.value("numChildren").isNull() && record.value("numChildren").isValid())
currentItem->setNumChildren(record.value("numChildren").toInt()); currentItem->setNumChildren(record.value("numChildren").toInt());
currentItem->setFirstChildId(record.value("firstChildId").toULongLong()); currentItem->setFirstChildHash(record.value("firstChildHash").toString());
currentItem->setCustomImage(record.value("customImage").toString()); currentItem->setCustomImage(record.value("customImage").toString());
int lessThan = 0; int lessThan = 0;
@ -985,7 +985,7 @@ Folder DBHelper::loadFolder(qulonglong id, QSqlDatabase & db)
//new 8.6 //new 8.6
if(!record.value("numChildren").isNull() && record.value("numChildren").isValid()) if(!record.value("numChildren").isNull() && record.value("numChildren").isValid())
folder.setNumChildren(record.value("numChildren").toInt()); folder.setNumChildren(record.value("numChildren").toInt());
folder.setFirstChildId(record.value("firstChildId").toULongLong()); folder.setFirstChildHash(record.value("firstChildHash").toString());
folder.setCustomImage(record.value("customImage").toString()); folder.setCustomImage(record.value("customImage").toString());
} }
@ -1018,7 +1018,7 @@ Folder DBHelper::loadFolder(const QString &folderName, qulonglong parentId, QSql
//new 8.6 //new 8.6
if(!record.value("numChildren").isNull() && record.value("numChildren").isValid()) if(!record.value("numChildren").isNull() && record.value("numChildren").isValid())
folder.setNumChildren(record.value("numChildren").toInt()); folder.setNumChildren(record.value("numChildren").toInt());
folder.setFirstChildId(record.value("firstChildId").toULongLong()); folder.setFirstChildHash(record.value("firstChildHash").toString());
folder.setCustomImage(record.value("customImage").toString()); folder.setCustomImage(record.value("customImage").toString());
QLOG_DEBUG() << "FOUND!!"; QLOG_DEBUG() << "FOUND!!";

View File

@ -3,15 +3,13 @@
Folder::Folder() Folder::Folder()
:knownParent(false), :knownParent(false),
knownId(false), knownId(false),
numChildren(-1), numChildren(-1)
firstChildId(0)
{} {}
Folder::Folder(qulonglong folderId, qulonglong parentId, const QString &folderName, const QString &folderPath) Folder::Folder(qulonglong folderId, qulonglong parentId, const QString &folderName, const QString &folderPath)
:knownParent(true), :knownParent(true),
knownId(true), knownId(true),
numChildren(-1), numChildren(-1)
firstChildId(0)
{ {
this->id = folderId; this->id = folderId;
this->parentId = parentId; this->parentId = parentId;
@ -22,8 +20,7 @@ Folder::Folder(qulonglong folderId, qulonglong parentId, const QString &folderNa
Folder::Folder(const QString & folderName, const QString & folderPath) Folder::Folder(const QString & folderName, const QString & folderPath)
:knownParent(false), :knownParent(false),
knownId(false), knownId(false),
numChildren(-1), numChildren(-1)
firstChildId(0)
{ {
this->name = folderName; this->name = folderName;
this->path = folderPath; this->path = folderPath;

View File

@ -62,19 +62,19 @@ public:
numChildren = v; numChildren = v;
} }
inline qulonglong getFirstChildId() const inline QString getFirstChildHash() const
{ {
return firstChildId; return firstChildHash;
} }
inline void setFirstChildId(const qulonglong v) inline void setFirstChildHash(const QString & v)
{ {
firstChildId = v; firstChildHash = v;
} }
inline qulonglong getCustomImage() const inline QString getCustomImage() const
{ {
return firstChildId; return customImage;
} }
inline void setCustomImage(const QString & s) inline void setCustomImage(const QString & s)
@ -87,7 +87,7 @@ private:
bool completed; bool completed;
qint32 numChildren; //-1 for unknown number of children qint32 numChildren; //-1 for unknown number of children
qulonglong firstChildId; //0 for unknown first child QString firstChildHash; //empty for unknown first child
QString customImage; //empty for none custom image QString customImage; //empty for none custom image
}; };