diff --git a/src/adaptors/UBMetadataDcSubsetAdaptor.cpp b/src/adaptors/UBMetadataDcSubsetAdaptor.cpp index d882ea6a..f8ba2f52 100644 --- a/src/adaptors/UBMetadataDcSubsetAdaptor.cpp +++ b/src/adaptors/UBMetadataDcSubsetAdaptor.cpp @@ -86,7 +86,7 @@ void UBMetadataDcSubsetAdaptor::persist(UBDocumentProxy* proxy) return; } QString fileName = proxy->persistencePath() + "/" + metadataFilename; - qWarning() << "Persisting document path is" << fileName; + qWarning() << "Persisting document; path is" << fileName; QFile file(fileName); if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index 3f6606bf..ebd31f25 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -211,13 +211,6 @@ QList > UBPersistenceManager::allDocumentProxies() { UBDocumentProxy* proxy = new UBDocumentProxy(fullPath); // deleted in UBPersistenceManager::destructor - QMap metadatas = UBMetadataDcSubsetAdaptor::load(fullPath); - - foreach(QString key, metadatas.keys()) - { - proxy->setMetaData(key, metadatas.value(key)); - } - proxy->setPageCount(sceneCount(proxy)); proxies << QPointer(proxy); @@ -376,13 +369,6 @@ UBDocumentProxy* UBPersistenceManager::createDocumentFromDir(const QString& pDoc doc->setMetaData(UBSettings::documentName, pName); } - QMap metadatas = UBMetadataDcSubsetAdaptor::load(pDocumentDirectory); - - foreach(QString key, metadatas.keys()) - { - doc->setMetaData(key, metadatas.value(key)); - } - doc->setUuid(QUuid::createUuid()); doc->setPageCount(sceneCount(doc)); @@ -775,11 +761,12 @@ void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, mSceneCache.insert(pDocumentProxy, pSceneIndex, pScene); - if (pDocumentProxy->isModified()) - persistDocumentMetadata(pDocumentProxy, forceImmediateSaving); - if (pScene->isModified()) { + //qDebug() << "Persisting scene"; + if (pDocumentProxy->isModified()) + persistDocumentMetadata(pDocumentProxy, forceImmediateSaving); + UBThumbnailAdaptor::persistScene(pDocumentProxy, pScene, pSceneIndex); if(forceImmediateSaving) UBSvgSubsetAdaptor::persistScene(pDocumentProxy,pScene,pSceneIndex); diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index 8711eb6f..206837e8 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -517,7 +517,6 @@ void UBDocumentController::duplicateSelectedItem() duplicatePages(selectedSceneIndexes); emit documentThumbnailsUpdated(this); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(selectedDocument()); mDocumentUI->thumbnailWidget->selectItemAt(selectedSceneIndexes.last() + selectedSceneIndexes.size()); } } @@ -534,7 +533,6 @@ void UBDocumentController::duplicateSelectedItem() UBDocumentProxy* duplicatedDoc = UBPersistenceManager::persistenceManager()->duplicateDocument(source); duplicatedDoc->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(duplicatedDoc); selectDocument(duplicatedDoc, false); @@ -995,13 +993,7 @@ void UBDocumentController::itemChanged(QTreeWidgetItem * item, int column) , this, SLOT(updateDocumentInTree(UBDocumentProxy*))); if (proxyItem) - { - if (proxyItem->proxy()->metaData(UBSettings::documentName).toString() != item->text(column)) - { - proxyItem->proxy()->setMetaData(UBSettings::documentName, item->text(column)); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyItem->proxy()); - } - } + proxyItem->proxy()->setMetaData(UBSettings::documentName, item->text(column)); else { // it is a group @@ -1017,7 +1009,6 @@ void UBDocumentController::itemChanged(QTreeWidgetItem * item, int column) if (0 != (item->flags() & Qt::ItemIsEditable)) { childItem->proxy()->setMetaData(UBSettings::documentGroupName, item->text(column)); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(childItem->proxy()); } } } @@ -1104,7 +1095,6 @@ void UBDocumentController::addFolderOfImages() else { document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(document); reloadThumbnails(); } } @@ -1150,7 +1140,6 @@ bool UBDocumentController::addFileToDocument(UBDocumentProxy* document) if (success) { document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(document); } else { @@ -1169,7 +1158,6 @@ void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source, if (UBDocumentContainer::movePageToIndex(source, target)) { proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxy); mDocumentUI->thumbnailWidget->hightlightItem(target); } @@ -1497,7 +1485,6 @@ void UBDocumentController::addToDocument() mDocumentUI->thumbnailWidget->selectItemAt(newActiveSceneIndex, false); selectDocument(mBoardController->selectedDocument()); mBoardController->selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(mBoardController->selectedDocument()); UBApplication::applicationController->showBoard(); } @@ -1678,7 +1665,6 @@ void UBDocumentController::addImages() else { document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(document); reloadThumbnails(); } } @@ -1791,7 +1777,6 @@ void UBDocumentController::deletePages(QList itemsToDelete) UBDocumentContainer::deletePages(sceneIndexes); proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxy); int minIndex = proxy->pageCount() - 1; foreach (int i, sceneIndexes) diff --git a/src/document/UBDocumentProxy.cpp b/src/document/UBDocumentProxy.cpp index d8c04b49..a87ae4c0 100644 --- a/src/document/UBDocumentProxy.cpp +++ b/src/document/UBDocumentProxy.cpp @@ -33,9 +33,10 @@ #include "core/UBPersistenceManager.h" #include "core/UBSettings.h" #include "core/UBDocumentManager.h" - #include "core/memcheck.h" +#include "adaptors/UBMetadataDcSubsetAdaptor.h" + UBDocumentProxy::UBDocumentProxy() : mPageCount(0) { @@ -48,6 +49,8 @@ UBDocumentProxy::UBDocumentProxy(const QString& pPersistancePath) { init(); setPersistencePath(pPersistancePath); + + mMetaDatas = UBMetadataDcSubsetAdaptor::load(pPersistancePath); } @@ -74,9 +77,11 @@ UBDocumentProxy* UBDocumentProxy::deepCopy() const UBDocumentProxy* copy = new UBDocumentProxy(); copy->mPersistencePath = QString(mPersistencePath); - copy->mMetaDatas = QHash(mMetaDatas); + copy->mMetaDatas = QMap(mMetaDatas); copy->mIsModified = mIsModified; copy->mPageCount = mPageCount; + + return copy; } @@ -164,7 +169,7 @@ QVariant UBDocumentProxy::metaData(const QString& pKey) const } } -QHash UBDocumentProxy::metaDatas() const +QMap UBDocumentProxy::metaDatas() const { return mMetaDatas; } diff --git a/src/document/UBDocumentProxy.h b/src/document/UBDocumentProxy.h index 5f0db518..8ccfbe4a 100644 --- a/src/document/UBDocumentProxy.h +++ b/src/document/UBDocumentProxy.h @@ -57,7 +57,7 @@ class UBDocumentProxy : public QObject void setMetaData(const QString& pKey , const QVariant& pValue); QVariant metaData(const QString& pKey) const; - QHash metaDatas() const; + QMap metaDatas() const; QString name() const; QString groupName() const; @@ -88,7 +88,7 @@ class UBDocumentProxy : public QObject QString mPersistencePath; - QHash mMetaDatas; + QMap mMetaDatas; bool mIsModified;