digiKam
Loading...
Searching...
No Matches
graphicsdimgitem.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 item for DImg
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 <QtGlobal>
21#include <QGraphicsObject>
22#include <QObject>
23
24// Local includes
25
26#include "digikam_export.h"
27
28namespace Digikam
29{
30
31class DImg;
32class ImageZoomSettings;
33
34class DIGIKAM_EXPORT GraphicsDImgItem : public QGraphicsObject
35{
36 Q_OBJECT
37
38public:
39
40 explicit GraphicsDImgItem(QGraphicsItem* const parent = nullptr);
41 ~GraphicsDImgItem() override;
42
47 void setImage(const DImg& img);
48 DImg image() const;
49
52
53 void setDisplayWidget(QWidget* const widget);
54
55 void sizeHasChanged();
56 void clearCache();
57
58 QRectF boundingRect() const override;
59 void paint(QPainter* painter,
60 const QStyleOptionGraphicsItem* option,
61 QWidget* widget) override;
62
63 virtual QString userLoadingHint() const
64 {
65 return QString();
66 }
67
68Q_SIGNALS:
69
70 void showContextMenu(QGraphicsSceneContextMenuEvent* e);
72 void imageSizeChanged(const QSizeF& size);
73
74protected:
75
76 void contextMenuEvent(QGraphicsSceneContextMenuEvent* e) override;
77
78public:
79
80 // Declared public because of DImgPreviewItemPrivate.
81 class GraphicsDImgItemPrivate;
82
83protected:
84
85 GraphicsDImgItem(GraphicsDImgItemPrivate& dd, QGraphicsItem* const parent);
86 GraphicsDImgItemPrivate* const d_ptr;
87
88protected:
89
90 Q_DECLARE_PRIVATE(GraphicsDImgItem)
91
92private:
93
94 // Disable
95 GraphicsDImgItem(QObject*);
96};
97
98} // namespace Digikam
Definition dimg.h:52
Definition dimgitems_p.h:73
const ImageZoomSettings * zoomSettings() const
void imageSizeChanged(const QSizeF &size)
virtual QString userLoadingHint() const
Definition graphicsdimgitem.h:63
GraphicsDImgItemPrivate *const d_ptr
Definition graphicsdimgitem.h:86
ImageZoomSettings * zoomSettings()
void showContextMenu(QGraphicsSceneContextMenuEvent *e)
Definition imagezoomsettings.h:32
Definition datefolderview.cpp:34