X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.cpp;h=fde99e2b4619a3cadf2b2acd01a862759c183d3f;hb=86d4b8e3e52a422fe3a6956d6bbef27f1859717b;hp=01206e7e24b1eae570a3626b25468f1c8546389d;hpb=eeceee9955e7db4ac777d49d1b7a766069476b08;p=pulseview.git diff --git a/pv/data/signalbase.cpp b/pv/data/signalbase.cpp index 01206e7e..fde99e2b 100644 --- a/pv/data/signalbase.cpp +++ b/pv/data/signalbase.cpp @@ -83,7 +83,7 @@ QString SignalBase::internal_name() const QString SignalBase::display_name() const { - if (name() != internal_name_) + if ((name() != internal_name_) && (!internal_name_.isEmpty())) return name() + " (" + internal_name_ + ")"; else return name(); @@ -450,12 +450,12 @@ void SignalBase::save_settings(QSettings &settings) const { settings.setValue("name", name()); settings.setValue("enabled", enabled()); - settings.setValue("color", color()); + settings.setValue("color", color().rgba()); settings.setValue("conversion_type", (int)conversion_type_); settings.setValue("conv_options", (int)(conversion_options_.size())); int i = 0; - for (auto kvp : conversion_options_) { + for (auto& kvp : conversion_options_) { settings.setValue(QString("conv_option%1_key").arg(i), kvp.first); settings.setValue(QString("conv_option%1_value").arg(i), kvp.second); i++; @@ -470,8 +470,19 @@ void SignalBase::restore_settings(QSettings &settings) if (settings.contains("enabled")) set_enabled(settings.value("enabled").toBool()); - if (settings.contains("color")) - set_color(settings.value("color").value()); + if (settings.contains("color")) { + QVariant value = settings.value("color"); + + // Workaround for Qt QColor serialization bug on OSX + if ((QMetaType::Type)(value.type()) == QMetaType::QColor) + set_color(value.value()); + else + set_color(QColor::fromRgba(value.value())); + + // A color with an alpha value of 0 makes the signal marker invisible + if (color() == QColor(0, 0, 0, 0)) + set_color(Qt::gray); + } if (settings.contains("conversion_type")) set_conversion_type((ConversionType)settings.value("conversion_type").toInt());