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
This commit is contained in:
Bill Somerville 2015-10-21 20:05:02 +00:00
parent 297e4c8755
commit 1f26660585
3 changed files with 19 additions and 2 deletions

View File

@ -1216,7 +1216,15 @@ void Configuration::impl::read_settings ()
if (settings_->contains ("FrequenciesForModes"))
{
frequencies_.frequency_list (settings_->value ("FrequenciesForModes").value<FrequencyList::FrequencyItems> ());
auto const& v = settings_->value ("FrequenciesForModes");
if (v.isValid ())
{
frequencies_.frequency_list (v.value<FrequencyList::FrequencyItems> ());
}
else
{
frequencies_.reset_to_defaults ();
}
}
else
{

View File

@ -25,7 +25,14 @@ void register_types ()
{
// Radio namespace
auto frequency_type_id = qRegisterMetaType<Radio::Frequency> ("Frequency");
item_editor_factory ()->registerEditor (frequency_type_id, new QStandardItemEditorCreator<FrequencyLineEdit> ());
qRegisterMetaType<Radio::Frequencies> ("Frequencies");
// This is required to preserve v1.5 "frequencies" setting for
// backwards compatibility, without it the setting gets trashed by
// later versions.
qRegisterMetaTypeStreamOperators<Radio::Frequencies> ("Frequencies");
item_editor_factory ()->registerEditor (frequency_type_id, new QStandardItemEditorCreator<FrequencyLineEdit> ());
auto frequency_delta_type_id = qRegisterMetaType<Radio::FrequencyDelta> ("FrequencyDelta");
item_editor_factory ()->registerEditor (frequency_delta_type_id, new QStandardItemEditorCreator<FrequencyDeltaLineEdit> ());

View File

@ -17,6 +17,7 @@ namespace Radio
// Frequency types
//
using Frequency = quint64;
using Frequencies = QList<Frequency>;
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