Skip to content

Conversation

@i2h3
Copy link
Collaborator

@i2h3 i2h3 commented Jan 16, 2026

This is a port of the recent changes for 4.0.5 to the master branch. They could not be cherry picked due to the intermittent migration of NextcloudFileProviderKit into this repository.

See the individual commits for the separate changes!

@i2h3 i2h3 added this to the 4.1.0 milestone Jan 16, 2026
@i2h3 i2h3 self-assigned this Jan 16, 2026
@github-project-automation github-project-automation bot moved this to 🧭 Planning evaluation (don't pick) in 💻 Desktop Clients team Jan 16, 2026
@i2h3 i2h3 moved this from 🧭 Planning evaluation (don't pick) to 🏗️ In progress in 💻 Desktop Clients team Jan 16, 2026
@i2h3 i2h3 changed the title Trash Changes File Provider Trash Changes Jan 16, 2026
@i2h3 i2h3 requested a review from Copilot January 16, 2026 12:57
@i2h3 i2h3 marked this pull request as ready for review January 16, 2026 12:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR removes the trash deletion configuration feature for the macOS File Provider, transitioning to always allowing trash operations on the server side. The change simplifies the implementation by enabling supportsSyncingTrash at the domain level and removing user-facing controls for trash deletion.

Changes:

  • Removed UI controls and backend logic for the "Allow deletion of items in Trash" setting
  • Enabled server-side trash syncing support for macOS 13+ by setting supportsSyncingTrash = YES
  • Simplified trash enumeration to only show locally deleted items (not remote trash items)

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
translations/client_en.ts Removed translation entries for the deprecated trash deletion setting UI
translations/client_de.ts Removed German translation for "General settings" label
src/gui/macOS/ui/FileProviderSettings.qml Removed UI checkbox for trash deletion setting and "General settings" section
src/gui/macOS/fileproviderxpc_mac.mm Removed XPC methods for querying and setting trash deletion state
src/gui/macOS/fileproviderxpc.h Removed method declarations for trash deletion state management
src/gui/macOS/fileprovidersettingscontroller_mac.mm Removed controller methods for managing trash deletion preferences
src/gui/macOS/fileprovidersettingscontroller.h Removed Q_INVOKABLE methods and signals for trash deletion
src/gui/macOS/fileproviderdomainmanager.mm Added supportsSyncingTrash = YES for macOS 13+ to enable server-side trash
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationService.swift Removed XPC service methods for trash deletion setting
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/ClientCommunicationProtocol.h Removed protocol methods for trash deletion
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift Removed guard clause that blocked deletion of trashed items based on configuration
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderDomainDefaults.swift Marked trashDeletionEnabled config key as obsolete and removed getter/setter
shell_integration/MacOSX/NextcloudFileProviderKit/Tests/NextcloudFileProviderKitTests/RemoteChangeObserverTests.swift Added delay before test execution and reformatted assertion statements
shell_integration/MacOSX/NextcloudFileProviderKit/Tests/NextcloudFileProviderKitTests/EnumeratorTests.swift Updated trash enumeration tests to expect empty results and no newly added items
shell_integration/MacOSX/NextcloudFileProviderKit/Sources/NextcloudFileProviderKit/Item/Item+Trash.swift Improved logging with structured messages and added whitespace for readability
shell_integration/MacOSX/NextcloudFileProviderKit/Sources/NextcloudFileProviderKit/Item/Item+Modify.swift Reformatted code and added duplicate guard statement (bug)
shell_integration/MacOSX/NextcloudFileProviderKit/Sources/NextcloudFileProviderKit/Enumeration/Enumerator.swift Changed trash enumeration to return empty set instead of fetching remote trash items
shell_integration/MacOSX/NextcloudFileProviderKit/Sources/NextcloudFileProviderKit/Enumeration/Enumerator+Trash.swift Simplified trash change enumeration to only detect remote permanent deletions
shell_integration/MacOSX/NextcloudFileProviderKit/Sources/NextcloudFileProviderKit/Database/FilesDatabaseManager.swift Fixed log messages to use fileName instead of non-existent name property

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@i2h3 i2h3 force-pushed the i2h3/fix/trash branch 2 times, most recently from f889e19 to e0c1776 Compare January 16, 2026 13:24
@i2h3 i2h3 enabled auto-merge January 16, 2026 13:51
i2h3 added 3 commits January 21, 2026 09:18
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
@github-actions
Copy link

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

Digest: sha256:744eb59654b66fb7e5016b64b1d2af7f3e524765fefd73de81aa7b69a2d3d330

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
Copy link

@i2h3 i2h3 merged commit e213c6a into master Jan 21, 2026
24 checks passed
@i2h3 i2h3 deleted the i2h3/fix/trash branch January 21, 2026 09:12
@github-project-automation github-project-automation bot moved this from 🏗️ In progress to ☑️ Done in 💻 Desktop Clients team Jan 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

3 participants