Skip to content

[stable-33.0] Develop stable 33.0 - #26

Open
borisbaltesbrickmakers wants to merge 1119 commits into
stable-33.0from
develop_stable-33.0
Open

borisbaltesbrickmakers wants to merge 1119 commits into
stable-33.0from
develop_stable-33.0

Conversation

@borisbaltesbrickmakers

Copy link
Copy Markdown
Collaborator

No description provided.

borisbaltesbrickmakers and others added 30 commits August 14, 2026 13:31
…nd via source verification

Verified all 13 files under .claude/context/gui/ against the actual
source code; corrected false/imprecise claims (wrong method names,
non-existent files, wrong related-files references, imprecise quotes).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- stable-merge-check: before recommending removal of an apparently-unused
  file/class, check whether origin/<branch> still actively carries it.
  Deleting something stable still uses would widen the diff instead of
  shrinking it, so removal is only merge-robust when stable has dropped
  it too.
- gui-context-refresh: anchor --since checks to "<date> 00:00:00" so a
  refresh run on the same day the "Stand" date was set doesn't silently
  filter out that day's own commits.
… status-feature question

- Caught up the CurrentAccountHeaderButton.qml review gap: the initial
  registry entry marked de066e6 as "last reviewed" but only the top-5
  commits plus the anySyncFolders one had actually been inspected, leaving
  24 unreviewed upstream commits (2025-03-19 to 2026-02-11). Reviewed all
  of them now; nothing required porting beyond the anySyncFolders guard
  already applied.
- Resolved the one open question from that review: UserLine.qml's
  showUserStatusMessageSelector/showUserStatusSelector signals are both
  dead in the fork (no call sites anywhere in src/gui/tray), matching
  stable-33.0 losing its "Set status"/"Status message" menu items.
  Confirmed intentional - the product has no collaboration features, so
  user status doesn't apply. Registry now groups the status indicator
  (SES-50) and the two menu items (removed via the SES-457 squash commit,
  no inline ticket reference) as one deviation instead of flagging the
  menu items as an open gap on future runs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
that was never in use at all
userMoreButtonMenu was a Menu nested inside another open Menu
(accountMenu), invoked manually via popup() instead of a registered
submenu - Qt closed the outer accountMenu as a side effect and the
inner popup never showed. Switched it to a plain Popup with regular
Buttons instead of Menu/MenuItem.

Also fixes, found while tracking this down:
- accountServer.color threw "Cannot read property 'enabled' of null"
  after the account list Instantiator recreates its delegates - now
  reuses the already-guarded statusItemColor instead of duplicating
  the unguarded expression.
- Accessible.onPressAction referenced the no-longer-existing
  userMoreButtonMouseArea id.
- logInOutButton had both onClicked and onPressed firing the same
  logout/login toggle, immediately undoing itself on click; removed
  the duplicate and restored enabled: model.canLogout.
- logInOutButton/removeAccountButton called accountMenu.close(), an
  id that only exists in TrayWindowAccountMenu.qml, not UserLine.qml
  - added a requestCloseAccountMenu signal to bridge this properly.
accountAvatarSize is sized for the taller header account button
(trayWindowHeaderHeight-based) and was reused as-is for the much
shorter per-account dropdown rows (sesAccountMenuHeight-based),
making the avatar taller than the row's available content height.
Now capped to userLine.availableHeight.
…cer)

The extra fillWidth spacer competed with accountLabels for the same
row space, needlessly shrinking the account name/server text.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… design

Restores visibility (hidden since SES-589, deferred because it wasn't
a direct develop_stable-4.0 element) and styles the search field and
result hover state to match the fork's design (background/border/text
colors like ShareeSearchField, Style.sesHover instead of
palette.highlight, standard input field height).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Tray-relevant WLTheme colors were CONSTANT (basetheme.h/stratotheme.h,
introduced in the SES-457 whitelabel overhaul) and several flat hex
tokens in Style.qml had no dark-mode branch, so the tray stayed light
regardless of the OS theme.

- basetheme.h/stratotheme.h: switch the 14 tray-relevant Q_PROPERTY
  colors from CONSTANT to NOTIFY themeColorsChanged, wired to
  Theme::darkModeChanged, and give each a dark variant via a new
  themedColor() helper. Values are first-pass/derived, not yet
  design-reviewed.
- Style.qml: add dark branches for the remaining flat ses* tokens
  (backgroundColor, sesHover, sesMenuBorder, sesSearchFieldContent,
  sesSelectedColor, sesWhite) so the pre-existing lightHover/
  darkerHover/menuBorder ternaries (dead since SES-457 fixed
  backgroundColor to "#FFFFFF") work again too.
- AccountMenuItem.qml, ActivityItemContent.qml, UserLine.qml,
  UnifiedSearchInputContainer.qml: fix stale one-time color
  snapshots (Component.onCompleted: contentItem.color = ...) that
  were harmless while the source was CONSTANT but now go stale once
  it can actually change; replaced with Qt.binding().
- UserLine.qml: accountServer label now uses Style.sesTrayFontColor
  directly instead of the generic-palette-based statusItemColor, for
  consistency with accountUser above it.
- UserStatusMessageView.qml: give the clear-status ComboBox a custom
  indicator (caret-down.svg via the custom-color image provider)
  since the default arrow wasn't part of the theming system.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- TrayWindowAccountMenu.qml: the account-switcher chevron loaded the
  brand-specific ses-chevron.svg asset directly, whose color is baked
  into the file and can't be retinted. Switched to the generic
  caret-down.svg via the svgimage-custom-color provider (same pattern
  as TrayFoldersMenuButton.qml and the predecessor
  CurrentAccountHeaderButton.qml), tinted with Style.sesTrayFontColor.
  Logged as an open item in DECISIONS.md: the icon shape differs
  slightly, may need a proper brand asset from design.
- theme.cpp/application.cpp: Theme::Theme()'s constructor
  unconditionally forces QPalette::WindowText to a fixed dark navy,
  regardless of dark mode - this feeds native/style-rendered controls
  (e.g. FluentWinUI3 on Windows 11) that derive their ink color from
  the app palette. Left the constructor itself untouched (it can run
  before QGuiApplication exists via the static WLTheme chain, so
  calling darkMode() there risks a null-pointer crash). Instead added
  the light/dark branch to the already-safe, already-reactive
  Theme::systemPaletteHasChanged() slot, and call it once explicitly
  in Application's constructor so the correct value is established at
  startup instead of only after the first live theme-change event.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The Windows brander generates its own state-offline.svg, so any fork
change to it conflicts on merge (jobs 42102, 42104). The tray sync
status now uses WLTheme.syncOfflineIcon() in the two remaining places,
so the IONOS build no longer loads this file.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Done Changes for Customization Service.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants