Skip to content

Feature/governance labels integration#10100

Open
mgallien wants to merge 18 commits into
masterfrom
feature/governanceLabelsIntegration
Open

Feature/governance labels integration#10100
mgallien wants to merge 18 commits into
masterfrom
feature/governanceLabelsIntegration

Conversation

@mgallien

@mgallien mgallien commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Thanks for opening a pull request on the Nextcloud desktop client.

Before sending a pull request that fixes a security issue please report it via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/).
This allows us to coordinate the fix and release without potentially exposing all Nextcloud client users in the meantime.

Instead of a Contributor License Agreement (CLA) we use a Developer Certificate of Origin (DCO).
https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin
-->

Resolves

#

Close https://github.com/nextcloud-gmbh/server/issues/953
Close https://github.com/nextcloud-gmbh/server/issues/957

Summary

TODO

  • ...

Checklist

AI (if applicable)

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

@mgallien mgallien added feature: ☁️ GUI System tray icon and menu. 2. developing labels Jun 2, 2026
@mgallien mgallien added this to the 34.0.0 milestone Jun 2, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Clang-Tidy found issue(s) with the introduced code (1/1)

Comment thread src/gui/governance/governancenetworkjob.h Outdated
@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch from 08ca064 to 1582c09 Compare June 5, 2026 07:01
@github-actions github-actions Bot dismissed their stale review June 5, 2026 07:13

No Clang-Tidy warnings found so I assume my comments were addressed

@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch 3 times, most recently from b830eeb to 67ce384 Compare June 11, 2026 13:17
@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch 2 times, most recently from 9eb43f4 to 53e3bf8 Compare June 15, 2026 07:29
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
63.4% Coverage on New Code (required ≥ 80%)
131 New Code Smells (required ≤ 0)
D Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

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

@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch 4 times, most recently from dc9a299 to 7368284 Compare June 24, 2026 13:29
@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch 5 times, most recently from 5ed8302 to f03b9e7 Compare July 1, 2026 13:06
@Rello Rello moved this to 🏁 NC34 in 💻 Desktop Clients team Jul 6, 2026
@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch from f03b9e7 to 55323d4 Compare July 7, 2026 10:07
@mgallien mgallien marked this pull request as ready for review July 8, 2026 07:24
mgallien added 2 commits July 8, 2026 09:24
will enable to share type definitions in all real jobs

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
mgallien added 16 commits July 8, 2026 09:24
also improve the available properties for the job parameters

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
finish implementing most of the code needed to send requests to the
governance API

will need further work to see how to read the replies and make something
usefull

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
should enable us to test the requests one by one and ensure we decode
properly the replies

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
we explicitely define which roles need to be used

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Restyle GovernanceLabelsDialog to match the design system used by
AccountWizardWindow and its sub-components in wizard/qml/:

- Set explicit wizard palette and background on the ApplicationWindow
  for full light/dark mode support
- Replace stock ComboBox, Button and DialogButtonBox with WizardComboBox
  and WizardButton for consistent Nextcloud branding
- Add bold dialog title heading, update margins to 24 px, fix spacing
- Wrap all label strings in qsTr() and apply wizard text colors
- Fix window title typo ("Applys labels" → "Apply labels")
- Add WizardComboBox.qml, a reusable styled combo box following the
  WizardButton/WizardTextField component pattern

Assisted-by: ClaudeCode:claude-sonnet-4-6
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
should make it easier and more predictable to use from QML

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
the model is responsible to provide data to the UI and manage the
set of selected labels by taking UI input and delegating the
modifications via emitted signals

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
the item in the combobox have the ability to show if they are selected
or not

refresh state as soon as one label is selected

select a selected one will remove it

select an unselected one will apply it

selecting none should remove all labels

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
@mgallien mgallien force-pushed the feature/governanceLabelsIntegration branch from 55323d4 to e946e51 Compare July 8, 2026 07:24
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

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

Digest: sha256:5f593a7e9d8833923d5fe47ebd8c9fa1c06513b6f4e0e0337f3b99cfe928e8a0

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.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Clang-Tidy found issue(s) with the introduced code (1/1)


explicit GovernanceLabelsListModel(QObject *parent = nullptr);

int rowCount(const QModelIndex &parent = QModelIndex()) const override;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ modernize-use-nodiscard ⚠️
function rowCount should be marked [[nodiscard]]

Suggested change
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
[[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;


int rowCount(const QModelIndex &parent = QModelIndex()) const override;

QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ modernize-use-nodiscard ⚠️
function data should be marked [[nodiscard]]

Suggested change
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
[[nodiscard]] QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;


QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;

QHash<int,QByteArray> roleNames() const override;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ modernize-use-nodiscard ⚠️
function roleNames should be marked [[nodiscard]]

Suggested change
QHash<int,QByteArray> roleNames() const override;
[[nodiscard]] QHash<int,QByteArray> roleNames() const override;

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

Labels

2. developing feature: ☁️ GUI System tray icon and menu.

Projects

Status: 🏁 NC34

Development

Successfully merging this pull request may close these issues.

2 participants