mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-21 05:43:37 +00:00
[gpx] Fix bookmark color change
Signed-off-by: cyber-toad <the.cyber.toad@proton.me>
This commit is contained in:
committed by
Konstantin Pastbin
parent
fd342c2a17
commit
79a1ee1769
@@ -311,6 +311,13 @@ UNIT_TEST(Color)
|
|||||||
TEST_EQUAL(dataFromFile.m_tracksData.size(), 3, ());
|
TEST_EQUAL(dataFromFile.m_tracksData.size(), 3, ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UNIT_TEST(ParseExportedGpxColor)
|
||||||
|
{
|
||||||
|
kml::FileData const dataFromFile = LoadGpxFromFile("test_data/gpx/point_with_predefined_color_2.gpx");
|
||||||
|
TEST_EQUAL(0x0066CCFF, dataFromFile.m_bookmarksData[0].m_color.m_rgba, ());
|
||||||
|
TEST_EQUAL(kml::PredefinedColor::Blue, dataFromFile.m_bookmarksData[0].m_color.m_predefinedColor, ());
|
||||||
|
}
|
||||||
|
|
||||||
UNIT_TEST(MultiTrackNames)
|
UNIT_TEST(MultiTrackNames)
|
||||||
{
|
{
|
||||||
kml::FileData dataFromFile = LoadGpxFromFile("test_data/gpx/color.gpx");
|
kml::FileData dataFromFile = LoadGpxFromFile("test_data/gpx/color.gpx");
|
||||||
|
|||||||
@@ -182,11 +182,16 @@ kml::PredefinedColor Bookmark::GetColor() const
|
|||||||
return m_data.m_color.m_predefinedColor;
|
return m_data.m_color.m_predefinedColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Bookmark::InvalidateRGBAColor()
|
||||||
|
{
|
||||||
|
m_data.m_color.m_rgba = kInvalidColor;
|
||||||
|
}
|
||||||
|
|
||||||
void Bookmark::SetColor(kml::PredefinedColor color)
|
void Bookmark::SetColor(kml::PredefinedColor color)
|
||||||
{
|
{
|
||||||
SetDirty();
|
SetDirty();
|
||||||
m_data.m_color.m_predefinedColor = color;
|
m_data.m_color.m_predefinedColor = color;
|
||||||
m_data.m_color.m_rgba = kInvalidColor;
|
InvalidateRGBAColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Bookmark::GetPreferredName() const
|
std::string Bookmark::GetPreferredName() const
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public:
|
|||||||
void SetCustomName(std::string const & customName);
|
void SetCustomName(std::string const & customName);
|
||||||
|
|
||||||
kml::PredefinedColor GetColor() const;
|
kml::PredefinedColor GetColor() const;
|
||||||
|
void InvalidateRGBAColor();
|
||||||
void SetColor(kml::PredefinedColor color);
|
void SetColor(kml::PredefinedColor color);
|
||||||
|
|
||||||
m2::RectD GetViewport() const;
|
m2::RectD GetViewport() const;
|
||||||
|
|||||||
@@ -2236,8 +2236,11 @@ void BookmarkManager::UpdateBookmark(kml::MarkId bmID, kml::BookmarkData const &
|
|||||||
ASSERT(bookmark->GetGroupId() != kml::kInvalidMarkGroupId, ());
|
ASSERT(bookmark->GetGroupId() != kml::kInvalidMarkGroupId, ());
|
||||||
|
|
||||||
if (prevColor != bookmark->GetColor())
|
if (prevColor != bookmark->GetColor())
|
||||||
|
{
|
||||||
|
bookmark->InvalidateRGBAColor();
|
||||||
SetLastEditedBmColor(bookmark->GetColor());
|
SetLastEditedBmColor(bookmark->GetColor());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void BookmarkManager::ChangeTrackColor(kml::TrackId trackId, dp::Color color)
|
void BookmarkManager::ChangeTrackColor(kml::TrackId trackId, dp::Color color)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -371,6 +371,27 @@ UNIT_TEST(Bookmarks_Timestamp)
|
|||||||
DeleteCategoryFiles(arrCat);
|
DeleteCategoryFiles(arrCat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UNIT_TEST(Bookmarks_ChangeColorForImportedBookmark)
|
||||||
|
{
|
||||||
|
Framework fm(kFrameworkParams);
|
||||||
|
BookmarkManager & bmManager = fm.GetBookmarkManager();
|
||||||
|
bmManager.EnableTestMode(true);
|
||||||
|
|
||||||
|
auto const cat1 = bmManager.CreateBookmarkCategory("cat1", false /* autoSave */);
|
||||||
|
kml::BookmarkData bm1;
|
||||||
|
kml::SetDefaultStr(bm1.m_name, "1");
|
||||||
|
bm1.m_point = m2::PointD(38, 20);
|
||||||
|
bm1.m_color.m_predefinedColor = kml::PredefinedColor::Blue;
|
||||||
|
bm1.m_color.m_rgba = 0x0066CCFF;
|
||||||
|
auto const * pBm1 = bmManager.GetEditSession().CreateBookmark(std::move(bm1), cat1);
|
||||||
|
bm1.m_color.m_predefinedColor = kml::PredefinedColor::Orange;
|
||||||
|
bmManager.GetEditSession().UpdateBookmark(pBm1->GetId(), bm1);
|
||||||
|
bmManager.SaveBookmarkCategory(cat1);
|
||||||
|
pBm1 = bmManager.GetBookmark(pBm1->GetId());
|
||||||
|
TEST_EQUAL(pBm1->GetData().m_color.m_predefinedColor, kml::PredefinedColor::Orange, ());
|
||||||
|
TEST_EQUAL(pBm1->GetData().m_color.m_rgba, 0, ());
|
||||||
|
}
|
||||||
|
|
||||||
UNIT_TEST(Bookmarks_Getting)
|
UNIT_TEST(Bookmarks_Getting)
|
||||||
{
|
{
|
||||||
Framework fm(kFrameworkParams);
|
Framework fm(kFrameworkParams);
|
||||||
|
|||||||
Reference in New Issue
Block a user