digiKam
Loading...
Searching...
No Matches
previewlayout.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2010-04-30
7 * Description : Layout for an item on image preview
8 *
9 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QFlags>
20#include <QObject>
21#include <QPointF>
22
23// Local includes
24
25#include "digikam_export.h"
26
27namespace Digikam
28{
29
30class GraphicsDImgItem;
31class GraphicsDImgView;
32
33class DIGIKAM_EXPORT SinglePhotoPreviewLayout : public QObject
34{
35 Q_OBJECT
36
37public:
38
40 {
41 JustSetFactor = 0,
42 CenterView = 1 << 0,
43 SnapZoomFactor = 1 << 1
44 };
45 Q_DECLARE_FLAGS(SetZoomFlags, SetZoomFlag)
46
47public:
48
49 explicit SinglePhotoPreviewLayout(QObject* const parent);
51
55 void setGraphicsView(GraphicsDImgView* const view);
56
60 void setScaleFitToWindow(bool value);
61
66 void addItem(GraphicsDImgItem* const item);
67
68 bool isFitToWindow() const;
69 double zoomFactor() const;
70 double realZoomFactor() const;
71
75 double maxZoomFactor() const;
76 double minZoomFactor() const;
77 void setMaxZoomFactor(double z);
78 void setMinZoomFactor(double z);
79 bool atMaxZoom() const;
80 bool atMinZoom() const;
81
82Q_SIGNALS:
83
84 void fitToWindowToggled(bool fitToWindow);
85 void zoomFactorChanged(double);
86
87public Q_SLOTS:
88
89 void increaseZoom(const QPoint& viewportAnchor = QPoint());
90 void decreaseZoom(const QPoint& viewportAnchor = QPoint());
91 void setZoomFactor(double z, const QPoint& viewportAnchor = QPoint(), SetZoomFlags flags = JustSetFactor);
92 void setZoomFactor(double z, SetZoomFlags flags);
93 void setZoomFactorSnapped(double z);
94 void fitToWindow();
95
97 void toggleFitToWindow();
98
100 void toggleFitToWindowOr100();
101
103 void updateZoomAndSize();
104
105protected:
106
107 void updateLayout();
108
109private:
110
111 SinglePhotoPreviewLayout(); // Disable default constructor.
112
113 class Private;
114 Private* const d = nullptr;
115};
116
117Q_DECLARE_OPERATORS_FOR_FLAGS(SinglePhotoPreviewLayout::SetZoomFlags)
118
119} // namespace Digikam
Definition dimgitems_p.h:73
Definition graphicsdimgview.h:34
Definition previewlayout.h:34
void fitToWindowToggled(bool fitToWindow)
SetZoomFlag
Definition previewlayout.h:40
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34