Skip to content

Commit 9302aea

Browse files
committed
v1.0.3 - Changes:
- Fixed handling of multiple spaces in SearchBox. - Fixed issue with finding a row in the StringTable on double-click when the window was docked above.
1 parent d3ff743 commit 9302aea

File tree

2 files changed

+52
-13
lines changed

2 files changed

+52
-13
lines changed

Source/StringTableSearchPlugin/Private/SlateWidgets/CoincidenceWidget.cpp

Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -292,20 +292,55 @@ FReply SCoincidenceWidget::OnElementMouseDoubleClick(const FGeometry& Geometry,
292292
if (EditorInstance)
293293
{
294294
TSharedPtr<SWindow> EditorWindow;
295-
if (!EditorWindow.IsValid())
296-
{
297-
TArray<TSharedRef<SWindow>> AllWindows;
298-
FSlateApplication::Get().GetAllVisibleWindowsOrdered(AllWindows);
295+
if (!EditorWindow.IsValid())
296+
{
297+
TArray<TSharedRef<SWindow>> AllWindows;
298+
FSlateApplication::Get().GetAllVisibleWindowsOrdered(AllWindows);
299299

300-
for (const TSharedRef<SWindow>& Window : AllWindows)
301-
{
302-
if (Window->GetTitle().ToString().Contains(AssetData->AssetName.ToString()))
303-
{
304-
EditorWindow = Window;
305-
break;
306-
}
307-
}
308-
}
300+
for (const TSharedRef<SWindow>& Window : AllWindows)
301+
{
302+
if (Window->GetTitle().ToString().Contains(AssetData->AssetName.ToString()))
303+
{
304+
EditorWindow = Window;
305+
break;
306+
}
307+
else
308+
{
309+
TFunction<void(const TSharedRef<SWidget>&)> FindDockTabsRecursive;
310+
311+
FindDockTabsRecursive = [&](const TSharedRef<SWidget>& Widget)
312+
{
313+
if (Widget->GetTypeAsString() == "SDockTab")
314+
{
315+
TSharedRef<const SDockTab> DockTab = StaticCastSharedRef<const SDockTab>(Widget);
316+
FString TabText = DockTab->GetTabLabel().ToString();
317+
318+
UE_LOG(LogTemp, Warning, TEXT("%s"), *TabText );
319+
320+
if (TabText.Contains(AssetData->AssetName.ToString()))
321+
{
322+
UE_LOG(LogTemp, Warning, TEXT("%s"), *DockTab->GetTabLabel().ToString() );
323+
EditorWindow = Window;
324+
return;
325+
}
326+
}
327+
const FChildren* Children = Widget->GetChildren();
328+
if (Children)
329+
{
330+
for (int32 i = 0; i < Children->Num(); ++i)
331+
{
332+
TSharedRef<SWidget> Child = ConstCastSharedRef<SWidget>(Children->GetChildAt(i));
333+
FindDockTabsRecursive(Child);
334+
}
335+
}
336+
};
337+
338+
FindDockTabsRecursive(Window);
339+
340+
if (EditorWindow != nullptr) break;
341+
}
342+
}
343+
}
309344

310345
if (EditorWindow.IsValid())
311346
{

Source/StringTableSearchPlugin/Private/SlateWidgets/SearchInStringTablesWidget.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ void SSearchInStringTablesWidget::OnSearchTextCommitted( const FText& Text, ETex
100100
while (CompareString.Contains(TEXT(" "))) {
101101
CompareString = CompareString.Replace(TEXT(" "), TEXT(" "));
102102
}
103+
104+
while (SearchValue.Contains(TEXT(" "))) {
105+
SearchValue = SearchValue.Replace(TEXT(" "), TEXT(" "));
106+
}
103107

104108
if (Key.Contains(SearchValue, ESearchCase::IgnoreCase) ||
105109
CompareString.Contains(SearchValue, ESearchCase::IgnoreCase))

0 commit comments

Comments
 (0)