41class ThemePreviewWidget :
public QWidget
45 explicit ThemePreviewWidget(QWidget *parent =
nullptr);
55 void setPreviewColors(
const QHash<ThemeManager::ThemeToken, QColor> &colors);
73 bool showColoringRules()
const {
return show_coloring_rules_; }
76 void showColoringRulesChanged(
bool show);
79 void paintEvent(QPaintEvent *evt)
override;
80 void contextMenuEvent(QContextMenuEvent *event)
override;
81 QSize minimumSizeHint()
const override;
84 QHash<ThemeManager::ThemeToken, QColor> colors_;
88 bool show_coloring_rules_ =
false;
93 QHash<QString, QPair<QColor, QColor>> ruleColors_;
101 QColor c(ThemeManager::ThemeToken token,
102 const QColor &fallback = QColor())
const;
108 QPalette previewPalette()
const;
127 QFontMetricsF labelFm;
128 QFontMetricsF monoFm;
145 struct WindowChrome {
146 QPainterPath framePath;
155 Layout buildLayout(
const QRect &content)
const;
162 WindowChrome paintWindowChrome(QPainter &p,
const QRect &outer,
163 const QColor &window);
170 void drawWindowControls(QPainter &p,
const QRectF &titleRect,
bool darkChrome);
173 void strokeWindowFrame(QPainter &p,
const WindowChrome &chrome);
181 QRectF cellRect(
const QRect &content,
int idx,
int top,
int h)
const;
184 int cellFlags(
int idx)
const;
189 void drawToolbar(QPainter &p,
const Layout &layout);
196 void drawFilterBar(QPainter &p,
const Layout &layout);
199 void drawColumnHeader(QPainter &p,
const Layout &layout);
209 void drawPacketList(QPainter &p,
const Layout &layout);
212 void rebuildRuleColors();
215 void drawDetailsPane(QPainter &p,
const Layout &layout);
218 void drawBytesPane(QPainter &p,
const Layout &layout);
221 void drawStatusBar(QPainter &p,
const Layout &layout);