diff options
Diffstat (limited to 'platform/qt/src/qt_conversion.hpp')
-rw-r--r-- | platform/qt/src/qt_conversion.hpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/platform/qt/src/qt_conversion.hpp b/platform/qt/src/qt_conversion.hpp index 6927f2510a..34d2dcce8e 100644 --- a/platform/qt/src/qt_conversion.hpp +++ b/platform/qt/src/qt_conversion.hpp @@ -13,6 +13,8 @@ namespace mbgl { namespace style { namespace conversion { +std::string convertColor(const QColor &color); + template <> class ConversionTraits<QVariant> { public: @@ -96,7 +98,7 @@ public: if (value.type() == QVariant::String) { return value.toString().toStdString(); } else if (value.type() == QVariant::Color) { - return value.value<QColor>().name().toStdString(); + return convertColor(value.value<QColor>()); } else { return {}; } @@ -108,7 +110,7 @@ public: } else if (value.type() == QVariant::String) { return { value.toString().toStdString() }; } else if (value.type() == QVariant::Color) { - return { value.value<QColor>().name().toStdString() }; + return { convertColor(value.value<QColor>()) }; } else if (value.type() == QVariant::Int) { return { int64_t(value.toInt()) }; } else if (value.canConvert(QVariant::Double)) { @@ -151,6 +153,11 @@ optional<T> convert(const QVariant& value, Error& error, Args&&...args) { return convert<T>(Convertible(value), error, std::forward<Args>(args)...); } +inline std::string convertColor(const QColor &color) { + return QString::asprintf("rgba(%d,%d,%d,%lf)", + color.red(), color.green(), color.blue(), color.alphaF()).toStdString(); +} + } // namespace conversion } // namespace style } // namespace mbgl |