diff --git a/src/plugins/coreplugin/progressmanager/progresspie.cpp b/src/plugins/coreplugin/progressmanager/progresspie.cpp
index 40a104a57b98876a31c0b204cdb6213bbe681a32..d32f7e763ac3ed85f848ba245ab05e4ca62eca00 100644
--- a/src/plugins/coreplugin/progressmanager/progresspie.cpp
+++ b/src/plugins/coreplugin/progressmanager/progresspie.cpp
@@ -40,6 +40,7 @@ ProgressBar::ProgressBar(QWidget *parent)
     : QProgressBar(parent), m_error(false)
 {
     setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+    setMouseTracking(true);
 }
 
 ProgressBar::~ProgressBar()
@@ -88,6 +89,11 @@ void ProgressBar::mousePressEvent(QMouseEvent *event)
     QProgressBar::mousePressEvent(event);
 }
 
+void ProgressBar::mouseMoveEvent(QMouseEvent *)
+{
+    update();
+}
+
 void ProgressBar::paintEvent(QPaintEvent *)
 {
     // TODO move font into stylehelper
@@ -117,13 +123,20 @@ void ProgressBar::paintEvent(QPaintEvent *)
     p.setPen(QColor(255, 255, 255, 70));
     p.drawLine(0, 1, size().width(), 1);
 
+    QRect textRect = rect();
+    textRect.setHeight(h+5);
+
+    p.setPen(QColor(30, 30, 30, 80));
+    p.drawText(textRect, Qt::AlignHCenter | Qt::AlignBottom, m_title);
+    p.translate(0, -1);
     p.setPen(StyleHelper::panelTextColor());
-    p.drawText(QPoint(7, h+1), m_title);
+    p.drawText(textRect, Qt::AlignHCenter | Qt::AlignBottom, m_title);
+    p.translate(0, 1);
 
     m_progressHeight = h-4;
     m_progressHeight += ((m_progressHeight % 2) + 1) % 2; // make odd
     // draw outer rect
-    QRect rect(INDENT, h+6, size().width()-2*INDENT-m_progressHeight+1, m_progressHeight-1);
+    QRect rect(INDENT - 1, h+6, size().width()-2*INDENT, m_progressHeight-1);
     p.setPen(StyleHelper::panelTextColor());
     p.drawRect(rect);
 
@@ -131,7 +144,7 @@ void ProgressBar::paintEvent(QPaintEvent *)
     QColor c = StyleHelper::panelTextColor();
     c.setAlpha(180);
     p.setPen(Qt::NoPen);
-    p.setBrush(c);
+
     QRect inner = rect.adjusted(2, 2, -1, -1);
     inner.adjust(0, 0, qRound((percent - 1) * inner.width()), 0);
     if (m_error) {
@@ -142,19 +155,34 @@ void ProgressBar::paintEvent(QPaintEvent *)
         if (inner.width() < 10)
             inner.adjust(0, 0, 10 - inner.width(), 0);
     } else if (value() == maximum()) {
-        QColor green(140, 255, 140, 180);
-        p.setBrush(green);
+        c = QColor(120, 245, 90, 180);
     }
+
+    QLinearGradient grad(inner.topLeft(), inner.bottomLeft());
+    grad.setColorAt(0, c.lighter(114));
+    grad.setColorAt(0.5, c.lighter(104));
+    grad.setColorAt(0.51, c.darker(108));
+    grad.setColorAt(1, c.darker(120));
+
+    p.setBrush(grad);
     p.drawRect(inner);
 
     if (value() < maximum() && !m_error) {
-        // draw cancel thingy
-        // TODO this is quite ugly at the moment
-        p.setPen(StyleHelper::panelTextColor());
-        p.setBrush(QBrush(Qt::NoBrush));
-        QRect cancelRect(size().width()-INDENT-m_progressHeight+3, h+6+1, m_progressHeight-3, m_progressHeight-3);
+        QColor cancelOutline = StyleHelper::panelTextColor();
+        p.setPen(cancelOutline);
+        QRect cancelRect(rect.right() - m_progressHeight + 2, rect.top(), m_progressHeight-1, rect.height());
+        if (cancelRect.contains(mapFromGlobal(QCursor::pos())))
+            p.setBrush(QColor(230, 90, 40, 190));
+        else
+            p.setBrush(Qt::NoBrush);
+
         p.drawRect(cancelRect);
-        p.setPen(c);
+
+        p.setPen(QPen(QColor(0, 0, 0, 70), 3));
+        p.drawLine(cancelRect.center()+QPoint(-1,-1), cancelRect.center()+QPoint(+3,+3));
+        p.drawLine(cancelRect.center()+QPoint(+3,-1), cancelRect.center()+QPoint(-1,+3));
+
+        p.setPen(StyleHelper::panelTextColor());
         p.drawLine(cancelRect.center()+QPoint(-1,-1), cancelRect.center()+QPoint(+3,+3));
         p.drawLine(cancelRect.center()+QPoint(+3,-1), cancelRect.center()+QPoint(-1,+3));
     }
diff --git a/src/plugins/coreplugin/progressmanager/progresspie.h b/src/plugins/coreplugin/progressmanager/progresspie.h
index 96851f47affc37f61a6f52df1e37df6a18a02af6..9cfc2b153bda286e09cae862ce5eaf08396c690f 100644
--- a/src/plugins/coreplugin/progressmanager/progresspie.h
+++ b/src/plugins/coreplugin/progressmanager/progresspie.h
@@ -49,6 +49,7 @@ public:
     bool hasError() const;
     QSize sizeHint() const;
     void paintEvent(QPaintEvent *);
+    void mouseMoveEvent(QMouseEvent *);
 
 signals:
     void clicked();
diff --git a/src/plugins/projectexplorer/buildprogress.cpp b/src/plugins/projectexplorer/buildprogress.cpp
index 0d696dab8c8778804d7d711f57312f712668dd7b..4969a12f109b39b3bde7fee54b756beb60c1d776 100644
--- a/src/plugins/projectexplorer/buildprogress.cpp
+++ b/src/plugins/projectexplorer/buildprogress.cpp
@@ -46,8 +46,8 @@ BuildProgress::BuildProgress(TaskWindow *taskWindow)
         m_taskWindow(taskWindow)
 {
     QVBoxLayout *layout = new QVBoxLayout;
-    layout->setMargin(0);
-    layout->setSpacing(0);
+    layout->setContentsMargins(8, 2, 0, 2);
+    layout->setSpacing(2);
     setLayout(layout);
     QHBoxLayout *errorLayout = new QHBoxLayout;
     errorLayout->setSpacing(4);
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp
index 6c04645f8b7369ed86986ff1631b0f0f4f05029a..744a4e9d5b02be844ebbb5d9cace7ffb147a8ed1 100644
--- a/src/plugins/texteditor/basefilefind.cpp
+++ b/src/plugins/texteditor/basefilefind.cpp
@@ -124,6 +124,7 @@ void BaseFileFind::searchFinished()
 QWidget *BaseFileFind::createProgressWidget()
 {
     m_resultLabel = new QLabel;
+    m_resultLabel->setAlignment(Qt::AlignCenter);
     // ### TODO this setup should be done by style
     QFont f = m_resultLabel->font();
     f.setBold(true);