From 205fe4d015fa2d8054c6a3babab1b0731936fdf0 Mon Sep 17 00:00:00 2001 From: TBthegr81 Date: Thu, 21 Feb 2019 20:21:14 +0100 Subject: [PATCH 1/3] If page-width is greater than page-height, cuts the page into two halves. For use when comic-reader forces 2-page view only --- source/comicReader.js | 58 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/source/comicReader.js b/source/comicReader.js index 63ad608..17005a3 100644 --- a/source/comicReader.js +++ b/source/comicReader.js @@ -79,7 +79,7 @@ getSettings(function() { if(start) { if(start.download) { renderFaviconPercentage(0); - + loadComic(function(err) { port.send({ what: "message_to_opener", @@ -541,7 +541,7 @@ function setupSelectors() { // run a DOM scan to analyse how the reader DOM tree } // download the opened comic. a callback and a step function can be used. -function loadComic(callback, step, metaData) { +function loadComic(callback, step, metaData) { throttleBlocker(); addTopBar(); overlay.style.display = "block"; @@ -652,6 +652,26 @@ function loadComic(callback, step, metaData) { if(settings.container == 2) downloadData(getName() + "/" + result.name, page, true); + var floatingPerc = (pos + 1) / l, + perc = Math.round(floatingPerc * 100); + div.getElementsByTagName("span")[0].innerHTML = perc; + renderFaviconPercentage(floatingPerc); + step(perc); + interval(); + }); + }, + function(page) { + port.send({ + what: "add_page", + page: (settings.container != 2 ? page : null), + i: pos-1, + len: numLength, + extension: (settings.page ? "png" : "jpeg"), + toZip: (settings.container != 2) + }, function(result) { + if(settings.container == 2) + downloadData(getName() + "/" + result.name, page, true); + var floatingPerc = (pos + 1) / l, perc = Math.round(floatingPerc * 100); div.getElementsByTagName("span")[0].innerHTML = perc; @@ -831,7 +851,7 @@ function pageLoaded(callback) { } // get data URL of the currently opened page in the reader (async! result is given to callback) -function getOpenedPage(callback) { +function getOpenedPage(callback, callback2) { pageLoaded(function() { var view = dom.getCanvasContainer(), canvasOnThisPage = dom.canvasElements; @@ -841,15 +861,39 @@ function getOpenedPage(callback) { outCanvas = document.createElement('canvas'), ctx = outCanvas.getContext('2d'), canvas, data; - outCanvas.width = w; - outCanvas.height = h; + outCanvas.width = w; + outCanvas.height = h; + + if(w > h) { + var outCanvas2 = document.createElement('canvas'), + ctx2 = outCanvas2.getContext('2d'); + outCanvas.width = w/2; + outCanvas2.width = w/2; + outCanvas2.height = h; + } + for(var i = 0; i < canvasOnThisPage.length; i++) { canvas = canvasOnThisPage[i]; - ctx.drawImage(canvas, parseInt(canvas.style.left) || 0, parseInt(canvas.style.top) || 0, parseInt(canvas.style.width) || 0, parseInt(canvas.style.height) || 0); + if(w > h) { + ctx.drawImage(canvas, 0, 0, w/2, h, 0, 0, w/2, h); + ctx2.drawImage(canvas, w/2, 0 , w/2, h, 0, 0, w/2, h); + } + else { + ctx.drawImage(canvas, parseInt(canvas.style.left) || 0, parseInt(canvas.style.top) || 0, parseInt(canvas.style.width) || 0, parseInt(canvas.style.height) || 0); + } } data = getUsernameImage(ctx, w, h); ctx.putImageData(data, w - data.width, h - data.height); - callback(outCanvas.toDataURL("image/" + (settings.page ? "png" : "jpeg"))); + if(w > h) { + //console.log("Returning 2 pages"); + callback(outCanvas.toDataURL("image/" + (settings.page ? "png" : "jpeg"))); + callback2(outCanvas2.toDataURL("image/" + (settings.page ? "png" : "jpeg"))); + } + else { + //console.log("Returning 1 page"); + callback(outCanvas.toDataURL("image/" + (settings.page ? "png" : "jpeg")), null); + } + }); } From 199b0449d7cb684b0880e8043816713a54e87e48 Mon Sep 17 00:00:00 2001 From: hwharrison Date: Fri, 22 Feb 2019 01:48:05 -0600 Subject: [PATCH 2/3] Make splitting double pages a setting in options --- source/comicReader.js | 6 +++--- source/options/options.html | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/source/comicReader.js b/source/comicReader.js index 17005a3..7043869 100644 --- a/source/comicReader.js +++ b/source/comicReader.js @@ -864,7 +864,7 @@ function getOpenedPage(callback, callback2) { outCanvas.width = w; outCanvas.height = h; - if(w > h) { + if(settings.pageSplit && w > h) { var outCanvas2 = document.createElement('canvas'), ctx2 = outCanvas2.getContext('2d'); outCanvas.width = w/2; @@ -874,7 +874,7 @@ function getOpenedPage(callback, callback2) { for(var i = 0; i < canvasOnThisPage.length; i++) { canvas = canvasOnThisPage[i]; - if(w > h) { + if(settings.pageSplit && w > h) { ctx.drawImage(canvas, 0, 0, w/2, h, 0, 0, w/2, h); ctx2.drawImage(canvas, w/2, 0 , w/2, h, 0, 0, w/2, h); } @@ -885,7 +885,7 @@ function getOpenedPage(callback, callback2) { data = getUsernameImage(ctx, w, h); ctx.putImageData(data, w - data.width, h - data.height); - if(w > h) { + if(settings.pageSplit && w > h) { //console.log("Returning 2 pages"); callback(outCanvas.toDataURL("image/" + (settings.page ? "png" : "jpeg"))); callback2(outCanvas2.toDataURL("image/" + (settings.page ? "png" : "jpeg"))); diff --git a/source/options/options.html b/source/options/options.html index 93f506d..cb1d0ab 100644 --- a/source/options/options.html +++ b/source/options/options.html @@ -56,6 +56,10 @@

Backup behaviour

+
Split double-page spreads:

Updates

To get notifications about extension updates, you have to add an update server.

From 18a0903ca141bdad89ed3263aab229176b6167ab Mon Sep 17 00:00:00 2001 From: hwharrison Date: Fri, 22 Feb 2019 01:50:06 -0600 Subject: [PATCH 3/3] formatting fix --- source/options/options.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/options/options.html b/source/options/options.html index cb1d0ab..79f0a54 100644 --- a/source/options/options.html +++ b/source/options/options.html @@ -55,7 +55,7 @@

Backup behaviour

Favicon text color:
+
Split double-page spreads: