From 8db82c10224c2d2f911f98cb578ad8f4377cc14f Mon Sep 17 00:00:00 2001 From: Martynas Bagdonas Date: Thu, 6 Oct 2022 18:00:32 +0300 Subject: [PATCH] Don't allow to rotate or delete pages for read-only PDF (cherry picked from commit 29dd0cf5dc0244331f868d47eb34f311d546fe84) --- chrome/content/zotero/xpcom/reader.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/chrome/content/zotero/xpcom/reader.js b/chrome/content/zotero/xpcom/reader.js index 505ea89894..9b36b56ab9 100644 --- a/chrome/content/zotero/xpcom/reader.js +++ b/chrome/content/zotero/xpcom/reader.js @@ -899,6 +899,7 @@ class ReaderInstance { // Rotate Left menuitem = this._window.document.createElement('menuitem'); menuitem.setAttribute('label', Zotero.getString('pdfReader.rotateLeft')); + menuitem.setAttribute('disabled', this._isReadOnly()); menuitem.addEventListener('command', async () => { this._postMessage({ action: 'reloading' }); await Zotero.PDFWorker.rotatePages(this._itemID, data.pageIndexes, 270, true); @@ -908,6 +909,7 @@ class ReaderInstance { // Rotate Right menuitem = this._window.document.createElement('menuitem'); menuitem.setAttribute('label', Zotero.getString('pdfReader.rotateRight')); + menuitem.setAttribute('disabled', this._isReadOnly()); menuitem.addEventListener('command', async () => { this._postMessage({ action: 'reloading' }); await Zotero.PDFWorker.rotatePages(this._itemID, data.pageIndexes, 90, true); @@ -917,6 +919,7 @@ class ReaderInstance { // Rotate 180 menuitem = this._window.document.createElement('menuitem'); menuitem.setAttribute('label', Zotero.getString('pdfReader.rotate180')); + menuitem.setAttribute('disabled', this._isReadOnly()); menuitem.addEventListener('command', async () => { this._postMessage({ action: 'reloading' }); await Zotero.PDFWorker.rotatePages(this._itemID, data.pageIndexes, 180, true); @@ -928,6 +931,7 @@ class ReaderInstance { // Delete menuitem = this._window.document.createElement('menuitem'); menuitem.setAttribute('label', Zotero.getString('general.delete')); + menuitem.setAttribute('disabled', this._isReadOnly()); menuitem.addEventListener('command', async () => { if (this.promptToDeletePages(data.pageIndexes.length)) { this._postMessage({ action: 'reloading' });