forked from organicmaps/organicmaps
[editor] Correctly pass and check HouseNumber.
This commit is contained in:
parent
4fef575775
commit
627878e6ce
4 changed files with 16 additions and 9 deletions
|
@ -1,5 +1,6 @@
|
|||
#include "indexer/classificator.hpp"
|
||||
#include "indexer/feature_decl.hpp"
|
||||
#include "indexer/feature_impl.hpp"
|
||||
#include "indexer/feature_meta.hpp"
|
||||
#include "indexer/ftypes_matcher.hpp"
|
||||
#include "indexer/index.hpp"
|
||||
|
@ -409,7 +410,8 @@ void Editor::DeleteFeature(FeatureType const & feature)
|
|||
//}
|
||||
//} // namespace
|
||||
|
||||
void Editor::EditFeature(FeatureType const & editedFeature, string const & editedStreet)
|
||||
void Editor::EditFeature(FeatureType const & editedFeature, string const & editedStreet,
|
||||
string const & editedHouseNumber)
|
||||
{
|
||||
// TODO(AlexZ): Check if feature has not changed and reset status.
|
||||
FeatureID const fid = editedFeature.GetID();
|
||||
|
@ -419,8 +421,12 @@ void Editor::EditFeature(FeatureType const & editedFeature, string const & edite
|
|||
// TODO: What if local client time is absolutely wrong?
|
||||
fti.m_modificationTimestamp = time(nullptr);
|
||||
|
||||
if (!editedStreet.empty())
|
||||
fti.m_street = editedStreet;
|
||||
fti.m_street = editedStreet;
|
||||
if (editedHouseNumber.empty())
|
||||
fti.m_feature.SetHouseNumber(string());
|
||||
else if (feature::IsHouseNumber(editedHouseNumber))
|
||||
fti.m_feature.SetHouseNumber(editedHouseNumber);
|
||||
// else TODO(AlexZ): Store edited house number as house name.
|
||||
|
||||
// TODO(AlexZ): Synchronize Save call/make it on a separate thread.
|
||||
Save(GetEditorFilePath());
|
||||
|
|
|
@ -69,7 +69,9 @@ public:
|
|||
|
||||
/// Original feature with same FeatureID as newFeature is replaced by newFeature.
|
||||
/// Please pass editedStreet only if it was changed by user.
|
||||
void EditFeature(FeatureType const & editedFeature, string const & editedStreet = "");
|
||||
void EditFeature(FeatureType const & editedFeature,
|
||||
string const & editedStreet = "",
|
||||
string const & editedHouseNumber = "");
|
||||
|
||||
vector<feature::Metadata::EType> EditableMetadataForType(FeatureType const & feature) const;
|
||||
bool IsNameEditable(FeatureType const & feature) const;
|
||||
|
|
|
@ -339,7 +339,7 @@ void initFieldsMap()
|
|||
return;
|
||||
|
||||
auto & metadata = feature->GetMetadata();
|
||||
string streetName;
|
||||
string streetName, houseNumber;
|
||||
for (auto const & cell : cells)
|
||||
{
|
||||
switch (cell.first)
|
||||
|
@ -378,7 +378,7 @@ void initFieldsMap()
|
|||
}
|
||||
case MWMPlacePageCellTypeBuilding:
|
||||
{
|
||||
feature->SetHouseNumber(cell.second);
|
||||
houseNumber = cell.second;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -386,7 +386,7 @@ void initFieldsMap()
|
|||
break;
|
||||
}
|
||||
}
|
||||
osm::Editor::Instance().EditFeature(*feature);
|
||||
osm::Editor::Instance().EditFeature(*feature, streetName, houseNumber);
|
||||
}
|
||||
|
||||
#pragma mark - Getters
|
||||
|
|
|
@ -475,10 +475,9 @@ void DrawWidget::ShowPOIEditor(FeatureType & feature)
|
|||
if (result == QDialog::Accepted)
|
||||
{
|
||||
feature.SetNames(dlg.GetEditedNames());
|
||||
feature.SetHouseNumber(dlg.GetEditedHouseNumber());
|
||||
feature.SetMetadata(dlg.GetEditedMetadata());
|
||||
// TODO(AlexZ): Check that street was actually changed/edited.
|
||||
editor.EditFeature(feature, dlg.GetEditedStreet());
|
||||
editor.EditFeature(feature, dlg.GetEditedStreet(), dlg.GetEditedHouseNumber());
|
||||
}
|
||||
else if (result == QDialogButtonBox::DestructiveRole)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue