48class ThemePreviewWidget :
public QWidget
52 explicit ThemePreviewWidget(QWidget *parent =
nullptr);
67 bool declaresWindow =
false);
93 bool showColoringRules()
const {
return show_coloring_rules_; }
103 void showColoringRulesChanged(
bool show);
113 const QList<ThemePreviewPick::Layer> &layers);
119 void paintEvent(QPaintEvent *evt)
override;
120 void contextMenuEvent(QContextMenuEvent *event)
override;
121 void mouseMoveEvent(QMouseEvent *event)
override;
122 void mousePressEvent(QMouseEvent *event)
override;
123 QSize minimumSizeHint()
const override;
126 QHash<ThemeManager::ThemeToken, QColor> colors_;
130 bool declaresWindow_ =
false;
134 bool show_coloring_rules_ =
false;
137 bool has_preview_fonts_ =
false;
138 QFont preview_regular_font_;
139 QFont preview_mono_font_;
144 QHash<QString, QPair<QColor, QColor>> ruleColors_;
147 std::unique_ptr<ThemePreviewWidget> pick_probe_;
149 bool key_render_ =
false;
155 QImage renderPickImage();
158 QPair<QFont, QFont> resolvedFonts()
const;
161 int pickTextHeight()
const;
169 QColor c(ThemeManager::ThemeToken token,
170 const QColor &fallback = QColor())
const;
176 QPalette previewPalette()
const;
195 QFontMetricsF labelFm;
196 QFontMetricsF monoFm;
213 struct WindowChrome {
214 QPainterPath framePath;
223 Layout buildLayout(
const QRect &content)
const;
232 WindowChrome paintWindowChrome(QPainter &p,
const QRect &outer,
233 const QColor &window,
234 const NativeTitleBar::Style &titleBar);
242 void drawWindowControls(QPainter &p,
const QRectF &titleRect,
bool darkChrome,
243 const QColor &glyphColor);
246 void strokeWindowFrame(QPainter &p,
const WindowChrome &chrome);
254 QRectF cellRect(
const QRect &content,
int idx,
int top,
int h)
const;
257 int cellFlags(
int idx)
const;
262 void drawToolbar(QPainter &p,
const Layout &layout);
269 void drawFilterBar(QPainter &p,
const Layout &layout);
272 void drawColumnHeader(QPainter &p,
const Layout &layout);
283 void drawPacketList(QPainter &p,
const Layout &layout);
286 void rebuildRuleColors();
289 void drawDetailsPane(QPainter &p,
const Layout &layout);
292 void drawBytesPane(QPainter &p,
const Layout &layout);
295 void drawStatusBar(QPainter &p,
const Layout &layout);