OSDN Git Service

Make the width of details button dependent on its text
authorJarek Kobus <jkobus@trolltech.com>
Wed, 6 Jul 2011 10:57:47 +0000 (12:57 +0200)
committerJarek Kobus <jaroslaw.kobus@nokia.com>
Wed, 6 Jul 2011 11:30:47 +0000 (13:30 +0200)
Task-number: QTCREATORBUG-5311

Change-Id: Ib50dfcb54f2cd23094ca51f2e5ce10890c92a732
Reviewed-on: http://codereview.qt.nokia.com/1166
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
src/libs/utils/detailsbutton.cpp

index ef38d9b..5aa4ef9 100644 (file)
@@ -80,10 +80,11 @@ DetailsButton::DetailsButton(QWidget *parent) : QAbstractButton(parent), m_fader
 QSize DetailsButton::sizeHint() const
 {
     // TODO: Adjust this when icons become available!
+    const int w = fontMetrics().width(text()) + 32;
 #ifdef Q_WS_MAC
-    return QSize(80, 34);
+    return QSize(w, 34);
 #else
-    return QSize(80, 22);
+    return QSize(w, 22);
 #endif
 }
 
@@ -171,6 +172,7 @@ QPixmap DetailsButton::cacheRendering(const QSize &size, bool checked)
 
     QRect textRect = p.fontMetrics().boundingRect(text());
     textRect.setWidth(textRect.width() + 15);
+    textRect.setHeight(textRect.height() + 4);
     textRect.moveCenter(rect().center());
 
     p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text());