Christian Kamm
5728256763
Folder: Add selective sync / ui related flags
...
supportsSelectiveSync(): clearer than !supportsVirtualFiles() and allows
extra logic
isVfsOnOffSwitchPending(): Somewhat awkward way of dealing with the
phase between a user requesting vfs state to be switched and it
actually happening
2020-12-15 10:58:34 +01:00
Christian Kamm
b91839b760
SyncEngine: Rename phase finishing slots
...
slotDiscoveryJobFinished -> slotDiscoveryFinished
slotFinished -> slotPropagationFinished
This should be clearer. Particular the
slotFinished -> finalize -> emit finished()
chain was confusing before.
2020-12-15 10:58:34 +01:00
Christian Kamm
9f8505c736
Discovery: Fix aborting during discovery #6972
2020-12-15 10:58:34 +01:00
Christian Kamm
836d298141
vfs suffix: Ignore server files or synced files with the suffix #6953
2020-12-15 10:58:34 +01:00
Christian Kamm
e774c6c739
Discovery: Ensure selective sync lists are sorted #6958
2020-12-15 10:58:34 +01:00
Christian Kamm
22255e4976
vfs: Add vfs migration options to folder context menu
...
This allows enabling and disabling vfs.
To distinguish this operation from setting the root pin state, the
availability setting is adjusted as well to be similar to the
menu that shows in the shell extensions.
2020-12-15 10:58:33 +01:00
Christian Kamm
20ef0a0290
vfs: Allow retrieving of pin state paths and flags
2020-12-15 10:58:33 +01:00
Christian Kamm
7ef6e60660
Result: Add copy/move ctor/op=
...
It has a destructor and these operations make sense. Particularly the
move is important for code like:
Result<x, y> foo() { Result<x, y> v; return v; }
because the move-ctor will not autogenerate if x or y are not trivially
destructible.
2020-12-15 10:58:33 +01:00
Christian Kamm
3b923e2afe
vfs: Change per-folder message on vfs support
...
I'm unsure this note is all that useful. Remove entirely?
2020-12-15 10:58:33 +01:00
Christian Kamm
4df101ed84
vfs: Allow (de-)hydrating the full sync folder
2020-12-15 10:58:33 +01:00
Christian Kamm
47e21bfc60
vfs: Don't assume suffix mode for old folders
...
That would break with old folders that use selective sync.
2020-12-15 10:58:33 +01:00
Christian Kamm
cbb32edee2
vfs: Disable selective sync if vfs support is available
2020-12-15 10:58:32 +01:00
Christian Kamm
aa23058d76
Wizard: Ensure client cert doesn't get lost #6911
2020-12-15 10:58:32 +01:00
Christian Kamm
c470825c8f
Wizard: Drop unused function
2020-12-15 10:58:32 +01:00
Markus Goetz
4fcad0d8b0
Sync: Display theme in debug log
2020-12-15 10:58:32 +01:00
Christian Kamm
b4e73690b7
sqlite: Set exclusive locking_mode to avoid WAL issues #6881
...
Can be overridden with OWNCLOUD_SQLITE_LOCKING_MODE
2020-12-15 10:58:32 +01:00
Dominik Schmidt
17465a6f94
Fix lookup of system wide settings
2020-12-15 10:58:32 +01:00
Olivier Goffart
f258af1198
sqlite: Update bundled version to 3.26.0
...
For OS X and Windows.
2020-12-15 10:58:31 +01:00
Olivier Goffart
c31d3f277f
HttpCredentials: Do not re-enter the event loop
...
https://sentry.io/owncloud/desktop-win-and-mac/issues/777907931/
mention a crash in OCC::HttpCredentialsGui::showDialog
One possible explaination is that this is caused by re-entring the event loop.
So don't do that.
2020-12-15 10:58:31 +01:00
Olivier Goffart
51d2e41d8b
Chunking Move: Fix too many starting slashes in the destination header
...
Commit 6ca724f fixed it for the move case. But the upload MOVE did the same
Issue #6904
2020-12-15 10:58:31 +01:00
Olivier Goffart
0e56dfe3a4
Gui: do not show the settings when opening a virtual file
...
Issue #6764
2020-12-15 10:58:31 +01:00
Christian Kamm
c4dfa82661
SocketAPI: Overhaul ui for 'available locally' vs 'online only'
...
For #6815
2020-12-15 10:58:30 +01:00
Christian Kamm
aa382eda29
Db: Add wiping of pin state for subtrees
2020-12-15 10:58:30 +01:00
Christian Kamm
d956f518a8
vfs: Remove newFilesAreVirtual - use root PinState instead
...
This unifies how to deal with pin states.
Also enable reading a folders direct pin state vs its effective pin
state.
2020-12-15 10:58:30 +01:00
Olivier Goffart
62ec4c9330
Discovery: Handle the blacklistFiles from the server capabilities
...
Issue #434
Ideally one could add the blacklist to the exlucde reggexp, but this
is simpler
2020-12-15 10:58:30 +01:00
Christian Kamm
8fecff5153
Progress: Virtual file creation needs no transfer progress #6933
...
Treat virtual file creation as a size-less action, similar to
propagating renames or deletions.
2020-12-15 10:58:30 +01:00
Christian Kamm
cdf61b9e82
vfs: Show "new files are virtual" option only with vfs
...
If there's no vfs possibility, showing it makes little sense.
2020-12-15 10:58:30 +01:00
Christian Kamm
8f895fc83c
vfs: SocketAPI actions adjust pin state of directories #6815
...
Downloading a folder also sets its pin state; releasing a folder sets
its pin state.
2020-12-15 10:58:29 +01:00
Christian Kamm
486c25cb47
vfs: Use PinState in sync algorithm #6815
...
New files are virtual if the file's pin state is OnlineOnly.
2020-12-15 10:58:29 +01:00
Christian Kamm
68126ac208
vfs: Introduce PinState db storage #6815
...
The idea is to allow folders (and later maybe files?) to be
- pinned to be available locally
- pinned to be online only
- inherit their pin from the parent
Where this pinning only controls the default for new files.
Subfolders may have a different pin state, and contained files
may be hydrated or dehydrated based on user actions.
This value is stored in a new 'flags' table. The idea is to store
data there that doesn't necessarily exist for each metadata entry.
The selective sync state could be migrated to this table.
2020-12-15 10:58:29 +01:00
Olivier Goffart
dfedb09fd8
Move test for issue #1329 from t1.pl to new test system
2020-12-15 10:58:29 +01:00
Olivier Goffart
a29320b18d
Discovery: Set right direction when restoring deleted discovery because it has modified files
...
(Catched by a faillure of t1.pl)
2020-12-15 10:58:29 +01:00
Olivier Goffart
6da96cd026
Port the exclude test to the QTest Framework
...
This is just a port to QtTest, I did not change the layout of the test.
I did search and replace to replace the assert with QCOMPARE/QVERIFY
I still call setup and setup_init like before (only explicitly, now)
Also ported the preformence tests to QBENCHMAK because windows don't have
gettimeofday.
Relates #6358
2020-12-15 10:58:29 +01:00
Olivier Goffart
fad1238b33
Test: Move the test for Utility::normalizeEtag to testutility.cpp
...
I just moved the text and did the minimum to port it to QtTest
Did not change hte layout of it.
Relates #6358
2020-12-15 10:58:28 +01:00
Olivier Goffart
6e048a2d3f
Remove check_csync_util
...
It's testing nothing.
Only that one can convert a csync instruction to a string.
But this is only used in debug anyway
Relates to #6358
2020-12-15 10:58:28 +01:00
Christian Kamm
69144566ce
Database: Change path for new dbs to .sync_* #5904
...
This is to avoid issues on OSX, where the ._ prefix has special meaning.
Originally (before 2.3.2) ._ was necessary to guarantee exclusion. But
since then the .sync_ prefix is excluded as well.
This does not affect existing database files.
2020-12-15 10:58:28 +01:00
Christian Kamm
30294e0c9a
Vfs: Have a static list of potential plugins for now
...
Fixes in-source builds and other cases where more non-plugin directories
are created in src/libsync/vfs.
2020-12-15 10:58:28 +01:00
Christian Kamm
75b9976526
Vfs: Ensure older versions gracefully ignore winvfs folders
...
Previously there'd likely be a mess if a 2.6 winvfs folder was attempted
to be used with a 2.5 client. Now the older clients will ignore these
folders.
2020-12-15 10:58:28 +01:00
Christian Kamm
bdfda460e6
Vfs plugins: Available plugins must load
...
A plugin that can't be loaded due to dependency issues should not be
considered as available.
2020-12-15 10:58:28 +01:00
Olivier Goffart
fd410a5a84
SyncEngine: Ensure that the paths passed to the discovery ends with slashes
...
This was making the tx.pl test fail
2020-12-15 10:58:28 +01:00
Olivier Goffart
edd806960d
Propagator: Don't abort sync on error 503
...
Only do it when it is actually a maintenance mode
Issues #5088 , #5859 , https://github.com/owncloud/enterprise/issues/2637
2020-12-15 10:58:27 +01:00
Olivier Goffart
feb770eca7
Allow to open log window via command line to already running client
...
Issue: #4098
2020-12-15 10:58:27 +01:00
Dominik Schmidt
687eb9665d
Fix installation of vfs suffix plugin
2020-12-15 10:58:27 +01:00
Olivier Goffart
a7a54b6d11
VFS: Plugin needs to be installed, otherwise it can't be loaded
2020-12-15 10:58:27 +01:00
Olivier Goffart
47b2913357
Fix compilation warning
...
src/libsync/propagatorjobs.cpp:63:10: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
[this, &deleted](const QString &path, bool isDir) {
^~~~~
2020-12-15 10:58:27 +01:00
Christian Kamm
d87c2b803d
vfs: Make Vfs ctor explicit
2020-12-15 10:58:27 +01:00
Christian Kamm
305d439c41
vfs: Separate vfs availability from new-files-virtual
...
This helps support 2.5 settings where there are virtual files in the
tree but new files aren't created virtual.
It's also a prelude for #6815
There's currently no way of
- upgrading vfs plugins (a silent suffix->winvfs upgrade is attempted
once only, when moving to master)
- disabling vfs capabilities outright
2020-12-15 10:58:27 +01:00
Christian Kamm
1e5e884805
vfs: Don't always load plugins, check metadata
2020-12-15 10:58:26 +01:00
Christian Kamm
cc912f4d02
vfs: ensure backwards-compatible settings value is always set
2020-12-15 10:58:26 +01:00
Christian Kamm
b30f79edf6
vfs: Ensure SyncOptions::_vfs is never null
...
- Create a VfsOff derived class
- Make it a shared pointer shared with Folder::_vfs
2020-12-15 10:58:26 +01:00