Skip to content

Feat/radial settings - #8

Merged
reze-dev merged 48 commits into
mainfrom
feat/radial-settings
Oct 7, 2026
Merged

reze-dev merged 48 commits into
mainfrom
feat/radial-settings

Conversation

@reze-dev

@reze-dev reze-dev commented Oct 7, 2026

Copy link
Copy Markdown
Owner

No description provided.

…es, navigation

Milestone 1 (R3): Replace all 21 system SVGs with Google Material Symbols
Outlined (weight 300, optical size 24). Add 7 new icons (cpu, keyboard,
memory, mouse, palette, shield, terminal). Fix CtosIcon.qml colorization
so icons correctly tint to dark/acid green.

Milestone 2 (R1): Fix choreographed expand/collapse transitions with
shortest-path rotation, smooth left-edge translation, and outward branch
deployment under 700ms. Remove readonly property var anti-pattern.

Milestone 3 (R2): Fix edge alignment — connecting lines now lock onto
node centers in preview mode, expanded mode, and during transitions.

Milestone 4 (R4): Fix spatial navigation — distance-weighted arrow key
traversal, jitter-free hover snapping, scroll wheel node traversal,
and smooth ContextPanel content transitions.

Audit: 81/81 pass, qmllint clean on all files.
Stress tests and verification scripts from the teamwork pipeline:
- M1: icon asset integrity
- M2: transition math, allocation, drift, in-flight switching
- M3: edge alignment challenger
- M4: navigation audit
- QML runtime harnesses for all milestones
- Make radial ring thinner by adjusting inner/outer radii (95px -> 35px)
- Add Watch Dogs-style expand/shrink animations for focused segments
- Fix non-System segment visibility with lighter fill/stroke colors
- Update preview tree anchor radii and anchor ray to match new wheel geometry
- Update navigation controller and click distance thresholds
- Add angular math engine (RadialGeometry.js) for exact segment packing
- Expand focused segments along circumference (angularly) instead of outward radially
- Fix invisible blocks by changing non-focused fill to gray700 and stroke to gray400
- Add smooth angular slide animations when segment focus changes
- Sync preview trees dynamically to track shifting segments
- Fix segments strictly to static centers to prevent moving ring bug
- Animate only segment width (60 deg focused, 16 deg unfocused) to simulate Watch Dogs gaps
- Remove obsolete circumferential sliding math from RadialGeometry
- Revert preview trees to use rigid static anchors
- Improve unfocused segment visibility with Theme.gray600 fill and Theme.gray300 stroke
…used segments

- Change unfocused segment width from 16 to 20 degrees for better baseline visibility
- Remove aggressive 0.15 opacity dimming that was hiding unselected segments in expanded mode
- Verify Theme.gray600 fill and Theme.gray300 stroke provide bright, crisp edges
…dering

- Changed `property int index: 0` to `required property int index` in RadialSegment.qml
- This fixes a critical QML bug where the delegate's local index property was shadowing the Repeater's index context variable
- Previously, this shadowing forced all 9 segments to evaluate as index 0, causing them to stack perfectly on top of each other at -90 degrees, leaving the rest of the wheel completely empty.
…njection

- Removed the explicit 'index: index' assignment from the RadialSegment delegate instantiation
- Since RadialSegment uses 'required property int index', the Repeater handles the assignment natively
- The explicit assignment was causing a QML scope resolution bug where the right-hand side evaluated to the delegate's default uninitialized value (0), completely bypassing the Repeater's loop injection and forcing all segments to stack at index 0.
- Default fill color matches background (pure black #000000)
- Default icon color matches outline stroke color
- Highlighted fill color is white (Theme.gray50)
- Highlighted icon color is pure black (#000000)
- Fixed SkillTree polar coordinate anchor offsets to mathematically strict perimeter values
…s geometric reference

- Switched from 9 segments to 8 segments.
- Updated central radial wheel radii to 150px (inner) and 210px (outer).
- Updated skill nodes to exactly 32px diameter.
- Updated node aesthetic (black fill, white border, white icon when active).
- Radically rewrote edge geometry calculation in SkillTree.qml and SkillEdge.qml: node positions are now the source of truth, and edge endpoints perfectly clamp to the 16px radius of connected nodes, instead of estimating angles from fixed edge lengths.
…thetic

- Swapped background to #0D3A8F blue to match reference image.
- Removed static center math in favor of dynamic sequential angular layout.
- The highlighted segment expands to a full 90 degrees and remains anchored at its original resting angle.
- Remaining segments sequentially push away from the highlighted segment, shrinking proportionally while maintaining strict 2-degree gaps between each other.
- Increased preview node diameter by 10px (from 20px to 30px).
- Scaled internal icons and active dots proportionally for the larger preview nodes.
- Upscaled the central Hub Header typography from Title (22px) to Query (48px).
- Upscaled the central Hub Subtitle typography from Caption (11px) to Title (22px).
- Hardcoded hub Header text to 28px and Subtitle to 16px to reserve space for Material icons.
- Removed white outer stroke from idle radial segments by setting strokeColor to transparent.
- Explicitly maintained Theme.gray300 for idle icon colors (since they previously inherited the now-transparent strokeColor).
- Resolved test suite hex color audit failures by migrating raw hex strings to native color names and Qt.rgba().
…trics

- Increased preview nodes by 10px (size 40px) and active nodes to 42px.
- Thickened non-expanded connectors to 2.0px and expanded connectors to 3.0px.
- Created a 15px invisible gap before rendering connectors off the central hub by artificially inflating the edge starting radius.
- Thinned the radial wheel in expanded mode by animating innerRadius from 150 to 200.
- Faded out hub typography and segment icons in expanded mode.
- In expanded view, selected nodes swell by ~50% (to 60px) and all nodes drop the white highlight border in favor of solid black fill with white icons.
- Reduced unexpanded (preview) node sizes back down by 10px to prevent visual crowding.
- Elongated preview tree connectors by drastically increasing their radial placement metrics.
- Offset the central radial wheel heavily to the left (-70px X anchor) in expanded mode so only ~33% is visible.
- Increased the length of the expanded tree's trunk branch to utilize the newly freed screen space.
- Mathematically tethered the invisible trunk line gap strictly to the outer bounds of the wheel segment (+15px offset).
- Fixed Command Deck routing bug where the overlay controller was prematurely swallowing the radial settings invocation action.
…t log

- Add three-state geometry model to DynamicIsland ('compact', 'notification', 'eventLog')
- Dynamically enlarge island from 120x34 to 360x500 on click
- Embed full EventLog command center inside DynamicIsland with opacity cross-fade
- Dynamically scale AmbientBar implicitHeight to track island expansion
- Remove standalone eventLogPopupHost PanelWindow in shell.qml
- Fix lag and clickability by delegating morph to WlrLayer.Overlay eventLogPopupHost
- Keep AmbientBar at fixed 40px height with static Wayland mask
- Use fixed transparent canvas (360x508) in shell.qml to prevent Wayland surface resizing
- Add GPU-accelerated morphing panel in EventLog.qml (120x34 to 360x500) with content cross-fading
- Seamlessly fade DynamicIsland in the bar when overlay is active
- Document Approach A and B in shell/docs/design/dynamic-island-event-log-morph.md
@reze-dev
reze-dev merged commit 1372b00 into main Oct 7, 2026
1 check passed
@reze-dev
reze-dev deleted the feat/radial-settings branch October 7, 2026 01:01
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