!43945 蓝黄同步,修复Search支持withTheme场景使用Image问题

Merge pull request !43945 from tangye/OpenHarmony-5.0-Release
This commit is contained in:
openharmony_ci 2024-09-20 09:14:56 +00:00 committed by Gitee
commit 978b0a558b
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -1813,9 +1813,33 @@ void SearchPattern::SetSearchIconSize(const Dimension& value)
void SearchPattern::SetSearchIconColor(const Color& color)
{
CHECK_NULL_VOID(GetSearchNode());
auto& imageIconOptions = GetSearchNode()->GetSearchImageIconOptions();
imageIconOptions.UpdateColor(Color(color));
UpdateImageIconNode(IMAGE_INDEX);
auto frameNode = GetHost();
CHECK_NULL_VOID(frameNode);
auto iconFrameNode = AceType::DynamicCast<FrameNode>(frameNode->GetChildAtIndex(IMAGE_INDEX));
CHECK_NULL_VOID(iconFrameNode);
if (iconFrameNode->GetTag() == V2::SYMBOL_ETS_TAG) {
GetSearchNode()->SetSearchSymbolIconColor(Color(color));
auto symbolLayoutProperty = iconFrameNode->GetLayoutProperty<TextLayoutProperty>();
CHECK_NULL_VOID(symbolLayoutProperty);
symbolLayoutProperty->UpdateSymbolColorList({color});
iconFrameNode->MarkModifyDone();
iconFrameNode->MarkDirtyNode(PROPERTY_UPDATE_MEASURE);
} else {
auto &imageIconOptions = GetSearchNode()->GetSearchImageIconOptions();
imageIconOptions.UpdateColor(Color(color));
auto imageLayoutProperty = iconFrameNode->GetLayoutProperty<ImageLayoutProperty>();
CHECK_NULL_VOID(imageLayoutProperty);
auto imageSourceInfo = imageLayoutProperty->GetImageSourceInfo().value();
if (imageSourceInfo.IsSvg()) {
imageSourceInfo.SetFillColor(color);
imageLayoutProperty->UpdateImageSourceInfo(imageSourceInfo);
auto imageRenderProperty = iconFrameNode->GetPaintProperty<ImageRenderProperty>();
CHECK_NULL_VOID(imageRenderProperty);
imageRenderProperty->UpdateSvgFillColor(color);
iconFrameNode->MarkModifyDone();
iconFrameNode->MarkDirtyNode(PROPERTY_UPDATE_MEASURE);
}
}
}
void SearchPattern::SetSearchImageIcon(IconOptions& iconOptions)
@ -1852,9 +1876,33 @@ void SearchPattern::SetCancelIconSize(const Dimension& value)
void SearchPattern::SetCancelIconColor(const Color& color)
{
CHECK_NULL_VOID(GetSearchNode());
auto &imageIconOptions = GetSearchNode()->GetCancelImageIconOptions();
imageIconOptions.UpdateColor(Color(color));
UpdateImageIconNode(CANCEL_IMAGE_INDEX);
auto frameNode = GetHost();
CHECK_NULL_VOID(frameNode);
auto cancelIconFrameNode = AceType::DynamicCast<FrameNode>(frameNode->GetChildAtIndex(CANCEL_IMAGE_INDEX));
CHECK_NULL_VOID(cancelIconFrameNode);
if (cancelIconFrameNode->GetTag() == V2::SYMBOL_ETS_TAG) {
GetSearchNode()->SetCancelSymbolIconColor(Color(color));
auto symbolLayoutProperty = cancelIconFrameNode->GetLayoutProperty<TextLayoutProperty>();
CHECK_NULL_VOID(symbolLayoutProperty);
symbolLayoutProperty->UpdateSymbolColorList({color});
cancelIconFrameNode->MarkModifyDone();
cancelIconFrameNode->MarkDirtyNode(PROPERTY_UPDATE_MEASURE);
} else {
auto &imageIconOptions = GetSearchNode()->GetCancelImageIconOptions();
imageIconOptions.UpdateColor(Color(color));
auto imageLayoutProperty = cancelIconFrameNode->GetLayoutProperty<ImageLayoutProperty>();
CHECK_NULL_VOID(imageLayoutProperty);
auto imageSourceInfo = imageLayoutProperty->GetImageSourceInfo().value();
if (imageSourceInfo.IsSvg()) {
imageSourceInfo.SetFillColor(color);
imageLayoutProperty->UpdateImageSourceInfo(imageSourceInfo);
auto imageRenderProperty = cancelIconFrameNode->GetPaintProperty<ImageRenderProperty>();
CHECK_NULL_VOID(imageRenderProperty);
imageRenderProperty->UpdateSvgFillColor(color);
cancelIconFrameNode->MarkModifyDone();
cancelIconFrameNode->MarkDirtyNode(PROPERTY_UPDATE_MEASURE);
}
}
}
void SearchPattern::SetRightIconSrcPath(const std::string& src)