From 1f26660585025eb1524eb64a7d3f932433b59bb9 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 21 Oct 2015 20:05:02 +0000 Subject: [PATCH] Ensure that v1.6 or later doesn't trash v1.5 settings git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5995 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- Configuration.cpp | 10 +++++++++- MetaDataRegistry.cpp | 9 ++++++++- Radio.hpp | 2 ++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Configuration.cpp b/Configuration.cpp index 717ac6542..d46c73dbe 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1216,7 +1216,15 @@ void Configuration::impl::read_settings () if (settings_->contains ("FrequenciesForModes")) { - frequencies_.frequency_list (settings_->value ("FrequenciesForModes").value ()); + auto const& v = settings_->value ("FrequenciesForModes"); + if (v.isValid ()) + { + frequencies_.frequency_list (v.value ()); + } + else + { + frequencies_.reset_to_defaults (); + } } else { diff --git a/MetaDataRegistry.cpp b/MetaDataRegistry.cpp index 74a0e463b..8876397c4 100644 --- a/MetaDataRegistry.cpp +++ b/MetaDataRegistry.cpp @@ -25,7 +25,14 @@ void register_types () { // Radio namespace auto frequency_type_id = qRegisterMetaType ("Frequency"); - item_editor_factory ()->registerEditor (frequency_type_id, new QStandardItemEditorCreator ()); + qRegisterMetaType ("Frequencies"); + + // This is required to preserve v1.5 "frequencies" setting for + // backwards compatibility, without it the setting gets trashed by + // later versions. + qRegisterMetaTypeStreamOperators ("Frequencies"); + + item_editor_factory ()->registerEditor (frequency_type_id, new QStandardItemEditorCreator ()); auto frequency_delta_type_id = qRegisterMetaType ("FrequencyDelta"); item_editor_factory ()->registerEditor (frequency_delta_type_id, new QStandardItemEditorCreator ()); diff --git a/Radio.hpp b/Radio.hpp index 85a5fcadf..309c27022 100644 --- a/Radio.hpp +++ b/Radio.hpp @@ -17,6 +17,7 @@ namespace Radio // Frequency types // using Frequency = quint64; + using Frequencies = QList; using FrequencyDelta = qint64; // @@ -46,6 +47,7 @@ namespace Radio } Q_DECLARE_METATYPE (Radio::Frequency); +Q_DECLARE_METATYPE (Radio::Frequencies); Q_DECLARE_METATYPE (Radio::FrequencyDelta); #endif