TopicButton::TopicButton(QWidget *parent)
: QAbstractButton(parent)
{
+ setFixedHeight(QFontMetrics(qApp->font()).height());
}
void TopicButton::paintEvent(QPaintEvent *event) {
void TopicButton::setAndStyleText(const QString &text) {
if(QAbstractButton::text() == text)
return;
+
setText(text); // this triggers a repaint event
styledText = QtUi::style()->styleString(Message::mircToInternal(text));
foreach(QTextLayout::FormatRange fr, styledText.formats) {
height = qMax(height, QFontMetrics(fr.format.font()).height());
}
+
+ // ensure the button is editable (height != 1) if there is no text to show
+ if(text.isEmpty())
+ height = QFontMetrics(qApp->font()).height();
+
setFixedHeight(height);
}