diff --git a/YACReaderLibrary/comic_flow.cpp b/YACReaderLibrary/comic_flow.cpp index 2cc4dbd2..a746ecd7 100644 --- a/YACReaderLibrary/comic_flow.cpp +++ b/YACReaderLibrary/comic_flow.cpp @@ -112,6 +112,18 @@ void ComicFlow::wheelEvent(QWheelEvent *event) event->accept(); } +void ComicFlow::insertSlide(const QString &path, int index) +{ + imageFiles.insert(index, path); + imagesLoaded.insert(index, false); + imagesSetted.insert(index, false); + + YACReaderFlow::insertSlide(index); + + resetWorkerIndex(); + preload(); +} + void ComicFlow::removeSlide(int cover) { imageFiles.removeAt(cover); diff --git a/YACReaderLibrary/comic_flow.h b/YACReaderLibrary/comic_flow.h index 2d595384..f8cc9a4d 100644 --- a/YACReaderLibrary/comic_flow.h +++ b/YACReaderLibrary/comic_flow.h @@ -24,6 +24,7 @@ public: void setImagePaths(const QStringList &paths); // bool eventFilter(QObject *target, QEvent *event); void keyPressEvent(QKeyEvent *event) override; + void insertSlide(const QString &path, int index); void removeSlide(int cover); void resortCovers(QList newOrder); diff --git a/YACReaderLibrary/comic_flow_widget.cpp b/YACReaderLibrary/comic_flow_widget.cpp index 372bb46f..95515d91 100644 --- a/YACReaderLibrary/comic_flow_widget.cpp +++ b/YACReaderLibrary/comic_flow_widget.cpp @@ -133,6 +133,11 @@ void ComicFlowWidgetSW::updateConfig(QSettings *settings) } } +void ComicFlowWidgetSW::add(const QString &path, int index) +{ + flow->insertSlide(path, index); +} + void ComicFlowWidgetSW::remove(int cover) { flow->removeSlide(cover); @@ -327,6 +332,11 @@ void ComicFlowWidgetGL::updateConfig(QSettings *settings) ; } +void ComicFlowWidgetGL::add(const QString &path, int index) +{ + flow->add(path, index); +} + void ComicFlowWidgetGL::remove(int cover) { flow->remove(cover); diff --git a/YACReaderLibrary/comic_flow_widget.h b/YACReaderLibrary/comic_flow_widget.h index 2c2c1759..ace36488 100644 --- a/YACReaderLibrary/comic_flow_widget.h +++ b/YACReaderLibrary/comic_flow_widget.h @@ -30,6 +30,7 @@ public slots: virtual void setFlowType(FlowType flowType) = 0; virtual void render() = 0; virtual void updateConfig(QSettings *settings) = 0; + virtual void add(const QString &path, int index) = 0; virtual void remove(int cover) = 0; virtual void resortCovers(QList newOrder) = 0; signals: @@ -61,6 +62,7 @@ public: void setFlowType(FlowType flowType) override; void render() override; void updateConfig(QSettings *settings) override; + void add(const QString &path, int index) override; void remove(int cover) override; void resortCovers(QList newOrder) override; @@ -101,6 +103,7 @@ public: void setFlowType(FlowType flowType) override; void render() override; void updateConfig(QSettings *settings) override; + void add(const QString &path, int index) override; void remove(int cover) override; void resortCovers(QList newOrder) override; // public slots: