Skip to content
Browse files

DolphinQt: Fix ElidedButton (MappingButton) from growing with long text.

  • Loading branch information...
jordan-woyak committed Mar 3, 2019
1 parent 2a3c075 commit 1cae9b9b3929ca617ad16b72de6fd43efc8a46f7
@@ -32,7 +32,6 @@
#include "InputCommon/ControllerInterface/Device.h"

constexpr int SLIDER_TICK_COUNT = 100;
constexpr int VERTICAL_PADDING = 2;

static QString EscapeAmpersand(QString&& string)
@@ -48,18 +47,13 @@ MappingButton::MappingButton(MappingWidget* widget, ControlReference* ref, bool
: ElidedButton(EscapeAmpersand(QString::fromStdString(ref->GetExpression()))), m_parent(widget),
// Force all mapping buttons to use stay at a minimal height
int height = QFontMetrics(qApp->font()).height() + 2 * VERTICAL_PADDING;
// Force all mapping buttons to stay at a minimal height.

// Make sure that long entries don't throw our layout out of whack.

// macOS needs some wiggle room to always get round buttons
setMaximumHeight(height + 8);

// Make sure that long entries don't throw our layout out of whack

setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);

@@ -27,6 +27,14 @@ void ElidedButton::setElideMode(Qt::TextElideMode elide_mode)

QSize ElidedButton::sizeHint() const
// Long text produces big sizeHints which is throwing layouts off
// even when setting fixed sizes. This seems like a Qt layout bug.
// Let's always return the sizeHint of an empty button to work around this.
return QPushButton(parentWidget()).sizeHint();

void ElidedButton::paintEvent(QPaintEvent* event)
QStyleOptionButton option;
@@ -12,10 +12,13 @@ class ElidedButton : public QPushButton
explicit ElidedButton(const QString& text = QStringLiteral(""),
Qt::TextElideMode elide_mode = Qt::ElideRight);

Qt::TextElideMode elideMode() const;
void setElideMode(Qt::TextElideMode elide_mode);

QSize sizeHint() const final override;

void paintEvent(QPaintEvent* event) override;
void paintEvent(QPaintEvent* event) final override;
Qt::TextElideMode m_elide_mode;

0 comments on commit 1cae9b9

Please sign in to comment.
You can’t perform that action at this time.