File indexing completed on 2024-05-12 04:19:40

0001 // vim: set tabstop=4 shiftwidth=4 expandtab:
0002 /*
0003 Gwenview: an image viewer
0004 Copyright 2008 Aurélien Gâteau <agateau@kde.org>
0005 
0006 This program is free software; you can redistribute it and/or
0007 modify it under the terms of the GNU General Public License
0008 as published by the Free Software Foundation; either version 2
0009 of the License, or (at your option) any later version.
0010 
0011 This program is distributed in the hope that it will be useful,
0012 but WITHOUT ANY WARRANTY; without even the implied warranty of
0013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014 GNU General Public License for more details.
0015 
0016 You should have received a copy of the GNU General Public License
0017 along with this program; if not, write to the Free Software
0018 Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA.
0019 
0020 */
0021 #ifndef RASTERIMAGEVIEWADAPTER_H
0022 #define RASTERIMAGEVIEWADAPTER_H
0023 
0024 #include <lib/gwenviewlib_export.h>
0025 
0026 // Qt
0027 
0028 // KF
0029 
0030 // Local
0031 #include <lib/documentview/abstractdocumentviewadapter.h>
0032 
0033 namespace Gwenview
0034 {
0035 struct RasterImageViewAdapterPrivate;
0036 class GWENVIEWLIB_EXPORT RasterImageViewAdapter : public AbstractDocumentViewAdapter
0037 {
0038     Q_OBJECT
0039 public:
0040     RasterImageViewAdapter();
0041     ~RasterImageViewAdapter() override;
0042 
0043     QCursor cursor() const override;
0044 
0045     void setCursor(const QCursor &) override;
0046 
0047     MimeTypeUtils::Kind kind() const override
0048     {
0049         return MimeTypeUtils::KIND_RASTER_IMAGE;
0050     }
0051 
0052     bool canZoom() const override
0053     {
0054         return true;
0055     }
0056 
0057     void setZoomToFit(bool) override;
0058 
0059     void setZoomToFill(bool on, const QPointF &center) override;
0060 
0061     bool zoomToFit() const override;
0062 
0063     bool zoomToFill() const override;
0064 
0065     qreal zoom() const override;
0066 
0067     void setZoom(qreal zoom, const QPointF &center) override;
0068 
0069     qreal computeZoomToFit() const override;
0070 
0071     qreal computeZoomToFill() const override;
0072 
0073     Document::Ptr document() const override;
0074 
0075     void setDocument(const Document::Ptr &) override;
0076 
0077     void loadConfig() override;
0078 
0079     RasterImageView *rasterImageView() const override;
0080     AbstractImageView *imageView() const override;
0081 
0082     QPointF scrollPos() const override;
0083     void setScrollPos(const QPointF &pos) override;
0084 
0085     QRectF visibleDocumentRect() const override;
0086 
0087 private Q_SLOTS:
0088     void slotLoadingFailed();
0089 
0090 private:
0091     RasterImageViewAdapterPrivate *const d;
0092 };
0093 
0094 } // namespace
0095 
0096 #endif /* RASTERIMAGEVIEWADAPTER_H */