From 8f89a16c80dec8e0730223bfde99ff9fdf8836f2 Mon Sep 17 00:00:00 2001 From: Lucas Miranda Date: Wed, 19 Nov 2025 17:12:14 -0300 Subject: [PATCH 1/3] FIX: annotations now load consistently --- TutorialMaker/Lib/TutorialGUI.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/TutorialMaker/Lib/TutorialGUI.py b/TutorialMaker/Lib/TutorialGUI.py index b87a288..1038152 100644 --- a/TutorialMaker/Lib/TutorialGUI.py +++ b/TutorialMaker/Lib/TutorialGUI.py @@ -357,6 +357,10 @@ def openAnnotationsAsJSON(self): if not os.path.exists(jsonPath): return + self.selectedAnnotator = None + self.selectedAnnotation = None + self.selectedIndexes = [0, 0] + [tInfo, tSlides, tPaths] = AnnotatedTutorial.LoadAnnotatedTutorial(jsonPath) for step in self.steps: self.gridLayout.removeWidget(step) @@ -394,6 +398,12 @@ def openAnnotationsAsJSON(self): self._regenerateCoverPixmap() self._regenerateAcknowledgmentPixmap() + + if len(self.steps) > 0 and len(self.steps[0].Slides) > 0: + self.changeSelectedSlide(0, 0) + else: + self.slideTitleWidget.setText("") + self.slideBodyWidget.setText("") @@ -551,21 +561,15 @@ def changeSelectedSlide(self, stepId, screenshotId): self.selectedSlide.setPixmap(selectedScreenshot.GetResized(*self.selectedSlideSize, keepAspectRatio=True)) self.selectedAnnotator = selectedScreenshot - # Load text from slideAnnotator - self.slideTitleWidget.setText(self.selectedAnnotator.SlideTitle) - self.slideBodyWidget.setText(self.selectedAnnotator.SlideBody) - - # Bind editors depending on layout layout = getattr(selectedScreenshot, "SlideLayout", "") + self._unbindEditorsFromCover() + self._unbindEditorsFromAcknowledgment() + if layout == "CoverPage": self._bindEditorsToCover() - self._unbindEditorsFromAcknowledgment() elif layout == "Acknowledgment": self._bindEditorsToAcknowledgment() - self._unbindEditorsFromCover() else: - self._unbindEditorsFromCover() - self._unbindEditorsFromAcknowledgment() self.slideTitleWidget.setText(self.selectedAnnotator.SlideTitle) self.slideBodyWidget.setText(self.selectedAnnotator.SlideBody) From cca4331f747e4b5ca8f13148b75c636a721fd890 Mon Sep 17 00:00:00 2001 From: Lucas Miranda Date: Wed, 19 Nov 2025 17:13:41 -0300 Subject: [PATCH 2/3] FIX: loads first slide --- TutorialMaker/Lib/TutorialGUI.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TutorialMaker/Lib/TutorialGUI.py b/TutorialMaker/Lib/TutorialGUI.py index 1038152..9402e9a 100644 --- a/TutorialMaker/Lib/TutorialGUI.py +++ b/TutorialMaker/Lib/TutorialGUI.py @@ -530,6 +530,9 @@ def loadImagesAndMetadata(self, tutorialData): if acknowledgments_pm is not None: self.addBlankPage(False, len(self.steps), "", type_="Acknowledgment", pixmap=acknowledgments_pm) self.ackStepIndex = len(self.steps) - 1 + + if len(self.steps) > 0 and len(self.steps[0].Slides) > 0: + self.changeSelectedSlide(0, 0) pass def swapStepPosition(self, index, swapTo): From 8957218aeb5f9ead98b9d8784044f9f762b6364f Mon Sep 17 00:00:00 2001 From: Lucas Miranda Date: Wed, 19 Nov 2025 17:27:21 -0300 Subject: [PATCH 3/3] FIX: last selected nows saves --- TutorialMaker/Lib/TutorialGUI.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TutorialMaker/Lib/TutorialGUI.py b/TutorialMaker/Lib/TutorialGUI.py index 9402e9a..e4f3ae3 100644 --- a/TutorialMaker/Lib/TutorialGUI.py +++ b/TutorialMaker/Lib/TutorialGUI.py @@ -409,6 +409,11 @@ def openAnnotationsAsJSON(self): def saveAnnotationsAsJSON(self): import re + + if self.selectedAnnotator is not None: + self.selectedAnnotator.SlideTitle = self.slideTitleWidget.text + self.selectedAnnotator.SlideBody = self.slideBodyWidget.toPlainText() + outputFileAnnotations = {**self.tutorialInfo} outputFileTextDict = {} outputFileOld = []