From 2ee9ee9bff122c89c34d621208e8df67a30f5d49 Mon Sep 17 00:00:00 2001
From: hjk <hjk@theqtcompany.com>
Date: Tue, 14 Jun 2016 15:53:31 +0200
Subject: [PATCH] QtSupport: Make changed Qt version names bold in version
 dialog

Mimic what other Build&Run views do.

Change-Id: I6abb13816b5fe17f9aeeb38b0041c1f9b11a98ec
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
---
 src/plugins/qtsupport/qtoptionspage.cpp | 35 +++++++++++++++++--------
 src/plugins/qtsupport/qtoptionspage.h   |  1 -
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 103077b3ae7..30ec98ebdc2 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -102,6 +102,12 @@ public:
                 return m_version->qmakeCommand().toUserOutput();
         }
 
+        if (role == Qt::FontRole && m_changed) {
+            QFont font;
+            font.setBold(true);
+            return font;
+         }
+
         if (role == Qt::DecorationRole && column == 0)
             return m_icon;
 
@@ -134,11 +140,20 @@ public:
         m_toolChainId = id;
     }
 
+    void setChanged(bool changed)
+    {
+        if (changed == m_changed)
+            return;
+        m_changed = changed;
+        update();
+    }
+
 private:
     BaseQtVersion *m_version = 0;
     QIcon m_icon;
     QString m_buildLog;
     QByteArray m_toolChainId;
+    bool m_changed = false;
 };
 
 ///
@@ -744,6 +759,7 @@ void QtOptionsPageWidget::updateCurrentQtName()
     if (!item || !item->version())
         return;
 
+    item->setChanged(true);
     item->version()->setUnexpandedDisplayName(m_versionUi->nameEdit->text());
 
     updateDescriptionLabel();
@@ -755,21 +771,18 @@ void QtOptionsPageWidget::apply()
     disconnect(QtVersionManager::instance(), &QtVersionManager::qtVersionsChanged,
             this, &QtOptionsPageWidget::updateQtVersions);
 
-    QtVersionManager::setNewQtVersions(versions());
+    QList<BaseQtVersion *> versions;
 
-    connect(QtVersionManager::instance(), &QtVersionManager::qtVersionsChanged,
-            this, &QtOptionsPageWidget::updateQtVersions);
-}
+    m_model->forSecondLevelItems([this, &versions](QtVersionItem *item) {
+        item->setChanged(false);
+        versions.append(item->version()->clone());
+    });
 
-QList<BaseQtVersion *> QtOptionsPageWidget::versions() const
-{
-    QList<BaseQtVersion *> result;
+    QtVersionManager::setNewQtVersions(versions);
 
-    m_model->forSecondLevelItems([this, &result](QtVersionItem *item) {
-        result.append(item->version()->clone());
-    });
 
-    return result;
+    connect(QtVersionManager::instance(), &QtVersionManager::qtVersionsChanged,
+            this, &QtOptionsPageWidget::updateQtVersions);
 }
 
 } // namespace Internal
diff --git a/src/plugins/qtsupport/qtoptionspage.h b/src/plugins/qtsupport/qtoptionspage.h
index 39a0828639a..4c70decc9a1 100644
--- a/src/plugins/qtsupport/qtoptionspage.h
+++ b/src/plugins/qtsupport/qtoptionspage.h
@@ -62,7 +62,6 @@ class QtOptionsPageWidget : public QWidget
 public:
     QtOptionsPageWidget(QWidget *parent = 0);
     ~QtOptionsPageWidget();
-    QList<BaseQtVersion *> versions() const;
     void apply();
 
 private:
-- 
GitLab