Skip to content

[ui] Homepage: Highlight the pipeline or project that is being loaded#3080

Merged
nicolas-lambert-tc merged 7 commits intodevelopfrom
dev/highlightProject
Apr 30, 2026
Merged

[ui] Homepage: Highlight the pipeline or project that is being loaded#3080
nicolas-lambert-tc merged 7 commits intodevelopfrom
dev/highlightProject

Conversation

@cbentejac
Copy link
Copy Markdown
Contributor

Description

This PR highlights the pipeline or project that is clicked on (and then loaded in the application) on the Homepage. In particular, it pushes a graphical update right before the loading process is started, ensuring the Homepage will display the loading state.

The selected project or pipeline will be highlighted with a colored border and a busy indicator, while the non-selected projects/pipelines will have their opacity dimmed.

Implementation remarks

The executeAfterFrameRendered function has been added to ensure that a graphical update is pushed before processing the load of the selected project/pipeline, which then blocks the UI.

Closes #2812.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.47%. Comparing base (0ee8481) to head (c394ebd).
⚠️ Report is 8 commits behind head on develop.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3080   +/-   ##
========================================
  Coverage    83.47%   83.47%           
========================================
  Files           81       81           
  Lines        10301    10301           
========================================
  Hits          8599     8599           
  Misses        1702     1702           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a “loading/selected” visual state on the Homepage when the user clicks a pipeline or recent project, ensuring the highlight/spinner is rendered before starting the synchronous load that blocks the UI thread.

Changes:

  • Add isLoading + loadingIndex state to track which pipeline/project is being loaded and dim non-selected items.
  • Introduce executeAfterFrameRendered() using _window.frameSwapped to defer the heavy load until after a frame is presented.
  • Add highlight borders and BusyIndicators to pipeline and project delegates during loading.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread meshroom/ui/qml/Homepage.qml
Comment thread meshroom/ui/qml/Homepage.qml
Comment thread meshroom/ui/qml/Homepage.qml Outdated
@sonarqubecloud
Copy link
Copy Markdown

Comment thread meshroom/ui/qml/Homepage.qml Outdated
…urrent frame

Forcing the loading actions to start after the current frame has been
rendered prevents from blocking the GUI as soon as the user has clicked
on a project/pipeline while it is being loaded.
…red`

In addition to a function, `executeAfterFrameRendered` now accepts
function parameters as well. If none are provided, the input function
is executed as is (`function()`). Otherwise, the parameters are passed
to it (`function(params)`).
Since there are two different paths to open a project (either by clicking
on the project's thumbnail, or by clicking "Open" after a right-click on
the project's thumbnail), the code to open it was duplicated in two
different places.

A single function is added to perform that operation, and is now called
in both places, using the updated prototype of the
`executeAfterFrameRendered` function.
@cbentejac cbentejac force-pushed the dev/highlightProject branch from 8dd513f to c394ebd Compare April 30, 2026 11:02
@nicolas-lambert-tc nicolas-lambert-tc merged commit 88d094c into develop Apr 30, 2026
8 checks passed
@nicolas-lambert-tc nicolas-lambert-tc deleted the dev/highlightProject branch April 30, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[request] Home page: Highlight Project selection

3 participants