From fc6f67dac020b5d699b00e7ad9513b5980092313 Mon Sep 17 00:00:00 2001 From: johanneshilden Date: Wed, 11 Oct 2017 23:33:55 +0300 Subject: [PATCH] Fix icon button painting for different sizes --- components/qtmaterialiconbutton.cpp | 6 +++++- examples/appbarsettingseditor.cpp | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/components/qtmaterialiconbutton.cpp b/components/qtmaterialiconbutton.cpp index bb8d6fb..525d6b2 100644 --- a/components/qtmaterialiconbutton.cpp +++ b/components/qtmaterialiconbutton.cpp @@ -204,5 +204,9 @@ void QtMaterialIconButton::paintEvent(QPaintEvent *event) QPainter icon(&pixmap); icon.setCompositionMode(QPainter::CompositionMode_SourceIn); icon.fillRect(pixmap.rect(), isEnabled() ? color() : disabledColor()); - painter.drawPixmap(0, 0, pixmap); + + QRect r(rect()); + const qreal w = pixmap.width(); + const qreal h = pixmap.height(); + painter.drawPixmap(QRect((r.width()-w)/2, (r.height()-h)/2, w, h), pixmap); } diff --git a/examples/appbarsettingseditor.cpp b/examples/appbarsettingseditor.cpp index 0fd37df..e151b54 100644 --- a/examples/appbarsettingseditor.cpp +++ b/examples/appbarsettingseditor.cpp @@ -15,6 +15,7 @@ AppBarSettingsEditor::AppBarSettingsEditor(QWidget *parent) m_appBar->appBarLayout()->addWidget(button); m_appBar->appBarLayout()->addStretch(1); button->setColor(Qt::white); + button->setFixedWidth(42); QVBoxLayout *layout = new QVBoxLayout; setLayout(layout);