From 334cbeb3f268b55071a6243e3af91ab81de4646a Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 1 Jul 2007 16:23:08 +0200 Subject: [PATCH] Pass ImlibImageLists over to the view --- src/comicmain.cpp | 6 +++--- src/imgview.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/imgview.h | 2 ++ 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/comicmain.cpp b/src/comicmain.cpp index 5a35d77..078346d 100644 --- a/src/comicmain.cpp +++ b/src/comicmain.cpp @@ -939,18 +939,18 @@ void ComicMainWindow::jumpToStrip(int n, ImlibImageList *list, bool twoPages) img2 = list[1].at(0); if (mangaModeAction->isOn()) { - view->setImage(img2, img1, preserveangle); + view->setImage(list[1], list[0], preserveangle); statusbar->setImageInfo(img2, img1); } else { - view->setImage(img1, img2, preserveangle); + view->setImage(list[0], list[1], preserveangle); statusbar->setImageInfo(img1, img2); } } else { - view->setImage(img1, preserveangle); + view->setImage(list[0], preserveangle); statusbar->setImageInfo(img1); } if (mangaModeAction->isOn()) diff --git a/src/imgview.cpp b/src/imgview.cpp index 7c2d739..2d8c959 100644 --- a/src/imgview.cpp +++ b/src/imgview.cpp @@ -174,6 +174,25 @@ void ComicImageView::setImage(ImlibImage *img, bool preserveangle) repaintContents(0, 0 , viewport()->width(), viewport()->height()); } +void ComicImageView::setImage(ImlibImageList &imglist, bool preserveangle) +{ + if (!preserveangle) + iangle = 0; + + orgimage[0].clear(); + orgimage[1].clear(); + + orgimage[0] = imglist; + + if (iangle != 0 && !orgimage[0].isEmpty()) + orgimage[0].current()->rotate(iangle); + + updateImageSize(); + ensureVisible(1, 1); + + repaintContents(0, 0 , viewport()->width(), viewport()->height()); +} + void ComicImageView::setImage(ImlibImage *img1, ImlibImage *img2, bool preserveangle) { if (!preserveangle) @@ -199,6 +218,31 @@ void ComicImageView::setImage(ImlibImage *img1, ImlibImage *img2, bool preservea repaintContents(0, 0 , viewport()->width(), viewport()->height()); } +void ComicImageView::setImage(ImlibImageList &imglist1, ImlibImageList &imglist2, bool preserveangle) +{ + if (!preserveangle) + iangle = 0; + + orgimage[0].clear(); + orgimage[1].clear(); + + orgimage[0] = imglist1; + orgimage[1] = imglist2; + + if (iangle != 0) + { + if (!orgimage[0].isEmpty()) + orgimage[0].current()->rotate(iangle); + if (!orgimage[1].isEmpty()) + orgimage[1].current()->rotate(iangle); + } + + updateImageSize(); + ensureVisible(1, 1); + + repaintContents(0, 0 , viewport()->width(), viewport()->height()); +} + void ComicImageView::resizeEvent(QResizeEvent *e) { QScrollView::resizeEvent(e); diff --git a/src/imgview.h b/src/imgview.h index 5d9d93d..71d2023 100644 --- a/src/imgview.h +++ b/src/imgview.h @@ -70,7 +70,9 @@ namespace QComicBook public slots: void setImage(ImlibImage *img, bool preserveangle=false); + void setImage(ImlibImageList &imglist, bool preserveangle=false); void setImage(ImlibImage *img1, ImlibImage *img2, bool preserveangle=false); + void setImage(ImlibImageList &imglist1, ImlibImageList &imglist2, bool preserveangle=false); //void setScaling(Scaling s); void setRotation(Rotation r); void setSize(Size s); -- 2.32.0.93.g670b81a890