From 222824e2ff7c6ef2ec7241b5c6a937b8b373800c Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Mon, 12 Apr 2010 12:23:42 +0200
Subject: [PATCH] QmlDesigner.rewriter: writing out the alpha channel of a
 color

QColor::name() ignores the alpha channel

Reviewed-by: Erik Verbruggen
---
 .../qmldesigner/core/model/qmltextgenerator.cpp    | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp b/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp
index 8602078e3f0..8ad16ab0b5e 100644
--- a/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp
+++ b/src/plugins/qmldesigner/core/model/qmltextgenerator.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include <QtCore/QVariant>
+#include <QtGui/QColor>
 
 #include "bindingproperty.h"
 #include "nodeproperty.h"
@@ -38,6 +39,16 @@
 using namespace QmlDesigner;
 using namespace QmlDesigner::Internal;
 
+inline static QString properColorName(const QColor &color)
+{
+    QString s;
+    if (color.alpha() == 255)
+        s.sprintf("#%02x%02x%02x", color.red(), color.green(), color.blue());
+    else
+        s.sprintf("#%02x%02x%02x%02x", color.alpha(), color.red(), color.green(), color.blue());
+    return s;
+}
+
 QmlTextGenerator::QmlTextGenerator(const QStringList &propertyOrder, int indentDepth):
         m_propertyOrder(propertyOrder),
         m_indentDepth(indentDepth)
@@ -89,6 +100,9 @@ QString QmlTextGenerator::toQml(const AbstractProperty &property, int indentDept
             else
                 return QLatin1String("false");
 
+        case QVariant::Color:
+            return QString(QLatin1String("\"%1\"")).arg(properColorName(value.value<QColor>()));
+
         case QVariant::Double:
         case QVariant::Int:
         case QVariant::LongLong:
-- 
GitLab