mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 18:40:05 +00:00
Updated how MarkerRecord works to make adding entryies easier
This commit is contained in:
parent
74f3a15eb2
commit
84233868d6
1 changed files with 24 additions and 24 deletions
|
|
@ -47,22 +47,29 @@ public:
|
||||||
class MarkerManager::Impl::MarkerRecord
|
class MarkerManager::Impl::MarkerRecord
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MarkerRecord(std::string name, double latitude, double longitude) :
|
MarkerRecord(const std::string& name, double latitude, double longitude) :
|
||||||
name_ {name}, latitude_ {latitude}, longitude_ {longitude}
|
markerInfo_ {types::MarkerInfo(name, latitude, longitude)}
|
||||||
|
{
|
||||||
|
}
|
||||||
|
MarkerRecord(const types::MarkerInfo& info) :
|
||||||
|
markerInfo_ {info}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string name_;
|
types::MarkerInfo toMarkerInfo()
|
||||||
double latitude_;
|
{
|
||||||
double longitude_;
|
return markerInfo_;
|
||||||
|
}
|
||||||
|
|
||||||
|
types::MarkerInfo markerInfo_;
|
||||||
|
|
||||||
friend void tag_invoke(boost::json::value_from_tag,
|
friend void tag_invoke(boost::json::value_from_tag,
|
||||||
boost::json::value& jv,
|
boost::json::value& jv,
|
||||||
const std::shared_ptr<MarkerRecord>& record)
|
const std::shared_ptr<MarkerRecord>& record)
|
||||||
{
|
{
|
||||||
jv = {{kNameName_, record->name_},
|
jv = {{kNameName_, record->markerInfo_.name_},
|
||||||
{kLatitudeName_, record->latitude_},
|
{kLatitudeName_, record->markerInfo_.latitude_},
|
||||||
{kLongitudeName_, record->longitude_}};
|
{kLongitudeName_, record->markerInfo_.longitude_}};
|
||||||
}
|
}
|
||||||
|
|
||||||
friend MarkerRecord tag_invoke(boost::json::value_to_tag<MarkerRecord>,
|
friend MarkerRecord tag_invoke(boost::json::value_to_tag<MarkerRecord>,
|
||||||
|
|
@ -117,10 +124,10 @@ void MarkerManager::Impl::ReadMarkerSettings()
|
||||||
MarkerRecord record =
|
MarkerRecord record =
|
||||||
boost::json::value_to<MarkerRecord>(markerEntry);
|
boost::json::value_to<MarkerRecord>(markerEntry);
|
||||||
|
|
||||||
if (!record.name_.empty())
|
if (!record.markerInfo_.name_.empty())
|
||||||
{
|
{
|
||||||
markerRecords_.emplace_back(std::make_shared<MarkerRecord>(
|
markerRecords_.emplace_back(
|
||||||
record.name_, record.latitude_, record.longitude_));
|
std::make_shared<MarkerRecord>(record.markerInfo_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const std::exception& ex)
|
catch (const std::exception& ex)
|
||||||
|
|
@ -146,7 +153,7 @@ MarkerManager::Impl::GetMarkerByName(const std::string& name)
|
||||||
{
|
{
|
||||||
for (auto& markerRecord : markerRecords_)
|
for (auto& markerRecord : markerRecords_)
|
||||||
{
|
{
|
||||||
if (markerRecord->name_ == name)
|
if (markerRecord->markerInfo_.name_ == name)
|
||||||
{
|
{
|
||||||
return markerRecord;
|
return markerRecord;
|
||||||
}
|
}
|
||||||
|
|
@ -187,25 +194,21 @@ types::MarkerInfo MarkerManager::get_marker(size_t index)
|
||||||
{
|
{
|
||||||
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
||||||
p->markerRecords_[index];
|
p->markerRecords_[index];
|
||||||
return types::MarkerInfo(
|
return markerRecord->toMarkerInfo();
|
||||||
markerRecord->name_, markerRecord->latitude_, markerRecord->longitude_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
types::MarkerInfo MarkerManager::get_marker(const std::string& name)
|
types::MarkerInfo MarkerManager::get_marker(const std::string& name)
|
||||||
{
|
{
|
||||||
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
||||||
p->GetMarkerByName(name);
|
p->GetMarkerByName(name);
|
||||||
return types::MarkerInfo(
|
return markerRecord->toMarkerInfo();
|
||||||
markerRecord->name_, markerRecord->latitude_, markerRecord->longitude_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarkerManager::set_marker(size_t index, const types::MarkerInfo& marker)
|
void MarkerManager::set_marker(size_t index, const types::MarkerInfo& marker)
|
||||||
{
|
{
|
||||||
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
||||||
p->markerRecords_[index];
|
p->markerRecords_[index];
|
||||||
markerRecord->name_ = marker.name_;
|
markerRecord->markerInfo_ = marker;
|
||||||
markerRecord->latitude_ = marker.latitude_;
|
|
||||||
markerRecord->longitude_ = marker.longitude_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarkerManager::set_marker(const std::string& name,
|
void MarkerManager::set_marker(const std::string& name,
|
||||||
|
|
@ -213,15 +216,12 @@ void MarkerManager::set_marker(const std::string& name,
|
||||||
{
|
{
|
||||||
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord =
|
||||||
p->GetMarkerByName(name);
|
p->GetMarkerByName(name);
|
||||||
markerRecord->name_ = marker.name_;
|
markerRecord->markerInfo_ = marker;
|
||||||
markerRecord->latitude_ = marker.latitude_;
|
|
||||||
markerRecord->longitude_ = marker.longitude_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarkerManager::add_marker(const types::MarkerInfo& marker)
|
void MarkerManager::add_marker(const types::MarkerInfo& marker)
|
||||||
{
|
{
|
||||||
p->markerRecords_.emplace_back(std::make_shared<Impl::MarkerRecord>(
|
p->markerRecords_.emplace_back(std::make_shared<Impl::MarkerRecord>(marker));
|
||||||
marker.name_, marker.latitude_, marker.longitude_));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarkerManager::move_marker(size_t from, size_t to)
|
void MarkerManager::move_marker(size_t from, size_t to)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue