Skip to content

Commit

Permalink
Merge pull request #19372 from Snuffleupagus/mainHighlightColorPicker…
Browse files Browse the repository at this point in the history
…-toolbar-init

[GENERIC viewer] Re-initialize the viewer-toolbar `ColorPicker` for each PDF document
  • Loading branch information
Snuffleupagus authored Jan 23, 2025
2 parents 2132552 + 342b5e2 commit 30fa7c3
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 20 deletions.
2 changes: 2 additions & 0 deletions src/display/editor/tools.js
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,8 @@ class AnnotationEditorUIManager {
this.#altTextManager?.destroy();
this.#highlightToolbar?.hide();
this.#highlightToolbar = null;
this.#mainHighlightColorPicker?.destroy();
this.#mainHighlightColorPicker = null;
if (this.#focusMainContainerTimeoutId) {
clearTimeout(this.#focusMainContainerTimeoutId);
this.#focusMainContainerTimeoutId = null;
Expand Down
14 changes: 11 additions & 3 deletions web/annotation_editor_params.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ class AnnotationEditorParams {
editorFreeHighlightThickness,
editorHighlightShowAll,
}) {
const { eventBus } = this;

const dispatchEvent = (typeStr, value) => {
this.eventBus.dispatch("switchannotationeditorparams", {
eventBus.dispatch("switchannotationeditorparams", {
source: this,
type: AnnotationEditorParamsType[typeStr],
value,
Expand All @@ -75,7 +77,7 @@ class AnnotationEditorParams {
dispatchEvent("INK_OPACITY", this.valueAsNumber);
});
editorStampAddImage.addEventListener("click", () => {
this.eventBus.dispatch("reporttelemetry", {
eventBus.dispatch("reporttelemetry", {
source: this,
details: {
type: "editing",
Expand All @@ -93,7 +95,7 @@ class AnnotationEditorParams {
dispatchEvent("HIGHLIGHT_SHOW_ALL", !checked);
});

this.eventBus._on("annotationeditorparamschanged", evt => {
eventBus._on("annotationeditorparamschanged", evt => {
for (const [type, value] of evt.details) {
switch (type) {
case AnnotationEditorParamsType.FREETEXT_SIZE:
Expand All @@ -111,6 +113,12 @@ class AnnotationEditorParams {
case AnnotationEditorParamsType.INK_OPACITY:
editorInkOpacity.value = value;
break;
case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:
eventBus.dispatch("mainhighlightcolorpickerupdatecolor", {
source: this,
value,
});
break;
case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:
editorFreeHighlightThickness.value = value;
break;
Expand Down
29 changes: 12 additions & 17 deletions web/toolbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ import {
*/

class Toolbar {
#colorPicker = null;

#opts;

/**
Expand Down Expand Up @@ -139,12 +141,6 @@ class Toolbar {
document.documentElement.setAttribute("data-toolbar-density", name);
}

#setAnnotationEditorUIManager(uiManager, parentContainer) {
const colorPicker = new ColorPicker({ uiManager });
uiManager.setMainHighlightColorPicker(colorPicker);
parentContainer.append(colorPicker.renderMainDropdown());
}

setPageNumber(pageNumber, pageLabel) {
this.pageNumber = pageNumber;
this.pageLabel = pageLabel;
Expand All @@ -164,6 +160,7 @@ class Toolbar {
}

reset() {
this.#colorPicker = null;
this.pageNumber = 0;
this.pageLabel = null;
this.hasPageLabels = false;
Expand Down Expand Up @@ -255,17 +252,15 @@ class Toolbar {
eventBus._on("toolbardensity", this.#updateToolbarDensity.bind(this));

if (editorHighlightColorPicker) {
eventBus._on(
"annotationeditoruimanager",
({ uiManager }) => {
this.#setAnnotationEditorUIManager(
uiManager,
editorHighlightColorPicker
);
},
// Once the color picker has been added, we don't want to add it again.
{ once: true }
);
eventBus._on("annotationeditoruimanager", ({ uiManager }) => {
const cp = (this.#colorPicker = new ColorPicker({ uiManager }));
uiManager.setMainHighlightColorPicker(cp);
editorHighlightColorPicker.append(cp.renderMainDropdown());
});

eventBus._on("mainhighlightcolorpickerupdatecolor", ({ value }) => {
this.#colorPicker?.updateColor(value);
});
}
}

Expand Down

0 comments on commit 30fa7c3

Please sign in to comment.