Use shorter 'FAQ' prefix for search results instead of full
'Telegram FAQ' that's used for the main FAQ button label.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Now FAQ entries appear in filtered search results when the query
matches, not just when query is empty. Uses same button cache and
first-letter index for both settings and FAQ entries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Build search index once when the section is created instead
of recomputing on every query. Use first-letter lookup for
O(1) candidate filtering, following the pattern from theme
editor's searchByQuery implementation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use the stepDataReference mechanism to save and restore the
search query when navigating from results to a section and back.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use TextUtilities::PrepareSearchWords() to normalize query and
entry text: split into words, remove accents, and lowercase.
Match by word prefix: each query word must match at least one
entry word by startsWith().
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
SearchEntry now has an optional `deeplink` field. When set, clicking
the search result activates the deeplink URL instead of navigating.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The custom build method in Main::setupContent() was missing the
HighlightRegistry setup, so widgets added via builder.add() with
search entries weren't being registered for highlighting.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
sectionPath() was starting with parentId instead of the section itself,
causing subtitles to skip the section name the entry belongs to.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move Advanced class definition into .cpp file anonymous namespace
- Export only Type AdvancedId() in header
- Keep exported helper functions (SetupConnectionType, HasUpdate, etc.)
- Remove unused SetupWindowCloseBehaviorContent declaration
- Update callers to use AdvancedId() instead of Advanced::Id()
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move Main class definition from header to .cpp file
- Export only Type MainId() from header
- Update all external references from Main::Id() to MainId()
- Remove Builder::MainSection export from namespace
- Add missing includes for settings_common_session.h where needed
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move LocalPasscodeManage class into anonymous namespace
- Remove Builder::LocalPasscodeManageSection export from header
- Use inline buildMethod for setupContent()
- Keep Create/Check/Change enter-type sections as-is (form-based)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>