diff --git a/scwx-qt/source/scwx/qt/manager/marker_manager.cpp b/scwx-qt/source/scwx/qt/manager/marker_manager.cpp index fd7bee13..952dea44 100644 --- a/scwx-qt/source/scwx/qt/manager/marker_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/marker_manager.cpp @@ -60,6 +60,8 @@ public: void WriteMarkerSettings(); std::shared_ptr GetMarkerByName(const std::string& name); + bool markerFileRead_ {false}; + void InitalizeIds(); types::MarkerId NewId(); types::MarkerId lastId_ {0}; @@ -209,11 +211,16 @@ void MarkerManager::Impl::ReadMarkerSettings() } } + markerFileRead_ = true; Q_EMIT self_->MarkersUpdated(); } void MarkerManager::Impl::WriteMarkerSettings() { + if (!markerFileRead_) + { + return; + } logger_->info("Saving location marker settings"); const std::shared_lock lock(markerRecordLock_); diff --git a/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp b/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp index df412e24..a6158773 100644 --- a/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/placefile_manager.cpp @@ -70,6 +70,8 @@ public: boost::unordered_flat_map> placefileRecordMap_ {}; std::shared_mutex placefileRecordLock_ {}; + + bool placefileSettingsRead_ {false}; }; class PlacefileManager::Impl::PlacefileRecord @@ -413,10 +415,15 @@ void PlacefileManager::Impl::ReadPlacefileSettings() } } } + placefileSettingsRead_ = true; } void PlacefileManager::Impl::WritePlacefileSettings() { + if (!placefileSettingsRead_) + { + return; + } logger_->info("Saving placefile settings"); std::shared_lock lock {placefileRecordLock_}; diff --git a/scwx-qt/source/scwx/qt/manager/settings_manager.cpp b/scwx-qt/source/scwx/qt/manager/settings_manager.cpp index 056799ae..5b2e9cbb 100644 --- a/scwx-qt/source/scwx/qt/manager/settings_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/settings_manager.cpp @@ -67,9 +67,10 @@ void SettingsManager::Initialize() } p->settingsPath_ = appDataPath + "/settings.json"; - p->initialized_ = true; ReadSettings(p->settingsPath_); + + p->initialized_ = true; p->ValidateSettings(); } diff --git a/scwx-qt/source/scwx/qt/model/layer_model.cpp b/scwx-qt/source/scwx/qt/model/layer_model.cpp index 014acb42..2f1b8a9d 100644 --- a/scwx-qt/source/scwx/qt/model/layer_model.cpp +++ b/scwx-qt/source/scwx/qt/model/layer_model.cpp @@ -96,6 +96,8 @@ public: manager::PlacefileManager::Instance()}; types::LayerVector layers_ {}; + + bool fileRead_ {false}; }; LayerModel::LayerModel(QObject* parent) : @@ -201,6 +203,8 @@ void LayerModel::Impl::ReadLayerSettings() // Assign read layers layers_.swap(newLayers); } + + fileRead_ = true; } void LayerModel::Impl::ValidateLayerSettings(types::LayerVector& layers) @@ -314,6 +318,10 @@ void LayerModel::Impl::ValidateLayerSettings(types::LayerVector& layers) void LayerModel::Impl::WriteLayerSettings() { + if (!fileRead_) + { + return; + } logger_->info("Saving layer settings"); auto layerJson = boost::json::value_from(layers_); diff --git a/scwx-qt/source/scwx/qt/model/radar_site_model.cpp b/scwx-qt/source/scwx/qt/model/radar_site_model.cpp index 482c9828..e1a593d7 100644 --- a/scwx-qt/source/scwx/qt/model/radar_site_model.cpp +++ b/scwx-qt/source/scwx/qt/model/radar_site_model.cpp @@ -68,6 +68,8 @@ public: scwx::common::Coordinate previousPosition_; QIcon starIcon_ {":/res/icons/font-awesome-6/star-solid.svg"}; + + bool presetsRead_ {false}; }; RadarSiteModel::RadarSiteModel(QObject* parent) : @@ -146,10 +148,15 @@ void RadarSiteModelImpl::ReadPresets() } } } + presetsRead_ = true; } void RadarSiteModelImpl::WritePresets() { + if (!presetsRead_) + { + return; + } logger_->info("Saving presets"); auto presetsJson = boost::json::value_from(presets_);