6#include "cvmat_qmetadata.h"
22 AdaptiveToolButton(
const QString &fullText,
const QString &shortText =
"", QWidget *parent =
nullptr)
23 : QToolButton(parent), mFullText(fullText), mShortText(shortText), mColorTheme(ColorTheme::LIGHT)
25 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
26 setMinimumSize(30, 30);
27 setIconSize(QSize(25, 25));
28 setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonTextBesideIcon);
40 if (mColorTheme == theme) {
53 if(mIcons.contains(theme)) {
54 setIcon(mIcons.value(theme));
60 void resizeEvent(QResizeEvent *event)
override
62 QToolButton::resizeEvent(event);
69 QFontMetrics fm(font());
70 int textWidth = fm.horizontalAdvance(mFullText);
71 int availableWidth = width() - iconSize().width() - 10;
73 if (textWidth > availableWidth) {
74 if (!mShortText.isEmpty() && fm.horizontalAdvance(mShortText) <= availableWidth) {
76 setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
78 setToolButtonStyle(Qt::ToolButtonIconOnly);
82 setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
88 ColorTheme mColorTheme;
89 QMap<ColorTheme, QIcon> mIcons;