From 0eddd0e659bffcf98c22a41402d9b2465291d716 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Tue, 1 Mar 2016 13:35:08 +0300 Subject: [PATCH] Framework::CreateMapObjectAtViewportCenter. --- map/framework.cpp | 10 ++++++++++ map/framework.hpp | 3 +++ 2 files changed, 13 insertions(+) diff --git a/map/framework.cpp b/map/framework.cpp index 639dcd11d8..f9c4725b6d 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -2305,6 +2305,16 @@ bool Framework::ParseEditorDebugCommand(search::SearchParams const & params) return false; } +bool Framework::CreateMapObjectAtViewportCenter(uint32_t const featureType, osm::EditableMapObject & emo) const +{ + m2::PointD const mercator = GetViewportCenter(); + MwmSet::MwmId const mwmId = m_model.GetIndex().GetMwmIdByCountryFile( + platform::CountryFile(m_infoGetter->GetRegionCountryId(mercator))); + if (!mwmId.IsAlive()) + return false; + return osm::Editor::Instance().CreatePoint(featureType, mercator, mwmId, emo); +} + bool Framework::GetEditableMapObject(FeatureID const & fid, osm::EditableMapObject & emo) const { if (!fid.IsValid()) diff --git a/map/framework.hpp b/map/framework.hpp index eeb226ce5b..e1625c1a78 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -612,6 +612,9 @@ public: public: /// @name Editor interface. //@{ + /// Initializes feature for Create Object UI. + /// @returns false in case when viewport center is in the ocean or mwm is not downloaded. + bool CreateMapObjectAtViewportCenter(uint32_t const featureType, osm::EditableMapObject & emo) const; /// @returns false if feature is invalid or can't be edited. bool GetEditableMapObject(FeatureID const & fid, osm:: EditableMapObject & emo) const; osm::Editor::SaveResult SaveEditedMapObject(osm:: EditableMapObject const & emo) const;