Skip to content

🎨 Palette: Standardize search inputs in LyShine Animation Editor#43

Open
Zee2401 wants to merge 3 commits into
developmentfrom
palette-animation-editor-search-ux-11560375930543529353
Open

🎨 Palette: Standardize search inputs in LyShine Animation Editor#43
Zee2401 wants to merge 3 commits into
developmentfrom
palette-animation-editor-search-ux-11560375930543529353

Conversation

@Zee2401

@Zee2401 Zee2401 commented Jun 4, 2026

Copy link
Copy Markdown
Owner

🎨 Palette: Standardize search inputs in LyShine Animation Editor

This PR implements micro-UX and accessibility improvements for search functionality within the LyShine UI Animation Editor.

💡 What: Added placeholder text, clear buttons, and improved accessibility metadata to search fields in UiAnimViewFindDlg and UiAnimViewNodesCtrl.
🎯 Why: Improves the intuitiveness and accessibility of the search interface, allowing users to quickly identify search fields and clear them with a single click.
Accessibility:

  • Added accessibleName to search inputs for screen reader support.
  • Programmatically linked the "Enter filter:" label to its input field using setBuddy().

These improvements are applied programmatically in C++ as a surgical approach to maintain CI stability in the large LyShine Gem.


PR created automatically by Jules for task 11560375930543529353 started by @Zee2401

Summary by CodeRabbit

  • New Features

    • Added a "Clear Console" action to the console options menu.
  • Style

    • Improved search field styling across console and variable editor.
    • Enhanced console UI accessibility with clearer labels, tooltips, placeholder text, and enabled clear buttons.
    • Simplified the variable editor search layout for a cleaner, more accessible experience.

Enhance search/filter fields in the LyShine Animation Editor by
programmatically configuring standard QLineEdit properties.

- Added "Search..." placeholder text to search fields.
- Enabled the built-in clear button for easier search reset.
- Set "Search" as the accessible name for better screen reader support.
- Established a buddy relationship between the filter label and input
  in the Find dialog for improved accessibility.

These changes are implemented programmatically in C++ to avoid CI build
timeouts associated with modifying large Gem .ui files or introducing
new header dependencies in this target.

Co-authored-by: Zee2401 <210601625+Zee2401@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4ccafbe1-7cc8-45c2-9bc4-b8d130af61cf

📥 Commits

Reviewing files that changed from the base of the PR and between 1beb682 and 1b12c3e.

📒 Files selected for processing (1)
  • Code/Editor/Controls/ConsoleSCB.cpp
🚧 Files skipped from review as they are similar to previous changes (1)
  • Code/Editor/Controls/ConsoleSCB.cpp

📝 Walkthrough

Walkthrough

This PR documents a QLineEdit search/filter UX pattern and applies it to the console: adds placeholder/clear styling and accessibility names to console search/command inputs, refactors the console variables filter UI, and introduces a Clear Console action and additional control tooltips in RefreshStyle().

Changes

Search/Filter Input UX Pattern and Console Accessibility

Layer / File(s) Summary
UX pattern documentation and variables filter implementation
.Jules/palette.md, Code/Editor/Controls/ConsoleSCB.cpp
Palette.md documents the recommended search/filter input pattern. The console variables editor filter is refactored to configure its search QLineEdit directly with placeholder text, clear-button, accessible name, applySearchStyle, and zeroed layout margins.
Console widget Find input, menu, and RefreshStyle accessibility
Code/Editor/Controls/ConsoleSCB.cpp
Main console Find and command inputs receive accessible names and placeholder/clear-button configuration. A new "Clear Console" action is added to the options menu and wired to clear the console text edit. RefreshStyle() now sets tooltips and accessible names for console control buttons.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Zee2401/o3de#2: Both PRs update QLineEdit-based search/filter fields to use placeholder text, enable clear button, and apply AzQtComponents::LineEdit::applySearchStyle.
  • Zee2401/o3de#1: Both PRs apply the same search/filter LineEdit UX pattern to editor search/filter fields.

Poem

🐇 I hopped through code with gentle care,
Added placeholders, cleared the air,
Buttons named so screen readers sing,
A Clear Console makes searches spring,
Small tweaks, big smiles — UX everywhere!

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title mentions 'LyShine Animation Editor' but the actual changes extend to Console UI components and other areas, making it overly narrow and partially misleading. Revise the title to reflect the broader scope: e.g., 'Standardize search inputs and improve accessibility across Editor UI components' or similar to accurately represent all changes.
Docstring Coverage ⚠️ Warning Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description covers main changes, objectives, and accessibility improvements, but lacks explicit testing details required by the template. Add a 'How was this PR tested?' section describing any testing performed (manual testing, test cases run, etc.) to fully comply with the template.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch palette-animation-editor-search-ux-11560375930543529353

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Infer (1.2.0)
Code/Editor/Controls/ConsoleSCB.cpp

Code/Editor/Controls/ConsoleSCB.cpp:10:10: fatal error: 'EditorDefs.h' file not found
10 | #include "EditorDefs.h"
| ^~~~~~~~~~~~~~
1 error generated.
Aborting translation of method 'ConsoleLineEdit::keyPressEvent' in file 'Code/Editor/Controls/ConsoleSCB.cpp': "Assert_failure src/clang/cAst_utils.ml:249:53"
Uncaught Internal Error: "Assert_failure src/clang/cAst_utils.ml:249:53"
Error backtrace:
Raised at ClangFrontend__CAst_utils.get_decl_from_typ_ptr in file "src/clang/cAst_utils.ml", line 249, characters 53-65
Called from ClangFrontend__CTrans.CTrans_funct.get_destructor_decl_ref in file "src/clang/cTrans.ml", line 658, characters 12-59
Called from ClangFrontend__CTrans.CTrans_funct.destructor_calls.(fun) in file "src/clang/cTrans.ml", line 2048, characters 12-69
Called from Base__List.rev_filter_map.loop in file "src/list.ml", line 944, characters 13-17
Called from Base__List.filter_map in file "src/list.ml" (inlined), line 951, characters 26-47
Called from Clang

... [truncated 2200 characters] ...

_decl.CFrontend_decl_funct.process_method_decl.add_method_if_create_procdesc in file "src/clang/cFrontend_decl.ml" (inlined), line 123, characters 16-158
Called from ClangFrontend__CFrontend_decl.CFrontend_decl_funct.process_method_decl in file "src/clang/cFrontend_decl.ml", line 126, characters 17-97
Called from ClangFrontend__CFrontend_decl.CFrontend_decl_funct.process_methods in file "src/clang/cFrontend_decl.ml" (inlined), line 270, characters 8-122
Called from Stdlib__List.iter in file "list.ml" (inlined), line 110, characters 12-15
Called from Stdlib__List.iter in file "list.ml" (inlined), line 108, characters 13-64
Called from Base__List0.iter in file "src/list0.ml" (inlined), line 25, characters 16-35
Called from ClangFrontend__CFrontend_decl.CFrontend_decl_funct.process_methods in


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Enhance the Editor Console and Console Variable Editor with localized
tooltips, accessible names, and standardized search fields.

- Added tooltips and accessible names to icon-only buttons in the main
  Console window.
- Configured placeholders and clear buttons for console input fields.
- Added a "Clear Console" action to the options menu.
- Standardized the Console Variable Editor search field by removing
  the redundant label and applying the standard O3DE search style.

This implementation uses programmatic C++ configurations within the
EditorLib target, which is a surgical and CI-safe approach for O3DE UX
improvements. Reverted previous changes in the LyShine Gem to resolve CI
build timeouts.

Co-authored-by: Zee2401 <210601625+Zee2401@users.noreply.github.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
Code/Editor/Controls/ConsoleSCB.cpp (1)

449-462: 💤 Low value

Consider extracting a helper for the tooltip/accessible-name pattern.

The pattern of setting both tooltip and accessible name appears four times (lines 449-462). While the duplication is minimal, extracting a small helper function could improve maintainability:

static void setButtonTooltipAndAccessibleName(QAbstractButton* button, const QString& text)
{
    button->setToolTip(text);
    button->setAccessibleName(text);
}

This would reduce the code to single-line calls and ensure the pattern remains consistent if additional buttons are added in the future.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Code/Editor/Controls/ConsoleSCB.cpp` around lines 449 - 462, Extract the
repeated tooltip + accessible-name logic into a small helper (e.g. a static
function named setButtonTooltipAndAccessibleName) that accepts a
QAbstractButton* and QString, calls setToolTip and setAccessibleName, then
replace the four pairs of ui->button->setToolTip(...)/setAccessibleName(...),
ui->findButton->..., ui->closeButton->..., and ui->optionsButton->... with
single-line calls to that helper to remove duplication and ensure consistency.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@Code/Editor/Controls/ConsoleSCB.cpp`:
- Around line 449-462: Extract the repeated tooltip + accessible-name logic into
a small helper (e.g. a static function named setButtonTooltipAndAccessibleName)
that accepts a QAbstractButton* and QString, calls setToolTip and
setAccessibleName, then replace the four pairs of
ui->button->setToolTip(...)/setAccessibleName(...), ui->findButton->...,
ui->closeButton->..., and ui->optionsButton->... with single-line calls to that
helper to remove duplication and ensure consistency.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fae4fa96-0b52-4e6e-8f20-edc5b9c5ab04

📥 Commits

Reviewing files that changed from the base of the PR and between 1b27460 and 1beb682.

📒 Files selected for processing (1)
  • Code/Editor/Controls/ConsoleSCB.cpp

Enhance the Editor Console and Console Variable Editor with localized
tooltips, accessible names, and standardized search fields.

- Added tooltips and accessible names to icon-only buttons in the main
  Console window.
- Configured placeholders and clear buttons for console input fields.
- Added a "Clear Console" action to the options menu.
- Standardized the Console Variable Editor search field by removing
  the redundant label and applying the standard O3DE search style.
- Fixed identifier mismatch for the find bar label in ConsoleSCB.cpp.

This implementation uses programmatic C++ configurations within the
EditorLib target, which is a surgical and CI-safe approach for O3DE UX
improvements. Reverted previous changes in the LyShine Gem to resolve CI
build timeouts.

Co-authored-by: Zee2401 <210601625+Zee2401@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant