From 6df0f11422d9c7d82ccc0f5a3e59ff96b4146403 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 10 Aug 2011 19:15:40 +0200 Subject: [PATCH] All exported document will be checked against absolut path --- src/adaptors/UBExportDocument.cpp | 5 +++++ src/adaptors/UBWebPublisher.cpp | 6 ++++++ src/transition/UniboardSankoreTransition.cpp | 10 +++++++++- src/transition/UniboardSankoreTransition.h | 3 +++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/adaptors/UBExportDocument.cpp b/src/adaptors/UBExportDocument.cpp index dfb2e65d..27ea87d7 100644 --- a/src/adaptors/UBExportDocument.cpp +++ b/src/adaptors/UBExportDocument.cpp @@ -25,6 +25,8 @@ #include "quazip.h" #include "quazipfile.h" +#include "transition/UniboardSankoreTransition.h" + #include "core/memcheck.h" UBExportDocument::UBExportDocument(QObject *parent) @@ -64,6 +66,9 @@ void UBExportDocument::persist(UBDocumentProxy* pDocumentProxy) void UBExportDocument::persistsDocument(UBDocumentProxy* pDocumentProxy, QString filename) { + UniboardSankoreTransition document; + QString documentPath(pDocumentProxy->persistencePath()); + document.checkDocumentDirectory(documentPath); QuaZip zip(filename); zip.setFileNameCodec("UTF-8"); diff --git a/src/adaptors/UBWebPublisher.cpp b/src/adaptors/UBWebPublisher.cpp index 70059526..092d597e 100644 --- a/src/adaptors/UBWebPublisher.cpp +++ b/src/adaptors/UBWebPublisher.cpp @@ -21,6 +21,8 @@ #include "core/memcheck.h" +#include "transition/UniboardSankoreTransition.h" + UBWebPublisher::UBWebPublisher(QObject *parent) : UBExportAdaptor(parent) { @@ -45,6 +47,10 @@ void UBWebPublisher::persist(UBDocumentProxy* pDocumentProxy) if (!pDocumentProxy) return; + UniboardSankoreTransition document; + QString documentPath(pDocumentProxy->persistencePath()); + document.checkDocumentDirectory(documentPath); + UBDocumentPublisher* publisher = new UBDocumentPublisher(pDocumentProxy, this); // the publisher will self delete when publication finishes publisher->publish(); diff --git a/src/transition/UniboardSankoreTransition.cpp b/src/transition/UniboardSankoreTransition.cpp index 3bd2901c..4f384045 100644 --- a/src/transition/UniboardSankoreTransition.cpp +++ b/src/transition/UniboardSankoreTransition.cpp @@ -65,6 +65,15 @@ void UniboardSankoreTransition::rollbackDocumentsTransition(QFileInfoList& fileI } } +bool UniboardSankoreTransition::checkDocumentDirectory(QString& documentDirectoryPath) +{ + bool result = true; + result = updateSankoreHRef(documentDirectoryPath); + QString sankoreWidgetPath = documentDirectoryPath + "/widgets"; + result &= updateIndexWidget(sankoreWidgetPath); + return result; +} + void UniboardSankoreTransition::documentTransition() { if (QFileInfo(mUniboardSourceDirectory).exists() || QFileInfo(mOldSankoreDirectory).exists()){ @@ -206,7 +215,6 @@ bool UniboardSankoreTransition::updateSankoreHRef(QString& sankoreDocumentPath) QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(sankoreDocumentPath); QFileInfoList::iterator fileInfo; - QString sankoreDocumentDirectory = UBSettings::uniboardDocumentDirectory(); for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) { if (fileInfo->fileName().endsWith("svg")){ diff --git a/src/transition/UniboardSankoreTransition.h b/src/transition/UniboardSankoreTransition.h index ee907562..69adf35e 100644 --- a/src/transition/UniboardSankoreTransition.h +++ b/src/transition/UniboardSankoreTransition.h @@ -38,6 +38,9 @@ class UniboardSankoreTransition : public QObject public: explicit UniboardSankoreTransition(QObject *parent = 0); ~UniboardSankoreTransition(); + + bool checkDocumentDirectory(QString& documentDirectoryPath); + void documentTransition(); bool checkPage(QString& sankorePagePath); bool updateSankoreHRef(QString &sankoreDocumentPath);