Skip to content

feat(fileprovider): solution to display integration in file provider using socket.#9461

Closed
camilasan wants to merge 24 commits intomasterfrom
feature/socket
Closed

feat(fileprovider): solution to display integration in file provider using socket.#9461
camilasan wants to merge 24 commits intomasterfrom
feature/socket

Conversation

@camilasan
Copy link
Member

@camilasan camilasan commented Feb 17, 2026

Solution to display integration in file provider using socket (LocalSocketClient).
The use of LocalSocketClient doesn't work.
File actions are listed in the context menu but FileProviderUIExt doesn't start.

See xpc solution option at #9458.

Related to #9403.

- declarativeui: add endpoints model.
- capabilities: fetch endpoints in capabilities.
- display endpoints in an application window.
- list file actions in context menu.
- remove EndpointModel from DeclarativeUi class.
- list declarative ui and file actions in the tray activitiy.
- add icon and filter to endpoint model and UI.

Signed-off-by: Camila Ayres <hello@camilasan.com>
- display response from request from file actions.

Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
- add helper function to match string to SimpleApiJob::Verb.
- filter and display file actions based on the file mimetype.
- adjust logic to get context menu by mimeType.
- create function to set file id and mime type.
- rename Endpoint to FileActions.

Signed-off-by: Camila Ayres <hello@camilasan.com>
- improve error handling.
- display a different icon for each mimetype.

Signed-off-by: Camila Ayres <hello@camilasan.com>
…n't have one.

- improve file actions window UI.

Signed-off-by: Camila Ayres <hello@camilasan.com>
…ements like url.

- add opacity mask and more spacing.
- implement hover for the file action buttons.
- fix logic to display error/success messages.
- improve text for error/success messages.

Signed-off-by: Camila Ayres <hello@camilasan.com>
The declarative ui in fact will be returned in the response from file actions.

Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
- use reference type in for loop.
- fix spaces and sizes in the file actions window.
- remove missing file from resources.

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

Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
…lable to all mimetypes.

Signed-off-by: Camila Ayres <hello@camilasan.com>
Signed-off-by: Camila Ayres <hello@camilasan.com>
- remove DeclarativeUi files.
- add return default value in switch.
- add const.

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

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

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

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

@github-actions github-actions bot left a comment

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)

void setResponse(const Response &response);

void parseEndpoints();
QString parseUrl(const QString &url) const;

Choose a reason for hiding this comment

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

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

Suggested change
QString parseUrl(const QString &url) const;
[[nodiscard]] QString parseUrl(const QString &url) const;


void parseEndpoints();
QString parseUrl(const QString &url) const;
QString parseIcon(const QString &icon) const;

Choose a reason for hiding this comment

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

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

Suggested change
QString parseIcon(const QString &icon) const;
[[nodiscard]] QString parseIcon(const QString &icon) const;

The use of LocalSocketClient doesn't work.
File actions are listed in the context menu but FileProviderUIExt doesn't start.

Signed-off-by: Camila Ayres <hello@camilasan.com>
@github-actions
Copy link

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

Digest: sha256:885211041b4a9c5c5adc5047774d019b984ecc27d0e58fc73239cba93591e23a

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.

@i2h3
Copy link
Collaborator

i2h3 commented Feb 17, 2026

The UNIX sockets will be replaced soon with XPC calls.

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
21 Security Hotspots
16.3% Coverage on New Code (required ≥ 80%)
169 New Code Smells (required ≤ 0)
D Security Rating on New Code (required ≥ A)
B Maintainability 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

@i2h3
Copy link
Collaborator

i2h3 commented Feb 18, 2026

Closed in favor of #9469.

@i2h3 i2h3 closed this Feb 18, 2026
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