Merge pull request #19372 from Snuffleupagus/mainHighlightColorPicker-toolbar-init
[GENERIC viewer] Re-initialize the viewer-toolbar `ColorPicker` for each PDF document
This commit is contained in:
commit
30fa7c3d84
@ -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;
|
||||
|
||||
@ -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,
|
||||
@ -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",
|
||||
@ -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:
|
||||
@ -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;
|
||||
|
||||
@ -44,6 +44,8 @@ import {
|
||||
*/
|
||||
|
||||
class Toolbar {
|
||||
#colorPicker = null;
|
||||
|
||||
#opts;
|
||||
|
||||
/**
|
||||
@ -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;
|
||||
@ -164,6 +160,7 @@ class Toolbar {
|
||||
}
|
||||
|
||||
reset() {
|
||||
this.#colorPicker = null;
|
||||
this.pageNumber = 0;
|
||||
this.pageLabel = null;
|
||||
this.hasPageLabels = false;
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user