diff --git a/OpenBoard.pro b/OpenBoard.pro index 60be1ebf..78b0e217 100644 --- a/OpenBoard.pro +++ b/OpenBoard.pro @@ -11,7 +11,7 @@ CONFIG += debug_and_release \ VERSION_MAJ = 0 VERSION_MIN = 08 VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error -VERSION_PATCH = 02 +VERSION_PATCH = 03 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = $$replace(VERSION, "\\.r", "") diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 315852ed..a16af8fe 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -64,8 +64,6 @@ #include "core/UBApplication.h" #include "core/UBTextTools.h" -#include "document/UBDocumentContainer.h" - #include "pdf/PDFRenderer.h" #include "core/memcheck.h" diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index cf84fdd1..b889c96b 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -485,11 +485,14 @@ void UBBoardController::addScene(UBGraphicsScene* scene, bool replaceActiveIfEmp QString source = scene->document()->persistencePath() + "/" + relativeFile.toString(); QString target = selectedDocument()->persistencePath() + "/" + relativeFile.toString(); - QFileInfo fi(target); - QDir d = fi.dir(); - - d.mkpath(d.absolutePath()); - QFile::copy(source, target); + if(QFileInfo(source).isDir()) + Q_ASSERT(UBFileSystemUtils::copyDir(source,target)); + else{ + QFileInfo fi(target); + QDir d = fi.dir(); + d.mkpath(d.absolutePath()); + Q_ASSERT(QFile::copy(source, target)); + } } } diff --git a/src/document/UBDocumentContainer.h b/src/document/UBDocumentContainer.h index 681fdae3..056cbc01 100644 --- a/src/document/UBDocumentContainer.h +++ b/src/document/UBDocumentContainer.h @@ -41,8 +41,8 @@ class UBDocumentContainer : public QObject int pageCount(){return mDocumentThumbs.size();} const QPixmap* pageAt(int index){return mDocumentThumbs[index];} - static int pageFromSceneIndex(int sceneIndex); - static int sceneIndexFromPage(int sceneIndex); + static int pageFromSceneIndex(int sceneIndex); + static int sceneIndexFromPage(int sceneIndex); void duplicatePages(QList& pageIndexes); bool movePageToIndex(int source, int target); @@ -51,15 +51,17 @@ class UBDocumentContainer : public QObject void updatePage(int index); void addEmptyThumbPage(); + void insertThumbPage(int index); + + private: UBDocumentProxy* mCurrentDocument; QList mDocumentThumbs; - + protected: void deleteThumbPage(int index); void updateThumbPage(int index); - void insertThumbPage(int index); void reloadThumbnails(); signals: diff --git a/src/gui/UBDocumentNavigator.cpp b/src/gui/UBDocumentNavigator.cpp index 1756b2b5..4f489ad6 100644 --- a/src/gui/UBDocumentNavigator.cpp +++ b/src/gui/UBDocumentNavigator.cpp @@ -85,7 +85,6 @@ UBDocumentNavigator::~UBDocumentNavigator() void UBDocumentNavigator::generateThumbnails(UBDocumentContainer* source) { mThumbsWithLabels.clear(); -// foreach(QGraphicsItem* it, mScene->items()) int selectedIndex = -1; QList graphicsItemList = mScene->items(); for(int i = 0; i < graphicsItemList.size(); i+=1) @@ -100,6 +99,11 @@ void UBDocumentNavigator::generateThumbnails(UBDocumentContainer* source) for(int i = 0; i < source->selectedDocument()->pageCount(); i++) { + //claudio This is a very bad hack and shows a architectural problem + // source->selectedDocument()->pageCount() != source->pageCount() + if(i>=source->pageCount()) + source->insertThumbPage(i); + const QPixmap* pix = source->pageAt(i); Q_ASSERT(!pix->isNull()); int pageIndex = UBDocumentContainer::pageFromSceneIndex(i); diff --git a/src/gui/UBDocumentTreeWidget.cpp b/src/gui/UBDocumentTreeWidget.cpp index 6c1409f6..4843ae55 100644 --- a/src/gui/UBDocumentTreeWidget.cpp +++ b/src/gui/UBDocumentTreeWidget.cpp @@ -24,6 +24,7 @@ #include "UBDocumentTreeWidget.h" #include "document/UBDocumentProxy.h" +//#include "document/UBDocumentContainer.h" #include "core/UBSettings.h" #include "core/UBApplication.h" @@ -326,11 +327,14 @@ void UBDocumentTreeWidget::dropEvent(QDropEvent *event) QString source = scene->document()->persistencePath() + "/" + relativeFile.toString(); QString target = targetDocProxy->persistencePath() + "/" + relativeFile.toString(); - QFileInfo fi(target); - QDir d = fi.dir(); - - d.mkpath(d.absolutePath()); - QFile::copy(source, target); + if(QFileInfo(source).isDir()) + Q_ASSERT(UBFileSystemUtils::copyDir(source,target)); + else{ + QFileInfo fi(target); + QDir d = fi.dir(); + d.mkpath(d.absolutePath()); + Q_ASSERT(QFile::copy(source, target)); + } } UBPersistenceManager::persistenceManager()->insertDocumentSceneAt(targetDocProxy, sceneClone, targetDocProxy->pageCount()); diff --git a/src/gui/UBPageNavigationWidget.cpp b/src/gui/UBPageNavigationWidget.cpp index eca3c674..4b22cc5f 100644 --- a/src/gui/UBPageNavigationWidget.cpp +++ b/src/gui/UBPageNavigationWidget.cpp @@ -25,9 +25,6 @@ #include "core/UBApplication.h" #include "board/UBBoardController.h" - -#include "document/UBDocumentContainer.h" - #include "globals/UBGlobals.h" #include "core/memcheck.h"