diff --git a/examples b/examples index 7eed76f27..b23bf53eb 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit 7eed76f2748aa05dceace56c70200efa74e2f9de +Subproject commit b23bf53ebe4430556d6c3387d7453076d35ddfd4 diff --git a/src/extensions/uv-seadragon-extension/DownloadDialogue.ts b/src/extensions/uv-seadragon-extension/DownloadDialogue.ts index fa5708f2e..b18ec1477 100644 --- a/src/extensions/uv-seadragon-extension/DownloadDialogue.ts +++ b/src/extensions/uv-seadragon-extension/DownloadDialogue.ts @@ -336,7 +336,17 @@ export class DownloadDialogue extends BaseDownloadDialogue { this.$selectionButton.hide(); } - this.resetDynamicDownloadOptions(); + this.resetDynamicDownloadOptions(); // todo: not very nice + + if (this.isDownloadOptionAvailable(DownloadOption.rangeRendering)) { + + if (canvas.ranges && canvas.ranges.length) { + for (let i = 0; i < canvas.ranges.length; i++) { + const range: Manifesto.IRange = canvas.ranges[i]; + this.addDownloadOptionsForRenderings(range, this.content.entireFileAsOriginal, DownloadOption.dynamicCanvasRenderings); + } + } + } if (this.isDownloadOptionAvailable(DownloadOption.dynamicImageRenderings)) { const images: Manifesto.IAnnotation[] = canvas.getImages(); @@ -620,6 +630,12 @@ export class DownloadDialogue extends BaseDownloadDialogue { return (!(this.extension).isPagingSettingEnabled() && (size.width > this.options.confinedImageSize)); case DownloadOption.selection: return this.options.selectionEnabled; + case DownloadOption.rangeRendering: + if (canvas.ranges.length) { + const range: Manifesto.IRange = canvas.ranges[0]; + return range.getRenderings().length > 0; + } + return false; default: return super.isDownloadOptionAvailable(option); } diff --git a/src/modules/uv-shared-module/DownloadOption.ts b/src/modules/uv-shared-module/DownloadOption.ts index 024e13215..96d4e43dd 100644 --- a/src/modules/uv-shared-module/DownloadOption.ts +++ b/src/modules/uv-shared-module/DownloadOption.ts @@ -4,10 +4,11 @@ export class DownloadOption { static dynamicImageRenderings = new DownloadOption("dynamicImageRenderings"); static dynamicSequenceRenderings = new DownloadOption("dynamicSequenceRenderings"); static entireFileAsOriginal = new DownloadOption("entireFileAsOriginal"); + static rangeRendering = new DownloadOption("rangeRendering"); static selection = new DownloadOption("selection"); static wholeImageHighRes = new DownloadOption("wholeImageHighRes"); - static wholeImagesHighRes = new DownloadOption("wholeImagesHighRes"); static wholeImageLowResAsJpg = new DownloadOption("wholeImageLowResAsJpg"); + static wholeImagesHighRes = new DownloadOption("wholeImagesHighRes"); constructor(public value: string) { }