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")) 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 else
{ {

View File

@ -25,7 +25,14 @@ void register_types ()
{ {
// Radio namespace // Radio namespace
auto frequency_type_id = qRegisterMetaType<Radio::Frequency> ("Frequency"); 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"); auto frequency_delta_type_id = qRegisterMetaType<Radio::FrequencyDelta> ("FrequencyDelta");
item_editor_factory ()->registerEditor (frequency_delta_type_id, new QStandardItemEditorCreator<FrequencyDeltaLineEdit> ()); item_editor_factory ()->registerEditor (frequency_delta_type_id, new QStandardItemEditorCreator<FrequencyDeltaLineEdit> ());

View File

@ -17,6 +17,7 @@ namespace Radio
// Frequency types // Frequency types
// //
using Frequency = quint64; using Frequency = quint64;
using Frequencies = QList<Frequency>;
using FrequencyDelta = qint64; using FrequencyDelta = qint64;
// //
@ -46,6 +47,7 @@ namespace Radio
} }
Q_DECLARE_METATYPE (Radio::Frequency); Q_DECLARE_METATYPE (Radio::Frequency);
Q_DECLARE_METATYPE (Radio::Frequencies);
Q_DECLARE_METATYPE (Radio::FrequencyDelta); Q_DECLARE_METATYPE (Radio::FrequencyDelta);
#endif #endif