From c5155aee56de637557942ebd2ba7971e8743cf24 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 25 Jan 2012 16:04:42 +0300 Subject: [PATCH] Fix for a document's page duplication. Teacher bar's info wasn't quite correct. This is also related to ticket #409 part 2. --- src/board/UBBoardPaletteManager.cpp | 5 +++++ src/board/UBBoardPaletteManager.h | 1 + src/core/UBPersistenceManager.cpp | 8 ++++++-- src/document/UBDocumentController.cpp | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 59dab28a..74259da3 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -1062,3 +1062,8 @@ void UBBoardPaletteManager::ForceTeacherBarToSaveData() { mpTeacherBarWidget->saveContent(); } + +void UBBoardPaletteManager::ForceTeacherBarToLoadData() +{ + mpTeacherBarWidget->loadContent(); +} diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h index 0d2f238d..a2b06554 100644 --- a/src/board/UBBoardPaletteManager.h +++ b/src/board/UBBoardPaletteManager.h @@ -67,6 +67,7 @@ class UBBoardPaletteManager : public QObject void stopDownloads(); QRect GetFreeRectGlobalCoords() const; void ForceTeacherBarToSaveData(); + void ForceTeacherBarToLoadData(); signals: void connectToDocController(); diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index cb58ace4..a4e44b29 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -488,8 +488,12 @@ void UBPersistenceManager::duplicateDocumentScene(UBDocumentProxy* proxy, int in proxy->incPageCount(); - emit documentSceneCreated(proxy, index + 1); - + //due to architectural peculiarity we need to save teacher bar info, otherwise we'll see not exactly what we expect + sTeacherBarInfos properInfo = getTeacherBarInfos(proxy, index + 1); + //after the call below + emit documentSceneCreated(proxy, index + 1); + //restoring info + persistTeacherBar(proxy, index + 1, properInfo); } diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index 9c5a7c76..fa8d6066 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -574,6 +574,8 @@ void UBDocumentController::duplicateSelectedItem() UBMetadataDcSubsetAdaptor::persist(proxy); mDocumentUI->thumbnailWidget->selectItemAt(selectedSceneIndexes.last() + offset); } + //necessary due to architectural peculiarities + if(paletteMan) paletteMan->ForceTeacherBarToLoadData(); } else {