Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion AvatarExplorer.Core/Services/Items/ItemNavigationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,9 @@ private void HandleFile(string hash)
}

/// <summary>
/// 現在選択されているアイテム内のファイルを検索します。アイテムが選択されていない場合は空の配列を返します。
/// 現在選択されているアイテム内のファイルを検索します。
/// フォルダが選択されている場合はそのフォルダ内で、フォルダが選択されていない場合はアイテム全体で検索を行います。
/// アイテムが選択されていない場合は空の配列を返します。
/// </summary>
/// <param name="query">検索クエリ(ファイル名の一部や拡張子など)。</param>
/// <returns>条件に一致した <see cref="ItemFile"/> を <see cref="IIdentifiable"/> として格納した配列。</returns>
Expand All @@ -316,10 +318,17 @@ public IIdentifiable[] SearchFilesForCurrentItem(string query)
var itemId = GetCurrentItemId();
if (itemId == null) return [];

// フォルダーが選択されていたら、そのフォルダー内で検索をかける
var folderState = _state.FirstOrDefault(FolderPrefix)?.Value;
var folderPath = folderState != null && TryParseState(folderState, out _, out var folderHash)
? ResolvePathInternal(folderHash)
: null;

var itemFiles = PopulatePathCache(itemId);
var searchResults = _items.ItemRepository.SearchItemFiles(itemId, query);

return searchResults
.Where(i => folderPath == null || i.ParentFolderPath == folderPath)
.NaturalSort(i => i.FileName)
.Select(f => itemFiles.FirstOrDefault(i => i.FilePath == f.FilePath))
.Where(f => f != null)
Expand Down
2 changes: 1 addition & 1 deletion docs/02-navigation-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ if (targetAuthor != null)

## SearchFilesForCurrentItem()

現在のアイテム内でファイルを検索します。
現在のアイテム内でファイルを検索します。フォルダが選択されている場合はそのフォルダ内に検索範囲が限定されます。

```csharp
// アイテムを選択した状態で
Expand Down
2 changes: 1 addition & 1 deletion docs/09-search.md
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ foreach (var token in query.Tokens)

## SearchFilesForCurrentItem()

アイテム内のファイルを検索:
アイテム内のファイルを検索します。フォルダが選択されている場合はそのフォルダ内で、選択されていない場合はアイテム全体から検索します。

```csharp
var navigation = app.ItemNavigationService;
Expand Down
Loading