Skip to content

feat: refactor activity window into own folder structure#10350

Open
Rello wants to merge 4 commits into
masterfrom
feature/activityRefactor
Open

feat: refactor activity window into own folder structure#10350
Rello wants to merge 4 commits into
masterfrom
feature/activityRefactor

Conversation

@Rello

@Rello Rello commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Implemented the Search-style activity modularization.

  • Moved activity QML and C++ support into src/gui/activity/ and src/gui/activity/qml/.
  • Updated resources, CMake, imports, and external include paths.
  • Activities window now receives account data, activity model, and sync-status model from Systray, rather than accessing UserModel from QML.
  • Moved chat replies into ActivityListModel, removing the User-model reply bridge.
  • Added account-based sync-status loading for the standalone window.

AI (if applicable)

@Rello Rello self-assigned this Jul 10, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 266bca3edf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/gui/activity/qml/ActivitiesWindow.qml
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
47.1% Coverage on New Code (required ≥ 80%)
141 New Code Smells (required ≤ 0)

See analysis details on SonarQube Cloud

💡 Need a hand with PR review? Try Gitar by Sonar!

@Rello

Rello commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator Author

@copilot resolve the merge conflicts in this pull request

Copilot AI commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Done — merged origin/master into the branch. Git auto-resolved all conflicts cleanly (resources.qrc, CMakeLists.txt, activitylistmodel.cpp, owncloudgui.cpp, systray.cpp). The merge commit is c2a23ed.

Copilot finished work on behalf of Rello July 14, 2026 11:54
Rello added 2 commits July 17, 2026 09:20
Signed-off-by: Rello <github@scherello.de>
…ned SyncStatusSummary before showing it.

Signed-off-by: Rello <github@scherello.de>
@mgallien
mgallien force-pushed the feature/activityRefactor branch from c2a23ed to 1910cdb Compare July 17, 2026 07:20
@mgallien
mgallien requested a review from claucambra as a code owner July 17, 2026 07:20
@github-actions

Copy link
Copy Markdown
Contributor

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

Digest: sha256:466d49bd02a42aa4f2da394aec6482baaa5e30a62485cab6c873f5144e3867b5

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.

Signed-off-by: Rello <Rello@users.noreply.github.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b54174cffb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

void slotTriggerDefaultAction(const int activityIndex);
void slotTriggerAction(const int activityIndex, const int actionIndex);
void slotTriggerDismiss(const int activityIndex);
Q_INVOKABLE void sendReplyMessage(const int activityIndex, const QString &conversationToken, const QString &message, const QString &replyTo);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Document the new public activity APIs

This new public Q_INVOKABLE has no Doxygen documentation, despite /workspace/desktop/AGENTS.md requiring: “Document the type and each declared member.” Its behavior for an empty conversation token, message, or replyTo is not evident from the declaration and should be documented; the newly added SyncStatusSummary::loadForAccount() and User::refreshActivities() declarations likewise need the required documentation.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aa76f9cb8e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread resources.qrc
<file>src/gui/tray/ActivityItemActions.qml</file>
<file>src/gui/tray/ActivityItemContent.qml</file>
<file>src/gui/tray/TalkReplyTextField.qml</file>
<file>src/gui/search/qml/UnifiedSearchInputContainer.qml</file>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Remove resource entries for nonexistent search files

The commit tree contains these search components directly under src/gui/search/, and a repo-wide git ls-tree check shows there is no src/gui/search/qml/ directory. Because src/gui/CMakeLists.txt passes this file to qt_add_resources, resource generation will fail when it tries to read these nonexistent paths; the search components are already bundled by src/gui/search/CMakeLists.txt via ecm_add_qml_module.

Useful? React with 👍 / 👎.

Comment thread src/gui/systray.cpp
Comment on lines +298 to +301
{"avatar", user->avatarUrl()},
{"name", user->name()},
{"server", user->server()},
{"accentColor", user->accentColor()},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep cached account header properties live

When an activities window remains cached, this QVariantMap is only a snapshot, so later User::nameChanged, avatarChanged, or accentColorChanged notifications cannot update its header or activity accent color. Those signals are wired to display-name, avatar, and capability changes in User::User, and showActivitiesWindow() reuses the existing window without rebuilding this map, leaving it stale after any such account update; pass the live User object or refresh these properties for cached windows.

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants