@@ -84,6 +84,14 @@
[pageNum$]="pageNum$"
[getPage]="getPageFn">
+
+
+
diff --git a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts
index edc3a1ad4..54f22e1dc 100644
--- a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts
+++ b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts
@@ -32,6 +32,7 @@ import { DoubleReverseRendererComponent } from '../double-reverse-renderer/doubl
import { SingleRendererComponent } from '../single-renderer/single-renderer.component';
import { ChapterInfo } from '../../_models/chapter-info';
import { SwipeEvent } from 'ng-swipe';
+import { DoubleNoCoverRendererComponent } from '../double-renderer-no-cover/double-no-cover-renderer.component';
const PREFETCH_PAGES = 10;
@@ -96,6 +97,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
@ViewChild(SingleRendererComponent, { static: false }) singleRenderer!: SingleRendererComponent;
@ViewChild(DoubleRendererComponent, { static: false }) doubleRenderer!: DoubleRendererComponent;
@ViewChild(DoubleReverseRendererComponent, { static: false }) doubleReverseRenderer!: DoubleReverseRendererComponent;
+ @ViewChild(DoubleNoCoverRendererComponent, { static: false }) doubleNoCoverRenderer!: DoubleNoCoverRendererComponent;
libraryId!: number;
@@ -1127,8 +1129,10 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
this.pagingDirectionSubject.next(PAGING_DIRECTION.FORWARD);
const pageAmount = Math.max(this.canvasRenderer.getPageAmount(PAGING_DIRECTION.FORWARD), this.singleRenderer.getPageAmount(PAGING_DIRECTION.FORWARD),
- this.doubleRenderer.getPageAmount(PAGING_DIRECTION.FORWARD),
- this.doubleReverseRenderer.getPageAmount(PAGING_DIRECTION.FORWARD));
+ this.doubleRenderer.getPageAmount(PAGING_DIRECTION.FORWARD),
+ this.doubleReverseRenderer.getPageAmount(PAGING_DIRECTION.FORWARD),
+ this.doubleNoCoverRenderer.getPageAmount(PAGING_DIRECTION.FORWARD)
+ );
const notInSplit = this.canvasRenderer.shouldMovePrev();
if ((this.pageNum + pageAmount >= this.maxPages && notInSplit)) {
@@ -1153,9 +1157,11 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
const pageAmount = Math.max(this.canvasRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS),
- this.singleRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS),
- this.doubleRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS),
- this.doubleReverseRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS));
+ this.singleRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS),
+ this.doubleRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS),
+ this.doubleNoCoverRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS),
+ this.doubleReverseRenderer.getPageAmount(PAGING_DIRECTION.BACKWARDS)
+ );
const notInSplit = this.canvasRenderer.shouldMovePrev();
@@ -1257,6 +1263,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
this.canvasRenderer?.renderPage(page);
this.singleRenderer?.renderPage(page);
this.doubleRenderer?.renderPage(page);
+ this.doubleNoCoverRenderer?.renderPage(page);
this.doubleReverseRenderer?.renderPage(page);
// Originally this was only for fit to height, but when swiping was introduced, it made more sense to do it always to reset to the same view
@@ -1558,7 +1565,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
const pageNum = this.pageNum;
const isDouble = Math.max(this.canvasRenderer.getBookmarkPageCount(), this.singleRenderer.getBookmarkPageCount(),
- this.doubleRenderer.getBookmarkPageCount(), this.doubleReverseRenderer.getBookmarkPageCount()) > 1;
+ this.doubleRenderer.getBookmarkPageCount(), this.doubleReverseRenderer.getBookmarkPageCount(), this.doubleNoCoverRenderer.getBookmarkPageCount()) > 1;
if (this.CurrentPageBookmarked) {
let apis = [this.readerService.unbookmark(this.seriesId, this.volumeId, this.chapterId, pageNum)];
diff --git a/UI/Web/src/app/manga-reader/_models/layout-mode.ts b/UI/Web/src/app/manga-reader/_models/layout-mode.ts
index 75887f2a2..466fca1ab 100644
--- a/UI/Web/src/app/manga-reader/_models/layout-mode.ts
+++ b/UI/Web/src/app/manga-reader/_models/layout-mode.ts
@@ -13,5 +13,10 @@ export enum LayoutMode {
/**
* Renders 2 pages side by side on the renderer. Cover images will not split and take up both panes. This version reverses the order and is used for Manga only
*/
- DoubleReversed = 3
+ DoubleReversed = 3,
+ /**
+ * Renders 2 pages side by side on the renderer. Cover images will split.
+ */
+ DoubleNoCover = 4,
+
}
\ No newline at end of file
diff --git a/UI/Web/src/app/manga-reader/_pipes/layout-mode-icon.pipe.ts b/UI/Web/src/app/manga-reader/_pipes/layout-mode-icon.pipe.ts
index 26f43dfee..14f344450 100644
--- a/UI/Web/src/app/manga-reader/_pipes/layout-mode-icon.pipe.ts
+++ b/UI/Web/src/app/manga-reader/_pipes/layout-mode-icon.pipe.ts
@@ -14,6 +14,8 @@ export class LayoutModeIconPipe implements PipeTransform {
return 'double';
case LayoutMode.DoubleReversed:
return 'double-reversed';
+ case LayoutMode.DoubleNoCover:
+ return 'double'; // TODO: Validate
}
}
diff --git a/UI/Web/src/app/manga-reader/manga-reader.module.ts b/UI/Web/src/app/manga-reader/manga-reader.module.ts
index e2934eac9..c9e8320cd 100644
--- a/UI/Web/src/app/manga-reader/manga-reader.module.ts
+++ b/UI/Web/src/app/manga-reader/manga-reader.module.ts
@@ -18,6 +18,7 @@ import { DoubleReverseRendererComponent } from './_components/double-reverse-ren
import { MangaReaderComponent } from './_components/manga-reader/manga-reader.component';
import { FittingIconPipe } from './_pipes/fitting-icon.pipe';
import { SwipeModule } from 'ng-swipe';
+import { DoubleNoCoverRendererComponent } from './_components/double-renderer-no-cover/double-no-cover-renderer.component';
@NgModule({
declarations: [
@@ -31,6 +32,7 @@ import { SwipeModule } from 'ng-swipe';
DoubleRendererComponent,
DoubleReverseRendererComponent,
FittingIconPipe,
+ DoubleNoCoverRendererComponent,
],
imports: [
CommonModule,