From 0428f938d25b513fd95c67397dca50b59fb4d38a Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Tue, 23 Jul 2013 17:03:06 +0200 Subject: [PATCH] persistence of not required media on disk. Second step updated the cleanSource methods in classes that handle files on disk --- src/board/UBBoardController.cpp | 10 ++++++++-- src/core/UBPersistenceManager.cpp | 2 +- src/core/UBPersistenceManager.h | 2 +- src/domain/UBGraphicsPixmapItem.cpp | 15 +++++++++++++++ src/domain/UBGraphicsPixmapItem.h | 2 +- src/domain/UBGraphicsProxyWidget.cpp | 9 +++++++-- src/domain/UBGraphicsProxyWidget.h | 1 - src/domain/UBGraphicsSvgItem.cpp | 15 +++++++++++++++ src/domain/UBGraphicsSvgItem.h | 4 ++-- src/domain/UBGraphicsWidgetItem.cpp | 3 ++- 10 files changed, 52 insertions(+), 11 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 6135423d..b9f3a502 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -51,7 +51,6 @@ #include "domain/UBGraphicsPixmapItem.h" #include "domain/UBGraphicsItemUndoCommand.h" -#include "domain/UBGraphicsProxyWidget.h" #include "domain/UBGraphicsSvgItem.h" #include "domain/UBGraphicsWidgetItem.h" #include "domain/UBGraphicsMediaItem.h" @@ -1325,6 +1324,13 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QUrl UBGraphicsWidgetItem *widgetItem = mActiveScene->addW3CWidget(QUrl::fromLocalFile(widgetUrl), pPos); widgetItem->setUuid(QUuid::createUuid()); widgetItem->setSourceUrl(QUrl::fromLocalFile(widgetUrl)); + qDebug() << widgetItem->getOwnFolder(); + qDebug() << widgetItem->getSnapshotPath(); + QString ownFolder = selectedDocument()->persistencePath() + "/" + UBPersistenceManager::widgetDirectory + "/" + widgetItem->uuid().toString() + ".wgt"; + widgetItem->setOwnFolder(ownFolder); + QString adaptedUUid = widgetItem->uuid().toString().replace("{","").replace("}",""); + ownFolder = ownFolder.replace(widgetItem->uuid().toString() + ".wgt", adaptedUUid + ".png"); + widgetItem->setSnapshotPath(ownFolder); UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector); @@ -2143,7 +2149,7 @@ UBGraphicsWidgetItem *UBBoardController::addW3cWidget(const QUrl &pUrl, const QP QUuid uuid = QUuid::createUuid(); QString destPath; - if (!UBPersistenceManager::persistenceManager()->addGraphicsWidgteToDocument(selectedDocument(), pUrl.toLocalFile(), uuid, destPath)) + if (!UBPersistenceManager::persistenceManager()->addGraphicsWidgetToDocument(selectedDocument(), pUrl.toLocalFile(), uuid, destPath)) return NULL; QUrl newUrl = QUrl::fromLocalFile(destPath); diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index a9ec444e..ccb6d859 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -859,7 +859,7 @@ bool UBPersistenceManager::addFileToDocument(UBDocumentProxy* pDocumentProxy, } } -bool UBPersistenceManager::addGraphicsWidgteToDocument(UBDocumentProxy *pDocumentProxy, +bool UBPersistenceManager::addGraphicsWidgetToDocument(UBDocumentProxy *pDocumentProxy, QString path, QUuid objectUuid, QString& destinationPath) diff --git a/src/core/UBPersistenceManager.h b/src/core/UBPersistenceManager.h index 77708cee..6710c29e 100644 --- a/src/core/UBPersistenceManager.h +++ b/src/core/UBPersistenceManager.h @@ -103,7 +103,7 @@ class UBPersistenceManager : public QObject virtual bool isEmpty(UBDocumentProxy* pDocumentProxy); virtual void purgeEmptyDocuments(); - bool addGraphicsWidgteToDocument(UBDocumentProxy *mDocumentProxy, QString path, QUuid objectUuid, QString& destinationPath); + bool addGraphicsWidgetToDocument(UBDocumentProxy *mDocumentProxy, QString path, QUuid objectUuid, QString& destinationPath); bool addFileToDocument(UBDocumentProxy* pDocumentProxy, QString path, const QString& subdir, QUuid objectUuid, QString& destinationPath, QByteArray* data = NULL); signals: diff --git a/src/domain/UBGraphicsPixmapItem.cpp b/src/domain/UBGraphicsPixmapItem.cpp index adf96f0b..9bffb41c 100644 --- a/src/domain/UBGraphicsPixmapItem.cpp +++ b/src/domain/UBGraphicsPixmapItem.cpp @@ -31,6 +31,13 @@ #include "UBGraphicsItemDelegate.h" +#include "frameworks/UBFileSystemUtils.h" + +#include "core/UBApplication.h" +#include "core/UBPersistenceManager.h" + +#include "board/UBBoardController.h" + #include "core/memcheck.h" UBGraphicsPixmapItem::UBGraphicsPixmapItem(QGraphicsItem* parent) @@ -164,3 +171,11 @@ qreal UBGraphicsPixmapItem::opacity() const { return QGraphicsPixmapItem::opacity(); } + + +void UBGraphicsPixmapItem::clearSource() +{ + QString fileName = UBPersistenceManager::imageDirectory + "/" + uuid().toString() + ".png"; + QString diskPath = UBApplication::boardController->selectedDocument()->persistencePath() + "/" + fileName; + UBFileSystemUtils::deleteFile(diskPath); +} diff --git a/src/domain/UBGraphicsPixmapItem.h b/src/domain/UBGraphicsPixmapItem.h index 3ef6b846..e00efc1a 100644 --- a/src/domain/UBGraphicsPixmapItem.h +++ b/src/domain/UBGraphicsPixmapItem.h @@ -57,7 +57,7 @@ class UBGraphicsPixmapItem : public QObject, public QGraphicsPixmapItem, public void setOpacity(qreal op); qreal opacity() const; - virtual void clearSource(){;} + virtual void clearSource(); virtual void setUuid(const QUuid &pUuid); diff --git a/src/domain/UBGraphicsProxyWidget.cpp b/src/domain/UBGraphicsProxyWidget.cpp index 24f3b6c7..3740b5cc 100644 --- a/src/domain/UBGraphicsProxyWidget.cpp +++ b/src/domain/UBGraphicsProxyWidget.cpp @@ -30,6 +30,13 @@ #include "UBGraphicsDelegateFrame.h" +#include "core/UBApplication.h" +#include "core/UBPersistenceManager.h" + +#include "board/UBBoardController.h" + +#include "frameworks/UBFileSystemUtils.h" + #include "core/memcheck.h" UBGraphicsProxyWidget::UBGraphicsProxyWidget(QGraphicsItem* parent) @@ -198,5 +205,3 @@ UBGraphicsScene* UBGraphicsProxyWidget::scene() { return static_cast(QGraphicsItem::scene()); } - - diff --git a/src/domain/UBGraphicsProxyWidget.h b/src/domain/UBGraphicsProxyWidget.h index 61d75538..d9686b20 100644 --- a/src/domain/UBGraphicsProxyWidget.h +++ b/src/domain/UBGraphicsProxyWidget.h @@ -44,7 +44,6 @@ class UBGraphicsProxyWidget: public QGraphicsProxyWidget, public UBItem, public virtual UBGraphicsScene* scene(); - virtual void clearSource(){;} virtual void setUuid(const QUuid &pUuid); protected: diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index 00bcdaae..7344514e 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -29,6 +29,13 @@ #include "UBGraphicsItemDelegate.h" #include "UBGraphicsPixmapItem.h" +#include "core/UBApplication.h" +#include "core/UBPersistenceManager.h" + +#include "board/UBBoardController.h" + +#include "frameworks/UBFileSystemUtils.h" + #include "core/memcheck.h" UBGraphicsSvgItem::UBGraphicsSvgItem(const QString& pFilePath, QGraphicsItem* parent) @@ -217,3 +224,11 @@ void UBGraphicsSvgItem::setUuid(const QUuid &pUuid) UBItem::setUuid(pUuid); setData(UBGraphicsItemData::ItemUuid, QVariant(pUuid)); //store item uuid inside the QGraphicsItem to fast operations with Items on the scene } + + +void UBGraphicsSvgItem::clearSource() +{ + QString fileName = UBPersistenceManager::imageDirectory + "/" + uuid().toString() + ".svg"; + QString diskPath = UBApplication::boardController->selectedDocument()->persistencePath() + "/" + fileName; + UBFileSystemUtils::deleteFile(diskPath); +} diff --git a/src/domain/UBGraphicsSvgItem.h b/src/domain/UBGraphicsSvgItem.h index ef805bd6..2d9a4dc8 100644 --- a/src/domain/UBGraphicsSvgItem.h +++ b/src/domain/UBGraphicsSvgItem.h @@ -70,6 +70,8 @@ class UBGraphicsSvgItem: public QGraphicsSvgItem, public UBItem, public UBGraphi virtual void setUuid(const QUuid &pUuid); + virtual void clearSource(); + protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); @@ -80,8 +82,6 @@ class UBGraphicsSvgItem: public QGraphicsSvgItem, public UBItem, public UBGraphi virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); -// UBGraphicsItemDelegate* mDelegate; - QByteArray mFileData; }; diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index dcaf3a18..5d3a9929 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -272,7 +272,8 @@ bool UBGraphicsWidgetItem::isDropableData(const QMimeData *data) const return mUniboardAPI->isDropableData(data); } -QUrl UBGraphicsWidgetItem::getOwnFolder() const { +QUrl UBGraphicsWidgetItem::getOwnFolder() const +{ return ownFolder; }