QQuickImageProvider for ForkAwesome
0.3.4
QQuickImageProvider for ForkAwesome
Toggle main menu visibility
Loading...
Searching...
No Matches
imageprovider.cpp
Go to the documentation of this file.
1
#include "
./imageprovider.h
"
2
3
#include <qtforkawesome/renderer.h>
4
#include <qtforkawesome/utils.h>
5
6
#include <QGuiApplication>
7
#include <QPalette>
8
9
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
// could be QT_VERSION < QT_VERSION_CHECK(5, 15, 2)
10
#define USE_COMPAT_SPLIT_REF
11
#include <qtutilities/misc/compat.h>
12
#endif
13
15
namespace
QtForkAwesome
{
16
17
QuickImageProvider::QuickImageProvider
(
18
const
Renderer &renderer,
const
QColor &
defaultColor
,
const
QSize &
defaultSize
, QQuickImageProvider::ImageType type)
19
: QQuickImageProvider(type)
20
, m_renderer(renderer)
21
, m_defaultColor(
defaultColor
)
22
, m_defaultSize(
defaultSize
)
23
{
24
}
25
26
QPixmap
QuickImageProvider::requestPixmap
(
const
QString &
id
, QSize *size,
const
QSize &requestedSize)
27
{
28
#ifndef USE_COMPAT_SPLIT_REF
29
const
auto
parts = QStringView(
id
).split(QChar(
':'
));
30
#else
31
const
auto
parts = QtUtilities::splitRef(
id
, QChar(
':'
));
32
#endif
33
if
(parts.empty()) {
34
return
QPixmap();
35
}
36
#ifndef USE_COMPAT_SPLIT_REF
37
const
auto
icon = iconFromId(parts.front());
38
#else
39
const
auto
icon = iconFromId(parts.front().toString());
40
#endif
41
if
(!isIconValid(icon)) {
42
return
QPixmap();
43
}
44
auto
color = m_defaultColor;
45
if
(parts.size() > 1) {
46
#ifndef USE_COMPAT_SPLIT_REF
47
if
(
const
auto
specifiedColor = QColor(parts.at(1)); specifiedColor.isValid()) {
48
#else
49
if
(
const
auto
specifiedColor = QColor(parts.at(1).toString()); specifiedColor.isValid()) {
50
#endif
51
color = specifiedColor;
52
}
53
}
54
if
(!color.isValid()) {
55
color = QGuiApplication::palette().color(QPalette::Normal, QPalette::Text);
56
}
57
const
auto
renderSize = requestedSize.isValid() ? requestedSize : m_defaultSize;
58
const
auto
scaleFactor = requestedSize.isValid() ? 1.0 : 0.0;
59
if
(size) {
60
*size = renderSize;
61
}
62
return
m_renderer.pixmap(icon, renderSize, color, scaleFactor);
63
}
64
65
QImage
QuickImageProvider::requestImage
(
const
QString &
id
, QSize *size,
const
QSize &requestedSize)
66
{
67
return
requestPixmap
(
id
, size, requestedSize).toImage();
68
}
69
70
}
// namespace QtForkAwesome
QtForkAwesome::QuickImageProvider::defaultColor
QColor defaultColor
Definition
imageprovider.h:20
QtForkAwesome::QuickImageProvider::defaultSize
QSize defaultSize
Definition
imageprovider.h:21
QtForkAwesome::QuickImageProvider::QuickImageProvider
QuickImageProvider(const Renderer &renderer, const QColor &defaultColor=QColor(), const QSize &defaultSize=QSize(64, 64), QQuickImageProvider::ImageType type=QQuickImageProvider::Pixmap)
Definition
imageprovider.cpp:17
QtForkAwesome::QuickImageProvider::requestPixmap
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override
Definition
imageprovider.cpp:26
QtForkAwesome::QuickImageProvider::requestImage
QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override
Definition
imageprovider.cpp:65
imageprovider.h
QtForkAwesome
Contains classes provided by the QtForkAwesome library.
Definition
imageprovider.h:13
Generated on
for QQuickImageProvider for ForkAwesome by
1.18.0