mirror of
https://gitee.com/openharmony/arkui_ace_engine
synced 2024-10-07 08:24:11 +00:00
!43945 蓝黄同步,修复Search支持withTheme场景使用Image问题
Merge pull request !43945 from tangye/OpenHarmony-5.0-Release
This commit is contained in:
commit
978b0a558b
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user