Feat(DialBox): Add software knob interaction and context menu support by designgears · Pull Request #525 · StreamController/StreamController · GitHub
Skip to content

Feat(DialBox): Add software knob interaction and context menu support#525

Merged
Core447 merged 2 commits into
StreamController:mainfrom
designgears:knob-updates
Feb 18, 2026
Merged

Feat(DialBox): Add software knob interaction and context menu support#525
Core447 merged 2 commits into
StreamController:mainfrom
designgears:knob-updates

Conversation

@designgears

Copy link
Copy Markdown
Contributor

Resolves: #338

Summary

This PR adds comprehensive software control for dials in the StreamController UI, including drag-to-turn functionality, keyboard shortcuts, and a context menu for dial management.

Changes

  • Drag-to-turn functionality: Users can now click and drag on dials to turn them naturally with circular gesture detection
  • Keyboard shortcuts: Left/Right arrow keys turn dials when focused
  • Context menu: Right-click menu with copy, cut, paste, remove, and update actions
  • Visual feedback: Cursor changes (grab/grabbing) to indicate interactivity
  • Angle-based rotation: Mathematical calculations for natural knob turning behavior

Technical Details

  • Added Gtk.GestureDrag controller for drag interactions
  • Implemented angle calculations using math.atan2() for circular motion detection
  • Added Gio actions and keyboard shortcuts for software control
  • Created DialContextMenu class with proper menu structure
  • Integrated with existing dial event system using DialEventType.TURN

Files Modified

  • src/windows/mainWindow/DeckPlus/DialBox.py: Added 242 lines of new functionality

Testing

  • Verified drag-to-turn works with circular gestures
  • Confirmed keyboard shortcuts trigger proper dial events
  • Tested context menu actions (copy, cut, paste, remove, update)
  • No CSS warnings or runtime errors

Usage

  1. Drag to turn: Click and drag on any dial in a circular motion
  2. Keyboard control: Focus a dial and use Left/Right arrow keys
  3. Context menu: Right-click for dial management options

This enhancement makes the StreamController much more user-friendly for testing and configuration by providing intuitive software control over dial inputs.

Screencast_20260106_153830.webm

- Add drag-to-rotate functionality for software knob control with angle-based rotation tracking
- Add keyboard shortcuts for dial control (Left/Right arrows, Copy/Cut/Paste, Delete, F5)
- Add right-click context menu with copy/cut/paste/remove/update actions
- Add visual cursor feedback (grab/grabbing) during knob interaction
- Implement turn left/right methods to trigger dial events programmatically
- Set click controller to accept
@Core447 Core447 merged commit 4f8b4c5 into StreamController:main Feb 18, 2026
@Core447

Core447 commented Feb 18, 2026

Copy link
Copy Markdown
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Missing Right-clck Menu On Dial

2 participants