From 2c1a2c953dc9b8d69b1c09c945fe824a838ca24f Mon Sep 17 00:00:00 2001 From: -f Date: Thu, 12 Dec 2013 13:54:44 +0100 Subject: [PATCH] object selection on board remain unchanged after an automatic saving --- src/board/UBBoardController.cpp | 7 +++---- src/board/UBBoardController.h | 2 +- src/core/UBPersistenceManager.cpp | 5 +++-- src/core/UBPersistenceManager.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 5d3a9a0c..3a186c71 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -397,12 +397,11 @@ void UBBoardController::stopScript() void UBBoardController::saveData(SaveFlags fls) { bool verbose = fls | sf_showProgress; - if (verbose) { UBApplication::showMessage("Saving document..."); } if (mActiveScene && mActiveScene->isModified()) { - persistCurrentScene(); + persistCurrentScene(true); } if (verbose) { UBApplication::showMessage("Document has just been saved..."); @@ -1891,14 +1890,14 @@ void UBBoardController::show() UBApplication::mainWindow->actionLibrary->setChecked(false); } -void UBBoardController::persistCurrentScene() +void UBBoardController::persistCurrentScene(bool isAnAutomaticBackup) { if(UBPersistenceManager::persistenceManager() && selectedDocument() && mActiveScene && mActiveSceneIndex != mDeletingSceneIndex && (mActiveSceneIndex >= 0) && mActiveSceneIndex != mMovingSceneIndex && (mActiveScene->isModified())) { - UBPersistenceManager::persistenceManager()->persistDocumentScene(selectedDocument(), mActiveScene, mActiveSceneIndex); + UBPersistenceManager::persistenceManager()->persistDocumentScene(selectedDocument(), mActiveScene, mActiveSceneIndex, isAnAutomaticBackup); updatePage(mActiveSceneIndex); } } diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index b346cb45..d539eb88 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -156,7 +156,7 @@ class UBBoardController : public UBDocumentContainer return mSystemScaleFactor; } qreal currentZoom(); - void persistCurrentScene(); + void persistCurrentScene(bool isAnAutomaticBackup = false); void showNewVersionAvailable(bool automatic, const UBVersion &installedVersion, const UBSoftwareUpdate &softwareUpdate); void setBoxing(QRect displayRect); void setToolbarTexts(); diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index 5887d0f4..12c4eba0 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -665,11 +665,12 @@ UBGraphicsScene* UBPersistenceManager::loadDocumentScene(UBDocumentProxy* proxy, } } -void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex) +void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex, bool isAnAutomaticBackup) { checkIfDocumentRepositoryExists(); - pScene->deselectAllItems(); + if(!isAnAutomaticBackup) + pScene->deselectAllItems(); generatePathIfNeeded(pDocumentProxy); diff --git a/src/core/UBPersistenceManager.h b/src/core/UBPersistenceManager.h index acb2c260..8336e302 100644 --- a/src/core/UBPersistenceManager.h +++ b/src/core/UBPersistenceManager.h @@ -73,7 +73,7 @@ class UBPersistenceManager : public QObject virtual void duplicateDocumentScene(UBDocumentProxy* pDocumentProxy, int index); virtual void persistDocumentScene(UBDocumentProxy* pDocumentProxy, - UBGraphicsScene* pScene, const int pSceneIndex); + UBGraphicsScene* pScene, const int pSceneIndex, bool isAnAutomaticBackup = false); virtual UBGraphicsScene* createDocumentSceneAt(UBDocumentProxy* pDocumentProxy, int index, bool useUndoRedoStack = true);