digiKam
Loading...
Searching...
No Matches
ditemtooltip.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 : 2008-12-10
7 * Description : tool tip widget for iconview, thumbbar, and folderview items
8 *
9 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QFont>
20#include <QLabel>
21#include <QResizeEvent>
22#include <QString>
23#include <QImage>
24#include <QEvent>
25#include <QFontDatabase>
26
27// Local includes
28
29#include "digikam_export.h"
30
31namespace Digikam
32{
33
34class DIGIKAM_EXPORT DToolTipStyleSheet
35{
36
37public:
38
39 explicit DToolTipStyleSheet(const QFont& font = QFontDatabase::systemFont(QFontDatabase::GeneralFont));
40
41 QString breakString(const QString& input) const;
42 QString elidedText(const QString& input, Qt::TextElideMode mode) const;
43 QString imageAsBase64(const QImage& img) const;
44
45public:
46
47 const int maxStringLength;
48
49 QString unavailable;
50 QString tipHeader;
51 QString tipFooter;
52 QString headBeg;
53 QString headEnd;
54 QString cellBeg;
55 QString cellMid;
56 QString cellEnd;
57 QString cellSpecBeg;
58 QString cellSpecMid;
59 QString cellSpecEnd;
60};
61
62// --------------------------------------------------------------------------------------
63
64class DIGIKAM_EXPORT DItemToolTip : public QLabel
65{
66 Q_OBJECT
67
68public:
69
70 explicit DItemToolTip(QWidget* const parent = nullptr);
71 ~DItemToolTip() override;
72
73protected:
74
75 bool event(QEvent*) override;
76 void resizeEvent(QResizeEvent*) override;
77 void paintEvent(QPaintEvent*) override;
78 void updateToolTip();
79 bool toolTipIsEmpty() const;
80 void reposition();
81 void renderArrows();
82
83protected:
84
85 virtual QRect repositionRect() = 0;
86 virtual QString tipContents() = 0;
87
88private:
89
90 class Private;
91 Private* const d = nullptr;
92};
93
94} // namespace Digikam
Definition ditemtooltip.h:65
virtual QString tipContents()=0
virtual QRect repositionRect()=0
Definition ditemtooltip.h:35
QString headEnd
Definition ditemtooltip.h:53
QString unavailable
Definition ditemtooltip.h:49
QString cellEnd
Definition ditemtooltip.h:56
QString tipFooter
Definition ditemtooltip.h:51
QString headBeg
Definition ditemtooltip.h:52
QString cellSpecEnd
Definition ditemtooltip.h:59
QString cellSpecBeg
Definition ditemtooltip.h:57
QString cellBeg
Definition ditemtooltip.h:54
const int maxStringLength
Definition ditemtooltip.h:47
QString cellSpecMid
Definition ditemtooltip.h:58
QString tipHeader
Definition ditemtooltip.h:50
QString cellMid
Definition ditemtooltip.h:55
Definition datefolderview.cpp:34