1 // vim: set tabstop=4 shiftwidth=4 expandtab:
2 /*
3 Gwenview: an image viewer
4 Copyright 2008 Aurélien Gâteau <agateau@kde.org>
5
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License
8 as published by the Free Software Foundation; either version 2
9 of the License, or (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA.
19
20 */
21 // Self
22 #include "rasterimageviewadapter.h"
23
24 // Local
25 #include <lib/document/documentfactory.h>
26 #include <lib/documentview/rasterimageview.h>
27 #include <lib/gwenviewconfig.h>
28
29 #include "alphabackgrounditem.h"
30
31 // KF
32
33 // Qt
34 #include <QUrl>
35
36 namespace Gwenview
37 {
38 //// RasterImageViewAdapter ////
39 struct RasterImageViewAdapterPrivate {
40 RasterImageViewAdapter *q;
41 RasterImageView *mView;
42 };
43
RasterImageViewAdapter()44 RasterImageViewAdapter::RasterImageViewAdapter()
45 : d(new RasterImageViewAdapterPrivate)
46 {
47 d->q = this;
48 d->mView = new RasterImageView;
49 connect(d->mView, &RasterImageView::zoomChanged, this, &RasterImageViewAdapter::zoomChanged);
50 connect(d->mView, &RasterImageView::zoomToFitChanged, this, &RasterImageViewAdapter::zoomToFitChanged);
51 connect(d->mView, &RasterImageView::zoomToFillChanged, this, &RasterImageViewAdapter::zoomToFillChanged);
52 connect(d->mView, &RasterImageView::zoomInRequested, this, &RasterImageViewAdapter::zoomInRequested);
53 connect(d->mView, &RasterImageView::zoomOutRequested, this, &RasterImageViewAdapter::zoomOutRequested);
54 connect(d->mView, &RasterImageView::scrollPosChanged, this, &RasterImageViewAdapter::scrollPosChanged);
55 connect(d->mView, &RasterImageView::completed, this, &RasterImageViewAdapter::completed);
56 connect(d->mView, &RasterImageView::previousImageRequested, this, &RasterImageViewAdapter::previousImageRequested);
57 connect(d->mView, &RasterImageView::nextImageRequested, this, &RasterImageViewAdapter::nextImageRequested);
58 connect(d->mView, &RasterImageView::toggleFullScreenRequested, this, &RasterImageViewAdapter::toggleFullScreenRequested);
59 setWidget(d->mView);
60 }
61
~RasterImageViewAdapter()62 RasterImageViewAdapter::~RasterImageViewAdapter()
63 {
64 delete d;
65 }
66
cursor() const67 QCursor RasterImageViewAdapter::cursor() const
68 {
69 return d->mView->cursor();
70 }
71
setCursor(const QCursor & cursor)72 void RasterImageViewAdapter::setCursor(const QCursor &cursor)
73 {
74 d->mView->setCursor(cursor);
75 }
76
setDocument(const Document::Ptr & doc)77 void RasterImageViewAdapter::setDocument(const Document::Ptr &doc)
78 {
79 d->mView->setDocument(doc);
80
81 connect(doc.data(), &Document::loadingFailed, this, &RasterImageViewAdapter::slotLoadingFailed);
82 if (doc->loadingState() == Document::LoadingFailed) {
83 slotLoadingFailed();
84 }
85 }
86
zoom() const87 qreal RasterImageViewAdapter::zoom() const
88 {
89 return d->mView->zoom();
90 }
91
setZoomToFit(bool on)92 void RasterImageViewAdapter::setZoomToFit(bool on)
93 {
94 d->mView->setZoomToFit(on);
95 }
96
setZoomToFill(bool on,const QPointF & center)97 void RasterImageViewAdapter::setZoomToFill(bool on, const QPointF ¢er)
98 {
99 d->mView->setZoomToFill(on, center);
100 }
101
zoomToFit() const102 bool RasterImageViewAdapter::zoomToFit() const
103 {
104 return d->mView->zoomToFit();
105 }
106
zoomToFill() const107 bool RasterImageViewAdapter::zoomToFill() const
108 {
109 return d->mView->zoomToFill();
110 }
111
setZoom(qreal zoom,const QPointF & center)112 void RasterImageViewAdapter::setZoom(qreal zoom, const QPointF ¢er)
113 {
114 d->mView->setZoom(zoom, center);
115 }
116
computeZoomToFit() const117 qreal RasterImageViewAdapter::computeZoomToFit() const
118 {
119 return d->mView->computeZoomToFit();
120 }
121
computeZoomToFill() const122 qreal RasterImageViewAdapter::computeZoomToFill() const
123 {
124 return d->mView->computeZoomToFill();
125 }
126
document() const127 Document::Ptr RasterImageViewAdapter::document() const
128 {
129 return d->mView->document();
130 }
131
slotLoadingFailed()132 void RasterImageViewAdapter::slotLoadingFailed()
133 {
134 d->mView->setDocument(Document::Ptr());
135 }
136
loadConfig()137 void RasterImageViewAdapter::loadConfig()
138 {
139 d->mView->backgroundItem()->setMode(GwenviewConfig::alphaBackgroundMode());
140 d->mView->backgroundItem()->setColor(GwenviewConfig::alphaBackgroundColor());
141 d->mView->setRenderingIntent(GwenviewConfig::renderingIntent());
142 d->mView->setEnlargeSmallerImages(GwenviewConfig::enlargeSmallerImages());
143 d->mView->resetMonitorICC();
144 }
145
rasterImageView() const146 RasterImageView *RasterImageViewAdapter::rasterImageView() const
147 {
148 return d->mView;
149 }
150
imageView() const151 AbstractImageView *RasterImageViewAdapter::imageView() const
152 {
153 return d->mView;
154 }
155
scrollPos() const156 QPointF RasterImageViewAdapter::scrollPos() const
157 {
158 return d->mView->scrollPos();
159 }
160
setScrollPos(const QPointF & pos)161 void RasterImageViewAdapter::setScrollPos(const QPointF &pos)
162 {
163 d->mView->setScrollPos(pos);
164 }
165
visibleDocumentRect() const166 QRectF RasterImageViewAdapter::visibleDocumentRect() const
167 {
168 return QRectF(d->mView->imageOffset(), d->mView->visibleImageSize());
169 }
170
171 } // namespace
172