also use `FileSystem::removeRecursively` to properly handle deletion of
read-only directories/files
There's now an integration test for this feature after all those years
as well ;-)
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
should help ensure we send a PROPFIND only when the folder etag changes
if some metadata apparently change, this is not enough to send a
PROPFIND request
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
ensure we use currently existing server API to get the "no download"
permission
requires parsing some share-attributes new DAV property
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
unfortunately does not cpature the requirements for proper long path
handling on Windows
maybe an end-to-end test could capture this requirement
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
in FilePermissionsRestore, first checks the folder permissions before
changing them
will avoid useless call changing permissions when not needed
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Extra safeguard to ensure that the usage of
`FileSystem::setFolderPermissions` won't start a new sync run if
FolderWatcher/inotify detects a change in the file metadata...
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
On Linux changing the permissions causes inotify to create a IN_ATTRIB
event -- even if the permissions stays the same.
Such an event is passed to the filesystem watcher which lets the client
schedule a new sync run. In certain conditions, this could happen
during every sync run...
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
if Readable permissions is missing, do nto try to download the file
if a file was downlaoded but Readable permission is now missing, remove
it
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
we may not currently properly store certificate hash for encrypted items
and later fails to find which public or private key pairs to use
for now, it is better to remove it and ensure we have a reliable way to
handle certificate migration
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
should improve coverage for move to trash feature to ensure this is
working as expected by users
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Many languages have different ways of handling plurals where checking
for `n == 1` is simply not enough.
Fixes#8149
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
when propagating a rename to the child items, we must not make child
items be done from propagator point of view
they will be part of their own propagator item and that will create
issues
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
the sync engine will remove invalid items inside read-only folders
not needed to remove them in tests and rather checks that they were
indeed removed
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
makes our fake server require an md5 custom checksum for bulk upload
until version 32.0.0
starting with 32.0.0 this custom checksum must be empty
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Files with a modification time of less than 0 do usually not make sense
(and afaik the server doesn't accept them either).
--> attempt to update the modification time to _Time.now_ while
propagating
side note: I ran into this because KArchive/Ark(?) didn't consider the
extra time attributes on entries for a certain zip file, so it instead
used the standard time value of each zip entry which was set to <= 1980
for files and < 1970 for directories...
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
clean up preprocessor directives for older macOS releases that are not
supported by macOS minimum required release from the Qt 6.8 release we
require
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
These are informative notifications without any need/possibility to act
on immediately -- if a file is not synced it will be visible from the
shell integration anyway.
An eventual follow-up to this change would be to have a dialogue with an
overview of all files that were ignored (including the entry in the
ignore list that caused a specific file to be ignored).
Closes#6712
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
would need careful analyze to fix those
until we can get them fixed, better make the other tests be required in
the CI
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
for now simple rule to guess if the server has windows naming enforced
if windows naming is enforced, we enforce it for new files
if not, we do not care
for now limited to spaces removal
more to come
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
to ensure compatibility with Widnows, we will remove automatically the
leading space characters in file name of new files or folders
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
enforce trailing and leading space rules for new files and only for new
files but on all platforms, not only windows
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
it's already styled properly as it's part of Qt Quick Controls, **and**
it allows for a placeholder text!
also changed the logic for displaying the text field a bit ...
Fixes#7847
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>