From 70e3b539ec9cc2a5bb06272782170043177730ea Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Thu, 19 Jan 2012 13:15:14 +0200 Subject: [PATCH] Added clearing sources of any UBGraphicsWidget. Added new system util method: deleteFile. --- src/board/UBBoardController.cpp | 1 + src/domain/UBGraphicsMediaItem.cpp | 8 +++----- src/domain/UBGraphicsWidgetItem.cpp | 8 ++++++++ src/domain/UBGraphicsWidgetItem.h | 6 ++++-- src/frameworks/UBCoreGraphicsScene.cpp | 4 ++++ src/frameworks/UBFileSystemUtils.cpp | 7 +++++++ src/frameworks/UBFileSystemUtils.h | 3 ++- 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index ad806dc0..f93fd2cc 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1802,6 +1802,7 @@ UBGraphicsWidgetItem *UBBoardController::addW3cWidget(const QUrl &pUrl, const QP QString struuid = UBStringUtils::toCanonicalUuid(uuid); QString snapshotPath = mActiveDocument->persistencePath() + "/" + UBPersistenceManager::widgetDirectory + "/" + struuid + ".png"; + w3cWidgetItem->setSnapshotPath(QUrl::fromLocalFile(snapshotPath)); UBGraphicsWidgetItem *tmpItem = dynamic_cast(w3cWidgetItem); if (tmpItem) tmpItem->widgetWebView()->takeSnapshot().save(snapshotPath, "PNG"); diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index d491b664..d07ab08c 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -25,6 +25,8 @@ #include "core/memcheck.h" +#include "frameworks/UBFileSystemUtils.h" + bool UBGraphicsMediaItem::sIsMutedByDefault = false; UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsItem *parent) @@ -85,15 +87,11 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria void UBGraphicsMediaItem::clearSource() { QString path = mediaFileUrl().path(); - //if path is absolute clean duplicated path string if (!path.contains(UBApplication::boardController->activeDocument()->persistencePath())) path = UBApplication::boardController->activeDocument()->persistencePath() + "/" + path; - QFile f(path); - f.setPermissions(path, QFile::ReadOwner | QFile::WriteOwner); - f.remove(); - + UBFileSystemUtils::deleteFile(path); } void UBGraphicsMediaItem::toggleMute() diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index 4105e207..61d49413 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -25,6 +25,7 @@ #include "UBW3CWidget.h" #include "UBGraphicsScene.h" #include "UBAppleWidget.h" +#include "frameworks/UBFileSystemUtils.h" #include "core/memcheck.h" @@ -246,6 +247,13 @@ void UBGraphicsWidgetItem::removeScript() mWebKitWidget->page()->mainFrame()->evaluateJavaScript("if(widget && widget.onremove) { widget.onremove();}"); } } + +void UBGraphicsWidgetItem::clearSource() +{ + UBFileSystemUtils::deleteDir(getOwnFolder().toLocalFile()); + UBFileSystemUtils::deleteFile(getSnapshotPath().toLocalFile()); +} + QString UBGraphicsWidgetItem::downloadUrl(const QString &fileUrl, const QString &extention) { return mUniboardAPI->downloadUrl(fileUrl, extention); diff --git a/src/domain/UBGraphicsWidgetItem.h b/src/domain/UBGraphicsWidgetItem.h index 62dd35d1..2be7b8af 100644 --- a/src/domain/UBGraphicsWidgetItem.h +++ b/src/domain/UBGraphicsWidgetItem.h @@ -70,9 +70,10 @@ class UBGraphicsWidgetItem : public UBGraphicsProxyWidget virtual void setOwnFolder(const QUrl &newFolder) {ownFolder = newFolder;} virtual QUrl getOwnFolder() const {return ownFolder;} + virtual void setSnapshotPath(const QUrl &newFilePath){SnapshotFile = newFilePath;} + virtual QUrl getSnapshotPath(){return SnapshotFile;} - - virtual void clearSource(){;} + virtual void clearSource(); protected: @@ -95,6 +96,7 @@ class UBGraphicsWidgetItem : public UBGraphicsProxyWidget bool mShouldMoveWidget; UBWidgetUniboardAPI* mUniboardAPI; QUrl ownFolder; + QUrl SnapshotFile; }; class UBGraphicsAppleWidgetItem : public UBGraphicsWidgetItem diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index 1c8d0cd9..c6b27d3c 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -19,6 +19,7 @@ #include "domain/UBGraphicsAudioItem.h" #include "domain/UBGraphicsVideoItem.h" #include "domain/UBGraphicsMediaItem.h" +#include "domain/UBGraphicsWidgetItem.h" UBCoreGraphicsScene::UBCoreGraphicsScene(QObject * parent) : QGraphicsScene ( parent ) @@ -70,6 +71,9 @@ bool UBCoreGraphicsScene::deleteItem(QGraphicsItem* item) case UBGraphicsVideoItem::Type: item_casted = dynamic_cast(item); break; + case UBGraphicsW3CWidgetItem::Type: + item_casted = dynamic_cast(item); + break; } if (0 != item_casted) diff --git a/src/frameworks/UBFileSystemUtils.cpp b/src/frameworks/UBFileSystemUtils.cpp index 224a4c74..5be2c1f8 100644 --- a/src/frameworks/UBFileSystemUtils.cpp +++ b/src/frameworks/UBFileSystemUtils.cpp @@ -79,6 +79,13 @@ bool UBFileSystemUtils::copyFile(const QString &source, const QString &Destinati return QFile::copy(source, normalizedDestination); } +bool UBFileSystemUtils::deleteFile(const QString &path) +{ + QFile f(path); + f.setPermissions(path, QFile::ReadOwner | QFile::WriteOwner); + return f.remove(); +} + QString UBFileSystemUtils::defaultTempDirPath() { return QDesktopServices::storageLocation(QDesktopServices::TempLocation) + "/" + defaultTempDirName(); diff --git a/src/frameworks/UBFileSystemUtils.h b/src/frameworks/UBFileSystemUtils.h index 1a496b52..bd20755b 100644 --- a/src/frameworks/UBFileSystemUtils.h +++ b/src/frameworks/UBFileSystemUtils.h @@ -66,7 +66,8 @@ class UBFileSystemUtils static bool isAZipFile(QString &filePath); static bool copyFile(const QString &source, const QString &Destination, bool overwrite = false); - + + static bool deleteFile(const QString &path); /** * Compress a source directory in a zip file. * @arg pDir the directory to add in zip