From 5037c78f89f075be2be0c4cc5f459bf55b4a3dc1 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <daniel.molkentin@nokia.com>
Date: Wed, 2 Dec 2009 16:33:19 +0100
Subject: [PATCH] Show errors in overlay icon on Windows 7.

Complements 275146afdfc2e75dcdc74f5737e65c315ea5851a

Task-Number: QTCREATORBUG-386
---
 .../progressmanager/progressmanager_win.cpp   | 22 ++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/plugins/coreplugin/progressmanager/progressmanager_win.cpp b/src/plugins/coreplugin/progressmanager/progressmanager_win.cpp
index 5e324c2bcdc..82d43d44156 100644
--- a/src/plugins/coreplugin/progressmanager/progressmanager_win.cpp
+++ b/src/plugins/coreplugin/progressmanager/progressmanager_win.cpp
@@ -29,6 +29,11 @@
 
 #include <QtCore/QVariant>
 #include <QtGui/QMainWindow>
+#include <QtGui/QFont>
+#include <QtGui/QFontMetrics>
+#include <QtGui/QPixmap>
+#include <QtGui/QPainter>
+#include <QtGui/QLabel>
 
 #include <coreplugin/icore.h>
 
@@ -76,7 +81,22 @@ void Core::Internal::ProgressManagerPrivate::cleanup()
 
 void Core::Internal::ProgressManagerPrivate::setApplicationLabel(const QString &text)
 {
-    Q_UNUSED(text)
+    if (!pITask)
+        return;
+
+    WId winId = Core::ICore::instance()->mainWindow()->winId();
+    if (text.isNull()) {
+        pITask->SetOverlayIcon(winId, NULL, NULL);
+    } else {
+        QPixmap pix = QPixmap(":/projectexplorer/images/compile_error.png");
+        QPainter p(&pix);
+        p.setPen(Qt::white);
+        QFont font = p.font();
+        font.setPointSize(font.pointSize()-2);
+        p.setFont(font);
+        p.drawText(QRect(QPoint(0,0), pix.size()), Qt::AlignHCenter|Qt::AlignCenter, text);
+        pITask->SetOverlayIcon(winId, pix.toWinHICON(), text.utf16());
+    }
 }
 
 void Core::Internal::ProgressManagerPrivate::setApplicationProgressRange(int min, int max)
-- 
GitLab