Skip to content

feat: tray redesign#9977

Merged
mgallien merged 15 commits into
masterfrom
feature/tray
May 27, 2026
Merged

feat: tray redesign#9977
mgallien merged 15 commits into
masterfrom
feature/tray

Conversation

@camilasan
Copy link
Copy Markdown
Member

@camilasan camilasan commented May 6, 2026

Resolves

Implements #9902

Summary

TODO

  • macOS - Objective-C
    Screenshot 2026-05-06 at 13 37 02
    Screenshot 2026-05-06 at 13 39 19
  • Linux - QML
    Screenshot_20260506_194233
    Screenshot_20260506_193933
  • Windows - QML
    Screenshot_20260506_212227
    Screenshot_20260506_212324
  • add second account
  • add screenshot without mouse over
  • change "App settings" to "Settings"
  • add screenshot in light mode
  • ping Designers in PR
  • compare Objective-C to QML for other platforms
  • add "Add account" action

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@camilasan camilasan added this to the 34.0.0 milestone May 6, 2026
@camilasan camilasan self-assigned this May 6, 2026
@camilasan camilasan added the design Design, UI, UX, etc. label May 6, 2026
@camilasan camilasan marked this pull request as draft May 6, 2026 09:02
@camilasan camilasan changed the title wip: tray reseign wip: tray redesign May 6, 2026
@camilasan camilasan requested a review from kra-mo May 6, 2026 11:31
@jancborchardt jancborchardt moved this to 🏗️ At engineering in 🖍 Design team May 6, 2026
@Rello
Copy link
Copy Markdown
Collaborator

Rello commented May 7, 2026

@kra-mo Are we supposed to add the "Add account" to the tray window even so its not in the mock-up or should this go somewhere else?

@kra-mo
Copy link
Copy Markdown
Member

kra-mo commented May 7, 2026

@kra-mo Are we supposed to add the "Add account" to the tray window even so its not in the mock-up or should this go somewhere else?

Since it's not that common of an action, it's fine either way, but I suppose why not since we want to move everything here eventually :)

Copy link
Copy Markdown
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kra-mo Are we supposed to add the "Add account" to the tray window even so its not in the mock-up or should this go somewhere else?

@Rello @kra-mo also, we probably should have it in there anyway in case people accidentally or for whatever reason close the first run dialog and have no account configured.

Then it makes more sense to have "Add account" as the only item in that list rather than it being empty and knowing you need to go to "Settings".

Copy link
Copy Markdown
Member

@kra-mo kra-mo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty good generally from the screenshot :)

two pieces of feedback:

  • The margins between the two menu items (Settings and Quit) is quite large. It should be as big as on the top/bottom.
  • The status icons on the Mac version should have a white foreground instead of transparent, like in the Qt version, so that they are always visible, even if the background is green for example.

@camilasan camilasan changed the title wip: tray redesign feat: tray redesign May 11, 2026
Copy link
Copy Markdown
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since now "Add account" moves down one order of magnitude, we need to include it on this new screen. We should have an entry "Add account" between "Settings" and "Quit" which launches the account wizard.

@Rello Rello moved this to 🏗️ In progress in 💻 Desktop Clients team May 14, 2026
@Rello
Copy link
Copy Markdown
Collaborator

Rello commented May 19, 2026

macos

Bildschirmfoto 2026-05-19 um 15 34 26 Bildschirmfoto 2026-05-19 um 15 34 07

@i2h3
Copy link
Copy Markdown
Collaborator

i2h3 commented May 19, 2026

macos

Bildschirmfoto 2026-05-19 um 15 34 26 Bildschirmfoto 2026-05-19 um 15 34 07

I would leave out "Add account" as well because it is rarely relevant and only clutters the user interface. Most users likely set up their single account and they are good. Power users, administrators or whoever uses multiple at once probably are the minority and might survive clicking "Settings" first to add an account there. And even people are constantly setting up accounts (like me in daily development workflow), they also can use the CLI for that.

@kra-mo
Copy link
Copy Markdown
Member

kra-mo commented May 19, 2026

We can think about how to organize it later, I think for now, having it mirror the menu in the main popover makes sense.

I do see your point. This is something to think about when we expand this one. (And eventually remove the menu from the main dialog as well.)

@Rello
Copy link
Copy Markdown
Collaborator

Rello commented May 20, 2026

Settings are being re-done as part of #10031
so I would suggest that we move the "Add Account" there right away because we are touching it anyway.
OK to remove here again?

Copy link
Copy Markdown
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approval based on the screenshot in #9977 (comment)
Where the "Add account" is present.

@i2h3 my concern is that there are several cases where "Add account" is needed:

  • Accidental closing of the first run wizard
  • Want to add a second account
  • Removed the only account
  • Want to add a second or third account MUCH later than you added the other one and forgot how it works

It's not bad to have multiple entry points, like here in the menu directly, as well as also in the settings dialog.

@Rello
Copy link
Copy Markdown
Collaborator

Rello commented May 20, 2026

Ok. Will keep it. Thank you

  • Accidental closing of the first run wizard
  • Removed the only account

For the sake of completeness: the client does not start without an account. It will always force the account wizard in that case

@i2h3
Copy link
Copy Markdown
Collaborator

i2h3 commented May 20, 2026

@i2h3 my concern is that there are several cases where "Add account" is needed:

  • Accidental closing of the first run wizard
  • Want to add a second account
  • Removed the only account
  • Want to add a second or third account MUCH later than you added the other one and forgot how it works

It's not bad to have multiple entry points, like here in the menu directly, as well as also in the settings dialog.

@jancborchardt I did not mean it is bad, under certain circumstances it likely is clutter.

It does not have to be present statically. In example, when no account is set up yet, it makes sense to keep the menu item around (implicitly includes the "Removed the only account" and "Accidental closing of the first run wizard" states). "Want to add a second or third account MUCH later than you added the other one and forgot how it works" is logically the same as "Want to add a second account" just with an arbitrarily larger time delay.

I brought that up to @Rello directly as well: this is an inconsistency I see in our user experience. We have central app settings but account management is not possible there but only buried in popup menus in the menu bar extra. The latter likely is the place with highest interaction rate of which account removal and addition probably is not part of for the vast majority of users, I assume.

Accidental closing of the first run wizard

Thank you for pointing this out. I have never noticed this. Keeping the app running despite no account being configured and the only relevant user interface (wizard) dismissed appears irrational and (at least on macOS) counterintuitive (background apps terminate when they serve no purpose or activity) and inefficient (resource consumption for idling).

@Rello @camilasan @nilsding @mgallien Do you know why it is like that?

On a second thought, I would suggest to have this simple logic:

flowchart TD
    L[Launch app]
    L --> F{Any account configured?}
    F -- Yes --> M[Present menu bar extra]
    F -- No --> W[Present wizard]
    W --> N{Account configuration completed?}
    N -- Yes --> M
    N -- No --> T{Quit app}
    M -- Account removal -->W
Loading

Given that logic and the additional account configuration trigger in the central app settings there is no state management necessary and the item can be omitted completely.

@Rello
Copy link
Copy Markdown
Collaborator

Rello commented May 20, 2026

@Rello @camilasan @nilsding @mgallien Do you know why it is like that?.

See my answer above. It is not.

@mgallien
Copy link
Copy Markdown
Collaborator

windows dark mode
image
image

@mgallien

This comment was marked as outdated.

camilasan added 8 commits May 26, 2026 12:33
Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
…m QML window.

Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
…ngs.

Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
@mgallien
Copy link
Copy Markdown
Collaborator

linux light mode
image

@mgallien
Copy link
Copy Markdown
Collaborator

updated windows dark mode
image

updated windows light mode
image

Rello and others added 4 commits May 26, 2026 15:46
Signed-off-by: Rello <github@scherello.de>
Signed-off-by: Rello <github@scherello.de>
Signed-off-by: Rello <github@scherello.de>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
@mgallien mgallien enabled auto-merge May 26, 2026 13:48
@github-actions
Copy link
Copy Markdown

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

Digest: sha256:7c40ca35b73066af16988d21d64c6ee1c423f186bc22f1bd014a91710e3a501c

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.

@mgallien mgallien disabled auto-merge May 26, 2026 14:27
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file contains multiple type declarations and implementations which usually belong into dedicated source code files.

  • Static constants from line 15 to 29
  • Static functions from line 31 to 109
  • NCHoverView into dedicated .h and .mm
  • NCAccountRowDelegate into dedicated .h
  • NCAccountRow into dedicated .h and .mm
  • NCActionRow into dedicated .h and .mm
  • NCSpacerView into dedicated .h and .mm
  • NCTrayPopup into dedicated .h and .mm
  • and so on
  • The C++ part starting at line 486 probably should be relocated, too.
  • Otherwise only AI can see through this file anymore. 😅

We should add that to our AGENTS.md about code style in Objective-C.

@sonarqubecloud
Copy link
Copy Markdown

❌ The last analysis has failed.

See analysis details on SonarQube Cloud

Copy link
Copy Markdown
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good from design-side :) And sorting of "Add account" at that position also makes more sense cause the account list is directly above. Looks nice!

@mgallien mgallien merged commit 20ba045 into master May 27, 2026
21 of 22 checks passed
@mgallien mgallien deleted the feature/tray branch May 27, 2026 07:05
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 💻 Desktop Clients team May 27, 2026
@github-project-automation github-project-automation Bot moved this from 🏗️ At engineering to 🎉 Done in 🖍 Design team May 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design Design, UI, UX, etc.

Projects

Status: ☑️ Done
Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

6 participants