Merge pull request #20858 from calixteman/move_save_as_to_export_selected

Move 'Save as...' menu to 'Export selected...'
This commit is contained in:
Tim van der Meij 2026-03-13 22:04:12 +01:00 committed by GitHub
commit 820b70eb25
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 32 additions and 15 deletions

View File

@ -730,7 +730,7 @@ pdfjs-views-manager-pages-status-action-button-label = Manage
pdfjs-views-manager-pages-status-copy-button-label = Copy
pdfjs-views-manager-pages-status-cut-button-label = Cut
pdfjs-views-manager-pages-status-delete-button-label = Delete
pdfjs-views-manager-pages-status-save-as-button-label = Save as
pdfjs-views-manager-pages-status-export-selected-button-label = Export selected
# Variables:
# $count (Number) - the number of selected pages to be cut.

View File

@ -996,7 +996,7 @@ describe("Reorganize Pages View", () => {
"#viewsManagerStatusActionCopy:not(:disabled)"
);
await page.waitForSelector(
"#viewsManagerStatusActionSaveAs:not(:disabled)"
"#viewsManagerStatusActionExport:not(:disabled)"
);
await page.keyboard.press("Escape");
@ -1739,7 +1739,7 @@ describe("Reorganize Pages View", () => {
`.thumbnail:has(${getThumbnailSelector(3)}) input`
);
const handleSaveAs = await createPromise(page, resolve => {
const handleExport = await createPromise(page, resolve => {
window.PDFViewerApplication.eventBus.on(
"saveextractedpages",
({ data }) => {
@ -1752,8 +1752,8 @@ describe("Reorganize Pages View", () => {
});
await page.click("#viewsManagerStatusActionButton");
await waitAndClick(page, "#viewsManagerStatusActionSaveAs");
const pagesData = await awaitPromise(handleSaveAs);
await waitAndClick(page, "#viewsManagerStatusActionExport");
const pagesData = await awaitPromise(handleExport);
expect(pagesData)
.withContext(`In ${browserName}`)
.toEqual([

View File

@ -115,7 +115,7 @@ class PDFThumbnailViewer {
#pagesMapper = null;
#manageSaveAsButton = null;
#manageExportButton = null;
#manageDeleteButton = null;
@ -197,7 +197,14 @@ class PDFThumbnailViewer {
// this.#addFileButton = addFileButton;
if (this.#enableSplitMerge && manageMenu) {
const { button, menu, copy, cut, delete: del, saveAs } = manageMenu;
const {
button,
menu,
copy,
cut,
delete: del,
exportSelected,
} = manageMenu;
this.eventBus.on(
"pagesloaded",
() => {
@ -206,9 +213,17 @@ class PDFThumbnailViewer {
{ once: true }
);
this._manageMenu = new Menu(menu, button, [copy, cut, del, saveAs]);
this.#manageSaveAsButton = saveAs;
saveAs.addEventListener("click", this.#saveExtractedPages.bind(this));
this._manageMenu = new Menu(menu, button, [
copy,
cut,
del,
exportSelected,
]);
this.#manageExportButton = exportSelected;
exportSelected.addEventListener(
"click",
this.#saveExtractedPages.bind(this)
);
this.#manageDeleteButton = del;
del.addEventListener("click", this.#deletePages.bind(this, "delete"));
this.#manageCopyButton = copy;
@ -890,13 +905,13 @@ class PDFThumbnailViewer {
#updateMenuEntries() {
const size = this.#selectedPages?.size || 0;
this.#manageSaveAsButton.disabled = this.#manageCopyButton.disabled = !size;
this.#manageExportButton.disabled = this.#manageCopyButton.disabled = !size;
this.#manageDeleteButton.disabled = this.#manageCutButton.disabled =
!this.#canDelete();
}
#toggleMenuEntries(enable) {
this.#manageSaveAsButton.disabled =
this.#manageExportButton.disabled =
this.#manageDeleteButton.disabled =
this.#manageCopyButton.disabled =
this.#manageCutButton.disabled =

View File

@ -233,8 +233,8 @@ See https://github.com/adobe-type-tools/cmap-resources
</button>
</li>
<li>
<button id="viewsManagerStatusActionSaveAs" class="noIcon" role="menuitem" type="button" tabindex="-1" disabled>
<span data-l10n-id="pdfjs-views-manager-pages-status-save-as-button-label"></span>
<button id="viewsManagerStatusActionExport" class="noIcon" role="menuitem" type="button" tabindex="-1" disabled>
<span data-l10n-id="pdfjs-views-manager-pages-status-export-selected-button-label"></span>
</button>
</li>
</menu>

View File

@ -165,7 +165,9 @@ function getViewerConfiguration() {
copy: document.getElementById("viewsManagerStatusActionCopy"),
cut: document.getElementById("viewsManagerStatusActionCut"),
delete: document.getElementById("viewsManagerStatusActionDelete"),
saveAs: document.getElementById("viewsManagerStatusActionSaveAs"),
exportSelected: document.getElementById(
"viewsManagerStatusActionExport"
),
},
},
findBar: {