diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 483fbbac..59dab28a 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -1057,3 +1057,8 @@ QRect UBBoardPaletteManager::GetFreeRectGlobalCoords() const } return QRect(topLeft, bottomRight); } + +void UBBoardPaletteManager::ForceTeacherBarToSaveData() +{ + mpTeacherBarWidget->saveContent(); +} diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h index 0dc4c2f9..0d2f238d 100644 --- a/src/board/UBBoardPaletteManager.h +++ b/src/board/UBBoardPaletteManager.h @@ -66,6 +66,7 @@ class UBBoardPaletteManager : public QObject void startDownloads(); void stopDownloads(); QRect GetFreeRectGlobalCoords() const; + void ForceTeacherBarToSaveData(); signals: void connectToDocController(); diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index 7ee43999..9c5a7c76 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -534,7 +534,10 @@ void UBDocumentController::duplicateSelectedItem() if (UBApplication::applicationController->displayMode() != UBApplicationController::Document) return; - if (mSelectionType == Page) + UBBoardPaletteManager* paletteMan = UBApplication::boardController->paletteManager(); + //necessary to save active scene teacher bar data, if the scene didn't happen to be changed + if(paletteMan) paletteMan->ForceTeacherBarToSaveData(); + if (mSelectionType == Page) { QList selectedItems = mDocumentUI->thumbnailWidget->selectedItems(); QList selectedSceneIndexes; diff --git a/src/gui/UBTeacherBarWidget.h b/src/gui/UBTeacherBarWidget.h index a021027f..b4a8c0ce 100644 --- a/src/gui/UBTeacherBarWidget.h +++ b/src/gui/UBTeacherBarWidget.h @@ -46,9 +46,10 @@ public: UBTeacherBarWidget(QWidget* parent=0, const char* name="UBTeacherBarWidget"); ~UBTeacherBarWidget(); -private slots: +public slots: void saveContent(); void loadContent(); +private slots: void onValueChanged(); void onTitleTextChanged(const QString& text); void onEquipmentTextChanged(const QString& text);