We were unable to construct the commit group for this pull request. Please email [email protected] with error code #34123N for more details

Rounding and orange-red playhead #1865

Stale Open
ddennedy opened 10:10am on July 7, 2026 wants to merge 229 Δ into mltframework/shotcut master from
rounding

Pull Request Overview

  • Opened on July 7, 2026
  • Status Stale Open
  • Commit count 8 with first commit July 7, 2026

Total Delta

229 Total Diff Delta

Open Days

Open 54 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Fraction of total time Business days Phase
N/A -0.0 days Issue creation to work beginning
 
0.0 days Authoring 2 commits before pull request opened for review
 
0.0 days Awaiting first review
 
53.5 days Revising work with 6 commits in response to 1 review that left 10 comments

Total time for pull request still awaiting merge (longer than repo's target): 53.5 business days

Author avatar

Rounding and orange-red playhead

This pull request introduces a series of UI refinements to improve the visual consistency and polish of the application, focusing on rounded corners, highlight styling, and a unified playhead color. The changes affect both C++ and QML code, ensuring that various UI elements—such as timeline clips, toolbars, and dialog frames—have a more modern and cohesive appearance.

UI Styling Enhancements:


  • Timeline clips in Clip.qml now feature rounded corners on their left and right sides when adjacent to blank clips, with all internal elements (waveforms, labels, overlays) adjusting their margins and rendering to respect these corners. [[1]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR52-R68) [[2]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR136-R139) [[3]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL302-R323) [[4]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL317-R338) [[5]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR361-R370) [[6]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL358-R383) [[7]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL422-R447) [[8]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL451-R476) [[9]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL485-R510) [[10]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR868-R879)

  • Highlighted widgets and tool buttons now consistently use a border radius and padding, with stylesheet-based highlight colors applied for a bolder, more modern look across toolbars and dialogs. [[1]](diffhunk://#diff-c72b037f3ac7abbd3d0ee519b6f456013a9bbf5a59df16308939320c04970447R6734-R6737) [[2]](diffhunk://#diff-c72b037f3ac7abbd3d0ee519b6f456013a9bbf5a59df16308939320c04970447R6759-R6772) [[3]](diffhunk://#diff-449acf764318b0ca96972daf8d28a28af79ad2c3381044851f2953792fcd8eefR98-R117) [[4]](diffhunk://#diff-9fbf25a69a1e049a230d12531ddd8cb1d97b6b159ff58f1e50bbe13639110e7aL293-L304)

Playhead Color Unification:


  • The playhead (timeline cursor) color is now defined in one place (QmlApplication::playheadColor, a bold red) and used consistently in the timeline, keyframes, and scrub bar, replacing palette-based colors for a more distinctive and unified appearance. [[1]](diffhunk://#diff-2f2b1b9b158555359e177b7ec1533afdffad97c574c062b505b6a421ff6a6df6R38) [[2]](diffhunk://#diff-2f2b1b9b158555359e177b7ec1533afdffad97c574c062b505b6a421ff6a6df6R52) [[3]](diffhunk://#diff-55a614f4012582e64c38322e003f6f4a7168cdc141206afedee11f85e6b6d3c3L692-R692) [[4]](diffhunk://#diff-99a89fbae8851c4a4dc714ca7c3c279d0acac788d90b93dacc2b4758af00f446L487-R487) [[5]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8R23) [[6]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8L79-R80) [[7]](diffhunk://#diff-ab2d6f0bea89acc884b6c4b01a5d0653f1f64a0a7e2e460335ea07401afe424dR21) [[8]](diffhunk://#diff-ab2d6f0bea89acc884b6c4b01a5d0653f1f64a0a7e2e460335ea07401afe424dL205-R206) [[9]](diffhunk://#diff-ab2d6f0bea89acc884b6c4b01a5d0653f1f64a0a7e2e460335ea07401afe424dL214-R220)

Waveform Rendering Improvements:


  • The waveform outline is now drawn only along the peaks (not the bottom edge), preventing dark lines from conflicting with the rounded corners of clips and improving visual clarity. [[1]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8R184-R185) [[2]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8R197-R206)

Other Visual Tweaks:


  • Filter view highlights and text in QML now have rounded corners and padding for better aesthetics and readability. [[1]](diffhunk://#diff-d5dfcab619de90f75b912ce6de40cc25b72d8fefc0697f732f91ff5616817b51R115) [[2]](diffhunk://#diff-d5dfcab619de90f75b912ce6de40cc25b72d8fefc0697f732f91ff5616817b51R136-R137)

  • The copyright notice in statuslabelwidget.cpp has been updated.

These changes collectively modernize the application's look and feel, enhance consistency, and address subtle UI details for a more polished user experience.

This work implements Rounding and orange-red playhead (open)

This pull request introduces a series of UI refinements to improve the visual consistency and polish of the application, focusing on rounded corners, highlight styling, and a unified playhead color. The changes affect both C++ and QML code, ensuring that various UI elements—such as timeline clips, toolbars, and dialog frames—have a more modern and cohesive appearance.

UI Styling Enhancements:

  • Timeline clips in Clip.qml now feature rounded corners on their left and right sides when adjacent to blank clips, with all internal elements (waveforms, labels, overlays) adjusting their margins and rendering to respect these corners. [[1]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR52-R68) [[2]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR136-R139) [[3]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL302-R323) [[4]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL317-R338) [[5]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR361-R370) [[6]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL358-R383) [[7]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL422-R447) [[8]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL451-R476) [[9]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dL485-R510) [[10]](diffhunk://#diff-1c84701ecfe2a13a9c7af21b29962221ed5d98615dfa7246dbeaf7e09ad61a2dR868-R879)
  • Highlighted widgets and tool buttons now consistently use a border radius and padding, with stylesheet-based highlight colors applied for a bolder, more modern look across toolbars and dialogs. [[1]](diffhunk://#diff-c72b037f3ac7abbd3d0ee519b6f456013a9bbf5a59df16308939320c04970447R6734-R6737) [[2]](diffhunk://#diff-c72b037f3ac7abbd3d0ee519b6f456013a9bbf5a59df16308939320c04970447R6759-R6772) [[3]](diffhunk://#diff-449acf764318b0ca96972daf8d28a28af79ad2c3381044851f2953792fcd8eefR98-R117) [[4]](diffhunk://#diff-9fbf25a69a1e049a230d12531ddd8cb1d97b6b159ff58f1e50bbe13639110e7aL293-L304)

Playhead Color Unification:

  • The playhead (timeline cursor) color is now defined in one place (QmlApplication::playheadColor, a bold red) and used consistently in the timeline, keyframes, and scrub bar, replacing palette-based colors for a more distinctive and unified appearance. [[1]](diffhunk://#diff-2f2b1b9b158555359e177b7ec1533afdffad97c574c062b505b6a421ff6a6df6R38) [[2]](diffhunk://#diff-2f2b1b9b158555359e177b7ec1533afdffad97c574c062b505b6a421ff6a6df6R52) [[3]](diffhunk://#diff-55a614f4012582e64c38322e003f6f4a7168cdc141206afedee11f85e6b6d3c3L692-R692) [[4]](diffhunk://#diff-99a89fbae8851c4a4dc714ca7c3c279d0acac788d90b93dacc2b4758af00f446L487-R487) [[5]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8R23) [[6]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8L79-R80) [[7]](diffhunk://#diff-ab2d6f0bea89acc884b6c4b01a5d0653f1f64a0a7e2e460335ea07401afe424dR21) [[8]](diffhunk://#diff-ab2d6f0bea89acc884b6c4b01a5d0653f1f64a0a7e2e460335ea07401afe424dL205-R206) [[9]](diffhunk://#diff-ab2d6f0bea89acc884b6c4b01a5d0653f1f64a0a7e2e460335ea07401afe424dL214-R220)

Waveform Rendering Improvements:

  • The waveform outline is now drawn only along the peaks (not the bottom edge), preventing dark lines from conflicting with the rounded corners of clips and improving visual clarity. [[1]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8R184-R185) [[2]](diffhunk://#diff-ef187bb312074b533967fb65959e7f6c517b166068034e13b8e61f6b1c55ccb8R197-R206)

Other Visual Tweaks:

  • Filter view highlights and text in QML now have rounded corners and padding for better aesthetics and readability. [[1]](diffhunk://#diff-d5dfcab619de90f75b912ce6de40cc25b72d8fefc0697f732f91ff5616817b51R115) [[2]](diffhunk://#diff-d5dfcab619de90f75b912ce6de40cc25b72d8fefc0697f732f91ff5616817b51R136-R137)
  • The copyright notice in statuslabelwidget.cpp has been updated.

These changes collectively modernize the application's look and feel, enhance consistency, and address subtle UI details for a more polished user experience.

Comments Threads Pending Resolution

ljharb reviewed on July 7, 2026
ljharb left a comment

## Pull request overview

This PR refines Shotcut’s UI styling to improve visual consistency across Qt widgets and QML views, including rounded corners, highlight styling, and a single shared playhead color used in both QML and C++ rendering.

**Changes:**
- Centralize the playhead/cursor color via `QmlApplication::playheadColor` and use it in the scrub bar, timeline, and keyframes.
- Add rounded-corner handling to timeline clips (including margin/layout adjustments for thumbnails, labels, and waveforms) and tweak filter view highlight styling.
- Adjust waveform drawing to avoid stroking the bottom closing edge to better match rounded clip corners.

### Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file

| File | Description |
| ---- | ----------- |
| src/widgets/statuslabelwidget.cpp | Applies highlight-style visuals to the status label widget. |
| src/widgets/newprojectfolder.cpp | Updates “New Project” frames/labels highlight styling via stylesheets. |
| src/util.cpp | Enhances highlight styling helper with padding and rounded corners. |
| src/scrubbar.cpp | Uses the unified playhead color when painting the scrub bar playhead. |
| src/qmltypes/timelineitems.cpp | Uses unified playhead color; refines waveform stroke to outline peaks only. |
| src/qmltypes/qmlapplication.h | Introduces `playheadColor` Q_PROPERTY and accessor for consistent playhead color. |
| src/qml/views/timeline/timeline.qml | Switches timeline cursor color to the unified playhead color. |
| src/qml/views/timeline/Clip.qml | Adds conditional rounded corners and adjusts internal layout to respect them. |
| src/qml/views/keyframes/keyframes.qml | Switches keyframes cursor color to the unified playhead color. |
| src/qml/views/filter/filterview.qml | Adds rounding and padding to filter highlight elements. |
| src/mainwindow.cpp | Adds consistent rounded/checked styling to layout switcher tool buttons. |

Resolved Comment Threads

ljharb reviewed on July 7, 2026
ljharb left a comment

## Pull request overview

This PR refines Shotcut’s UI styling to improve visual consistency across Qt widgets and QML views, including rounded corners, highlight styling, and a single shared playhead color used in both QML and C++ rendering.

**Changes:**
- Centralize the playhead/cursor color via `QmlApplication::playheadColor` and use it in the scrub bar, timeline, and keyframes.
- Add rounded-corner handling to timeline clips (including margin/layout adjustments for thumbnails, labels, and waveforms) and tweak filter view highlight styling.
- Adjust waveform drawing to avoid stroking the bottom closing edge to better match rounded clip corners.

### Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file

| File | Description |
| ---- | ----------- |
| src/widgets/statuslabelwidget.cpp | Applies highlight-style visuals to the status label widget. |
| src/widgets/newprojectfolder.cpp | Updates “New Project” frames/labels highlight styling via stylesheets. |
| src/util.cpp | Enhances highlight styling helper with padding and rounded corners. |
| src/scrubbar.cpp | Uses the unified playhead color when painting the scrub bar playhead. |
| src/qmltypes/timelineitems.cpp | Uses unified playhead color; refines waveform stroke to outline peaks only. |
| src/qmltypes/qmlapplication.h | Introduces `playheadColor` Q_PROPERTY and accessor for consistent playhead color. |
| src/qml/views/timeline/timeline.qml | Switches timeline cursor color to the unified playhead color. |
| src/qml/views/timeline/Clip.qml | Adds conditional rounded corners and adjusts internal layout to respect them. |
| src/qml/views/keyframes/keyframes.qml | Switches keyframes cursor color to the unified playhead color. |
| src/qml/views/filter/filterview.qml | Adds rounding and padding to filter highlight elements. |
| src/mainwindow.cpp | Adds consistent rounded/checked styling to layout switcher tool buttons. |