forked from blue/squawk
refactorng
This commit is contained in:
parent
00af582287
commit
75554c7451
30 changed files with 515 additions and 627 deletions
|
@ -207,7 +207,6 @@ unsigned int Core::Archive::addElements(const std::list<Shared::Message>& messag
|
|||
++success;
|
||||
}
|
||||
txn.commit();
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
|
@ -315,63 +314,63 @@ bool Core::Archive::setAvatar(const QByteArray& data, AvatarInfo& newInfo, bool
|
|||
avatars->removeRecord(res, txn);
|
||||
txn.commit();
|
||||
return true;
|
||||
} else {
|
||||
QString currentPath = db.getPath();
|
||||
bool needToRemoveOld = false;
|
||||
QCryptographicHash hash(QCryptographicHash::Sha1);
|
||||
hash.addData(data);
|
||||
QByteArray newHash(hash.result());
|
||||
if (haveAvatar) {
|
||||
if (!generated && !oldInfo.autogenerated && oldInfo.hash == newHash)
|
||||
return false;
|
||||
}
|
||||
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type);
|
||||
if (oldAvatar.exists()) {
|
||||
if (oldAvatar.rename(currentPath + "/" + res + "." + oldInfo.type + ".bak")) {
|
||||
needToRemoveOld = true;
|
||||
} else {
|
||||
qDebug() << "Can't change avatar: couldn't get rid of the old avatar" << oldAvatar.fileName();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
QMimeDatabase mimedb;
|
||||
QMimeType type = mimedb.mimeTypeForData(data);
|
||||
QString ext = type.preferredSuffix();
|
||||
QFile newAvatar(currentPath + "/" + res + "." + ext);
|
||||
if (newAvatar.open(QFile::WriteOnly)) {
|
||||
newAvatar.write(data);
|
||||
newAvatar.close();
|
||||
|
||||
newInfo.type = ext;
|
||||
newInfo.hash = newHash;
|
||||
newInfo.autogenerated = generated;
|
||||
try {
|
||||
avatars->forceRecord(res, newInfo, txn);
|
||||
txn.commit();
|
||||
} catch (...) {
|
||||
qDebug() << "Can't change avatar: couldn't store changes to database for" << newAvatar.fileName() << "rolling back to the previous state";
|
||||
if (needToRemoveOld) {
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type + ".bak");
|
||||
oldAvatar.rename(currentPath + "/" + res + "." + oldInfo.type);
|
||||
}
|
||||
QString currentPath = db.getPath();
|
||||
bool needToRemoveOld = false;
|
||||
QCryptographicHash hash(QCryptographicHash::Sha1);
|
||||
hash.addData(data);
|
||||
QByteArray newHash(hash.result());
|
||||
if (haveAvatar) {
|
||||
if (!generated && !oldInfo.autogenerated && oldInfo.hash == newHash)
|
||||
return false;
|
||||
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type);
|
||||
if (oldAvatar.exists()) {
|
||||
if (oldAvatar.rename(currentPath + "/" + res + "." + oldInfo.type + ".bak")) {
|
||||
needToRemoveOld = true;
|
||||
} else {
|
||||
qDebug() << "Can't change avatar: couldn't get rid of the old avatar" << oldAvatar.fileName();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (needToRemoveOld) {
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type + ".bak");
|
||||
oldAvatar.remove();
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
qDebug() << "Can't change avatar: cant open file to write" << newAvatar.fileName() << "rolling back to the previous state";
|
||||
if (needToRemoveOld) {
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type + ".bak");
|
||||
oldAvatar.rename(currentPath + "/" + res + "." + oldInfo.type);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
QMimeDatabase mimedb;
|
||||
QMimeType type = mimedb.mimeTypeForData(data);
|
||||
QString ext = type.preferredSuffix();
|
||||
QFile newAvatar(currentPath + "/" + res + "." + ext);
|
||||
if (!newAvatar.open(QFile::WriteOnly)) {
|
||||
qDebug() << "Can't change avatar: cant open file to write" << newAvatar.fileName() << "rolling back to the previous state";
|
||||
if (needToRemoveOld) {
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type + ".bak");
|
||||
oldAvatar.rename(currentPath + "/" + res + "." + oldInfo.type);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
newAvatar.write(data);
|
||||
newAvatar.close();
|
||||
|
||||
newInfo.type = ext;
|
||||
newInfo.hash = newHash;
|
||||
newInfo.autogenerated = generated;
|
||||
try {
|
||||
avatars->forceRecord(res, newInfo, txn);
|
||||
txn.commit();
|
||||
} catch (...) {
|
||||
qDebug() << "Can't change avatar: couldn't store changes to database for" << newAvatar.fileName() << "rolling back to the previous state";
|
||||
if (needToRemoveOld) {
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type + ".bak");
|
||||
oldAvatar.rename(currentPath + "/" + res + "." + oldInfo.type);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (needToRemoveOld) {
|
||||
QFile oldAvatar(currentPath + "/" + res + "." + oldInfo.type + ".bak");
|
||||
oldAvatar.remove();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Core::Archive::readAvatarInfo(Core::Archive::AvatarInfo& target, const QString& resource) const {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue