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 {