Frameless main window with title-bar drag, min/max/close, and size grip#1926
Merged
Conversation
…ze grip The whole app is now frameless by default. A one-shot AppSettings migration (FramelessMigratedV0823) flips existing installs from the prior opt-in default; View → Frameless Window stays as a toggle for users on broken Wayland compositors etc. TitleBar gains: * Drag-to-move on bare-background mouse press → window()->windowHandle() ->startSystemMove() (Qt 6 cross-platform compositor primitive). Menu items, buttons, and sliders intercept their own clicks so drag only fires on truly empty areas. * Double-click to toggle maximize / restore. * Three flat QLabels at the far right — — (em-dash, minimize), □ / ❐ (maximize / restore), ✕ (close). Same flat aesthetic as the rest of the bar; cyan hover for min/max, red hover for close. Click is wired via eventFilter so the labels stay simple. * Window-state-change event filter on the host window keeps the maximize icon swapped between □ and ❐ without explicit signal plumbing. A QSizeGrip is anchored to the bottom-right of MainWindow as a direct child (not parented into the heavily-styled QStatusBar, which was suppressing the dotted-texture paint), repositioned in resizeEvent. Mirrors how FloatingContainerWindow / PanFloatingWindow already do it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 tasks
2 tasks
ten9876
added a commit
that referenced
this pull request
May 2, 2026
Bundles seven independently-verified maintainer-reviewed fixes: - #2027 TitleBar headline now shows running version number — regressed with frameless-window mode (#1926). Restored via the same applicationVersion() pattern used by setWindowTitle(). - #2263 FlexControl knob press tokens are bare S/C/L (not X4S/X4C/X4L). Verified against hardware capture from LB2EG: side buttons emit X1S/X1C/X1L/X2S/.../X3L (parsed correctly today), knob press emits bare S/C/L. Adds a new branch in processCommand() mapping the bare tokens to buttonPressed(4, action), keeping the X-prefix path for the side buttons. Dead X4S path retained as defense in depth. - #2264 ggmorse Å sequence corrected from 01110 to 01101 per ITU-R M.1677-1. Confirmed Æ (0101) and Ø (1110) on the same lines are unaffected. - #1564 K/SFI/WNB/RF Gain/WIDE indicator strip click suppression. New m_indicatorStripRect tracks the full strip in both paint paths; mouseReleaseEvent guards skip the frequency emit when single-click tune lands inside the strip. Existing m_propClickRect dialog click is unaffected. - #1576 Slice record (⏺) and play (▶) button visibility. Roughly doubled alpha values across all four stylesheet locations and brightened the inactive icon colors so the buttons are legible against the #0a0a14 spectrum background. - #1581 + the close (✕) and lock (🔓) buttons on each slice header now share a single sliceBtnStyle base with record/play, ensuring identical 20px circles. Status indicators (TNF/CWX/DVK/FDX) all use cyan #00b4d8 for active and #404858 for off; TNF init colour fixed (was rgba(255,255,255,128)). updateKeyerAvailability() and the CWX/DVK click handlers now use #404858 instead of rgba(255,255,255,40) for the off-state, so DVK in voice mode matches the rest of the indicator strip when not in use. - #1583 Status-bar time stack reduced from 3 rows to 2 (date + UTC time) by removing the grid-square label, matching every other telemetry stack. m_gridLabel removed from MainWindow.h. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make the whole app frameless by default — no more OS title bar. TitleBar gains drag-to-move, double-click-to-maximize, and a min/max/close trio at the far right. A QSizeGrip in the bottom-right corner provides resize.
What's in
Test plan
🤖 Generated with Claude Code