Skip to content

[stable-34.0] feat(tray): Migrate TrayWindow to the new tray user menu - #10321

Merged
Rello merged 19 commits into
stable-34.0from
backport/10164/stable-34.0
Jul 8, 2026
Merged

[stable-34.0] feat(tray): Migrate TrayWindow to the new tray user menu#10321
Rello merged 19 commits into
stable-34.0from
backport/10164/stable-34.0

Conversation

@backportbot

@backportbot backportbot Bot commented Jul 8, 2026

Copy link
Copy Markdown

Backport of PR #10164

Rello and others added 19 commits July 8, 2026 12:05
Consolidates the tray account status menu work and related follow-up fixes into one reviewable commit.

Assisted-by: Codex:gpt-5

Signed-off-by: Rello <[email protected]>
will make maintenance easier

Signed-off-by: Matthieu Gallien <[email protected]>
almost always use enum class to get more strict checks by compiler

use missing Qt macro definitions for better bindings

Signed-off-by: Matthieu Gallien <[email protected]>
return values of Qt slots are ignored

it was never checked by callers

Signed-off-by: Matthieu Gallien <[email protected]>
rowCount in a flat mdoel shoudl return 0 for every parent that is valid
otherwise, views may think that the menu has child items for every
existing items

also do not add not needed count method (reuse existing rowCount)

Signed-off-by: Matthieu Gallien <[email protected]>
Remove hardcoded sizes, radius and margins, use Style properties instead.
Extract the shared window flags, palette and background of the wizard
window into a new WizardStyledWindow base component.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <[email protected]>
The role enumerators were declared as a scoped enum (enum class) while
the tray popup call sites used the unscoped form and relied on implicit
int conversion, which broke the macOS build. Switch to an unscoped enum
so the enumerators live in class scope and convert to int, matching the
call sites and the sibling role enums, and drop the now-redundant casts.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <[email protected]>
The role range guard used role < IconUrlRole, which excluded IconUrlRole
itself, so case IconUrlRole was unreachable and data() returned an empty
QVariant for it. As a result the account apps popup never received app
icon URLs. Use <= so the icon role is served.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Camila Ayres <[email protected]>
…code files and added documentation

Signed-off-by: Iva Horn <[email protected]>
@backportbot
backportbot Bot requested a review from Rello July 8, 2026 12:05
@backportbot backportbot Bot added os: 🍎 macOS Apple macOS, formerly also known as OS X os: 🚪 Windows os: 🐧 Linux feature: ☁️ GUI System tray icon and menu. 3. to review design Design, UI, UX, etc. labels Jul 8, 2026
@backportbot backportbot Bot added this to the 34.0.0 milestone Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Artifact containing the AppImage: nextcloud-appimage-pr-10321.zip

Digest: sha256:fd337ab647bf88abab836c85feadcd55bf30d19e1def095d3a9384844f356ac0

To test this change/fix you can download the above artifact file, unzip it, and run it.

Please make sure to quit your existing Nextcloud app and backup your data.

@sonarqubecloud

sonarqubecloud Bot commented Jul 8, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
28.4% Coverage on New Code (required ≥ 80%)
91 New Code Smells (required ≤ 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@Rello
Rello merged commit 495100f into stable-34.0 Jul 8, 2026
20 of 22 checks passed
@Rello
Rello deleted the backport/10164/stable-34.0 branch July 8, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review design Design, UI, UX, etc. feature: ☁️ GUI System tray icon and menu. os: 🍎 macOS Apple macOS, formerly also known as OS X os: 🚪 Windows os: 🐧 Linux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants