digiKam
Loading...
Searching...
No Matches
graphicsdimgview.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 : Graphics View for DImg preview
8 *
9 * SPDX-FileCopyrightText: 2010-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2011-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QGraphicsView>
21
22// Local includes
23
24#include "digikam_export.h"
25
26namespace Digikam
27{
28
29class GraphicsDImgItem;
30class DImgPreviewItem;
31class SinglePhotoPreviewLayout;
32
33class DIGIKAM_EXPORT GraphicsDImgView : public QGraphicsView
34{
35 Q_OBJECT
36
37public:
38
39 explicit GraphicsDImgView(QWidget* const parent = nullptr);
40 ~GraphicsDImgView() override;
41
47 void setItem(GraphicsDImgItem* const item);
48
52 GraphicsDImgItem* item() const;
53
58 DImgPreviewItem* previewItem() const;
59
60 SinglePhotoPreviewLayout* layout() const;
61
68 void scrollPointOnPoint(const QPointF& scenePos, const QPoint& viewportPos);
69
70 // Change from protected to public to be used by ImageRegionWidget and ImageRegionItem
71 void drawText(QPainter* p, const QRectF& rect, const QString& text);
72
73 int contentsX() const;
74 int contentsY() const;
75 QRect visibleArea() const;
76 void setContentsPos(int x, int y);
77 void fitToWindow();
78 void toggleFullScreen(bool set);
79
80Q_SIGNALS:
81
82 void contentsMoving(int, int);
86 void activated();
89 void contentsMoved(bool panningFinished);
90 void resized();
91/*
92 void contentTakeFocus();
93*/
94 void viewportRectChanged(const QRectF& viewportRect);
95
96protected:
97
98 void drawForeground(QPainter* painter, const QRectF& rect) override;
99
100 void installPanIcon();
101
102 void mouseDoubleClickEvent(QMouseEvent*) override;
103 void mousePressEvent(QMouseEvent*) override;
104 void mouseMoveEvent(QMouseEvent*) override;
105 void mouseReleaseEvent(QMouseEvent*) override;
106 void wheelEvent(QWheelEvent*) override;
107 void resizeEvent(QResizeEvent*) override;
108
109 void startPanning(const QPoint& pos);
110 void continuePanning(const QPoint& pos);
111 void finishPanning();
112
113 void setShowText(bool value);
114 void setScaleFitToWindow(bool value);
115
116 virtual bool acceptsMouseClick(QMouseEvent* e);
117 void scrollContentsBy(int dx, int dy) override;
118
119protected Q_SLOTS:
120
121 void slotContentsMoved();
122 void slotCornerButtonPressed();
123 void slotPanIconHidden();
124
125 virtual void slotPanIconSelectionMoved(const QRect&, bool);
126
127private:
128
129 class Private;
130 Private* const d = nullptr;
131};
132
133} // namespace Digikam
Definition dimgitems_p.h:93
Definition dimgitems_p.h:73
Definition graphicsdimgview.h:34
void contentsMoving(int, int)
void viewportRectChanged(const QRectF &viewportRect)
void contentsMoved(bool panningFinished)
Definition previewlayout.h:34
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34