10#ifndef THEME_PREVIEW_PICK_H
11#define THEME_PREVIEW_PICK_H
16#include <QCoreApplication>
57 enum class Role { Text, Background, Border };
61 ThemeManager::ThemeToken token = ThemeManager::NoRole;
62 Role role = Role::Background;
66 using TokenMap = QHash<ThemeManager::ThemeToken, ThemeColorPair>;
100 static QFont
keyFont(
const QFont &font);
108 static QImage
keyCanvas(
const QSize &size);
119 static void paintKeyGlyph(QPainter *painter,
const QString &svg_path,
const QRect &rect,
120 ThemeManager::ThemeToken token);
132 static Layer layerAt(
const QImage &keys,
const QPoint &pos,
int text_height);
141 static QList<Layer>
layersAt(
const QImage &keys,
const QPoint &pos,
int text_height);
155 static void saveImage(QWidget *source,
const QString &suggested_name,
156 const std::function<
void()> &dialog_closed);
225 QList<ThemePreviewPick::Layer>
layersAt(
const QPoint &pos);
234 bool hover(
const QPoint &pos);
241 const QImage &keyImage();
246 bool enabled_ =
false;
248 bool hover_token_ =
false;
Definition theme_preview_pick.h:53
static void paintKeyGlyph(QPainter *painter, const QString &svg_path, const QRect &rect, ThemeManager::ThemeToken token)
Definition theme_preview_pick.cpp:422
static QString roleName(const Layer &layer)
Definition theme_preview_pick.cpp:498
static TokenMap keyTokens()
Definition theme_preview_pick.cpp:377
static Layer decode(QRgb rgb)
Definition theme_preview_pick.cpp:359
static QFont keyFont(const QFont &font)
Definition theme_preview_pick.cpp:408
Role
Definition theme_preview_pick.h:57
static QPalette keyPalette()
Definition theme_preview_pick.cpp:391
static QColor keyColor(int key)
Definition theme_preview_pick.cpp:353
static constexpr int kLinkKey
Definition theme_preview_pick.h:72
static QList< Layer > layersAt(const QImage &keys, const QPoint &pos, int text_height)
Definition theme_preview_pick.cpp:448
static void saveImage(QWidget *source, const QString &suggested_name, const std::function< void()> &dialog_closed)
Definition theme_preview_pick.cpp:513
static QImage keyCanvas(const QSize &size)
Definition theme_preview_pick.cpp:415
static Layer layerAt(const QImage &keys, const QPoint &pos, int text_height)
Definition theme_preview_pick.cpp:436
Definition theme_preview_pick.h:171
bool isEnabled() const
Definition theme_preview_pick.h:203
ThemePreviewPick::Layer layerAt(const QPoint &pos)
Definition theme_preview_pick.cpp:587
std::function< int()> TextHeight
Definition theme_preview_pick.h:176
void setEnabled(bool enabled)
Definition theme_preview_pick.cpp:548
void resetHover()
Definition theme_preview_pick.cpp:572
std::function< QImage()> Render
Definition theme_preview_pick.h:174
QList< ThemePreviewPick::Layer > layersAt(const QPoint &pos)
Definition theme_preview_pick.cpp:597
bool hover(const QPoint &pos)
Definition theme_preview_pick.cpp:605
std::function< void(const ThemePreviewPick::Layer &layer, const QPoint &global_pos)> HoverChanged
Definition theme_preview_pick.h:187
void setHoverChanged(HoverChanged hover_changed)
Definition theme_preview_pick.cpp:567
void invalidate()
Definition theme_preview_pick.cpp:561
ThemePreviewPicker(QWidget *owner, Render render, TextHeight text_height)
Definition theme_preview_pick.cpp:541
bool isPickClick(const QMouseEvent *event) const
Definition theme_preview_pick.cpp:625
Definition theme_preview_pick.h:60
bool link
Painted with QPalette::Link, which follows token.
Definition theme_preview_pick.h:63