Release Shakeout (#1340)

* Fixed a bug where analyze series would not force a re-analysis. Fixed a bug where if files weren't changed since last analysis, then series word count got reset to 0.

* Fixed epub images not loading in detail drawer

* Fixed a bug on double page layout where the reader would be wonky when moving to and from mobile layout.

* package-lock.json updated

* Cleaned up some wording

* Moved a conditional on jump bar

* Bugfix for Double Page Rendering skipping pages (#1339)

* Bump versions by dotnet-bump-version.

* Double (Manga) fixes

. Fixed: *ngIf condition, last page loading Double
. Added: isLoose, pageAmount, and CanvasImageNextDouble to keep track of double sequence breaks (nn/n/w)
. Fixed: ShouldRenderReverseDouble and pageAmount conditions
. Added: Setting isLoose on loadPage()
. Added: canvasImageNextDouble in loadPage()

Co-authored-by: majora2007 <josephmajora@gmail.com>

* Added comments for Magunjun's PR.

Co-authored-by: Marcelo Guimarães Junior <75567460+magujun@users.noreply.github.com>
This commit is contained in:
Joseph Milazzo 2022-06-28 17:40:06 -05:00 committed by GitHub
parent 3c44d48e70
commit 4fd4ca6f07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 220 additions and 18701 deletions

View file

@ -68,7 +68,7 @@
<img #image [src]="canvasImage.src" id="image-1"
class="{{getFittingOptionClass()}} {{readerMode === ReaderMode.LeftRight || readerMode === ReaderMode.UpDown ? '' : 'd-none'}} {{showClickOverlay ? 'blur' : ''}}">
<ng-container *ngIf="(ShouldRenderDoublePage || ShouldRenderReverseDouble) && (this.pageNum + 1 <= maxPages - 1 && this.pageNum > 0)">
<ng-container *ngIf="(ShouldRenderDoublePage || ShouldRenderReverseDouble) && (this.pageNum <= maxPages - 1 && this.pageNum > 0)">
<img [src]="canvasImage2.src" id="image-2" class="image-2 {{getFittingOptionClass()}} {{readerMode === ReaderMode.LeftRight || readerMode === ReaderMode.UpDown ? '' : 'd-none'}} {{showClickOverlay ? 'blur' : ''}} {{ShouldRenderReverseDouble ? 'reverse' : ''}}">
</ng-container>
</div>

View file

@ -114,6 +114,15 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
isLoading = true;
/**
* A temp variable to allow us to update isLoose.
*/
pageAmount = 0;
/**
* For double page layout, if only one page will be rendered.
*/
isLoose = false;
@ViewChild('reader') reader!: ElementRef;
@ViewChild('readingArea') readingArea!: ElementRef;
@ViewChild('content') canvas: ElementRef | undefined;
@ -128,13 +137,17 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
*/
canvasImage2 = new Image();
/**
* * * Used solely for LayoutMode.Double rendering. Will always hold the previous image in buffer.
* Used solely for LayoutMode.Double rendering. Will always hold the previous image in buffer.
*/
canvasImagePrev = new Image();
/**
* * * Used solely for LayoutMode.Double rendering. Will always hold the next image in buffer.
* Used solely for LayoutMode.Double rendering. Will always hold the next image in buffer.
*/
canvasImageNext = new Image();
/**
* Used solely for LayoutMode.DoubleReverse rendering. Will always hold the image after next in buffer.
*/
canvasImageNextDouble = new Image();
/**
* Dictates if we use render with canvas or with image. This is only for Splitting.
*/
@ -285,9 +298,8 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
get ShouldRenderDoublePage() {
return (
this.layoutMode !== LayoutMode.Single &&
this.layoutMode === LayoutMode.Double &&
!this.isCoverImage() &&
!this.isWideImage(this.canvasImage) &&
!this.isWideImage(this.canvasImageNext) &&
window.innerWidth > window.innerHeight // Don't render double if orientation is portrait, mostly mobile
@ -298,18 +310,25 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
return (
this.layoutMode === LayoutMode.DoubleReversed &&
!this.isCoverImage() &&
!this.isCoverImage(this.pageNum - 1) &&
!this.isWideImage(this.canvasImage) &&
!this.isWideImage(this.canvasImageNext) &&
!this.isLoose &&
window.innerWidth > window.innerHeight // Don't render double reversed if orientation is portrait, mostly mobile
);
}
@HostListener('window:resize', ['$event'])
@HostListener('window:orientationchange', ['$event'])
onResize() {
onResize() {
if (window.innerWidth > window.innerHeight) {
this.generalSettingsForm.get('layoutMode')?.enable();
return;
};
if (this.layoutMode === LayoutMode.Single || this.readerMode === ReaderMode.Webtoon) return;
if (window.innerWidth > window.innerHeight) return;
this.generalSettingsForm.get('layoutMode')?.setValue(LayoutMode.Single);
this.generalSettingsForm.get('layoutMode')?.disable();
this.toastr.info('Layout mode switched to Single due to insufficient space to render double layout');
}
@ -955,6 +974,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
pageAmount = (
!this.isCoverImage(this.pageNum - 1) &&
!this.isWideImage(this.canvasImagePrev) &&
!this.isWideImage(this.canvasImageNextDouble) &&
!this.isSecondLastImage() &&
!this.isLastImage()
? 2 : 1);
@ -972,6 +992,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
this.pagingDirection = PAGING_DIRECTION.FORWARD;
if (this.isNoSplit() || notInSplit) {
this.setPageNum(this.pageNum + pageAmount);
this.pageAmount = pageAmount;
if (this.readerMode !== ReaderMode.Webtoon) {
this.canvasImage.src = this.getPageUrl(this.pageNum);
@ -1002,7 +1023,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
pageAmount = (
!this.isCoverImage() &&
!this.isCoverImage(this.pageNum - 1) &&
!this.isWideImage() &&
!this.isWideImage(this.canvasImage) &&
!this.isWideImage(this.canvasImageNext)
? 2 : 1);
}
@ -1233,11 +1254,13 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
loadPage() {
this.isLoading = true;
this.canvasImage2.src = '';
this.isLoose = (this.pageAmount === 1 ? true : false);
this.canvasImage.src = this.getPageUrl(this.pageNum);
if (this.layoutMode !== LayoutMode.Single) {
this.canvasImagePrev.src = this.getPageUrl(this.pageNum + (this.layoutMode !== LayoutMode.DoubleReversed ? - 1 : + 1));
this.canvasImageNext.src = this.getPageUrl(this.pageNum + (this.layoutMode !== LayoutMode.DoubleReversed ? + 1 : - 1));
this.canvasImageNextDouble.src = this.getPageUrl(this.pageNum + 2);
if (this.ShouldRenderDoublePage || this.ShouldRenderReverseDouble) {
this.canvasImage2.src = this.canvasImageNext.src;
}