Commit Graph
100 Commits
Author SHA1 Message Date
Christian Kamm de77514671 AccountWizard: Reserve space for error label #6546 2018-05-25 08:44:03 +02:00
Christian Kamm 5811c74f9c Settings migration: Preserve future settings where possible
See discussion in #6506
2018-05-24 12:18:44 +02:00
Christian Kamm 57a2881906 Config: Add version flags to accounts and folders
Also, if there is too-new configuration, backup the file, show a
warning message asking the user whether it's ok to discard the
configuration from the future.

See #6504
2018-05-24 12:18:44 +02:00
Christian Kamm 53f52b4cf5 Settings: Add warning when switching update channel 2018-05-24 12:09:40 +02:00
Christian Kamm 293c2b4f79 Updater: Make sparkle updater respect release channel 2018-05-24 12:09:40 +02:00
Christian Kamm 7790953a2c Settings: Add update channel combobox #6259 2018-05-24 12:09:40 +02:00
Christian Kamm 8f9f2b5462 Rename Placeholders to Virtual Files in code #6531 2018-05-23 09:57:00 +02:00
Christian Kamm 0cd2540a69 Add to and rearrange the Changelog for 2.5 2018-05-18 07:43:43 +02:00
Christian Kamm 2493cbe491 SyncJournal: Explain added file-exists check 2018-05-17 15:02:52 +02:00
Christian Kamm 394ef439e0 Merge branch 'master' into 2.5 2018-05-17 13:23:20 +02:00
Christian Kamm 2638332dc6 Upload: Adjust timeout for final job based on size #6527
Some servers have virus scanners and the like that can delay the
response of the final chunked upload assembly significantly, often
breaking the current 5min (!) timeout. See owncloud/enterprise#2480
for details.
2018-05-17 13:14:37 +02:00
Christian Kamm 5308fc4148 Propagation: Connection closed is a normal error #6516
Because it sometimes appears in conjunction with server bugs and we
don't want to halt all syncing for other files in these cases.
2018-05-17 13:14:20 +02:00
Christian Kamm ad5fbfe05b Wizard: Add a "(recommended)" to the main option #6470 2018-05-17 13:14:03 +02:00
Christian Kamm b1224cff0c SyncJournal: Check file existence even for open dbs #6049
With WAL mode sqlite seems to occasionally crash when the
underlying filesystem goes away.
2018-05-17 13:08:42 +02:00
Christian Kamm 1c4592339a Rename "placeholder" feature 2018-05-16 12:52:32 +02:00
Christian Kamm f396f2f41d IgnoreEditor: Preserve comments, add #!readonly
Useful in case we ever want to make use of directives inside the ignore
list.
2018-05-15 14:26:35 +02:00
Christian Kamm 8d14f4357a Placeholder: Stop adding ignore pattern
Because we can't make older clients preserve the version directive that
was attached to it.

See #6504 and #6498
2018-05-15 14:26:35 +02:00
Christian Kamm 34d40e6c67 Placeholder: Don't contain "stub" 2018-05-15 14:26:35 +02:00
Christian Kamm c80ee0ea48 Placeholders: Save to key that's invisible to <2.5 clients #6504 2018-05-15 14:26:35 +02:00
Christian Kamm 8b952d3741 TestChunkingNG: Remove unneeded test code 2018-05-15 09:42:54 +02:00
Christian Kamm 33b0726390 PropagateUpload: Fix miscount in abort() #6516
Previously it tried to abort even jobs that had already finished, which
was not going to work as they wouldn't emit finished() again.

Also, in some cases the abortCount would never go to zero and that case
wasn't well documented.
2018-05-15 09:42:54 +02:00
Christian Kamm 40e23d3da7 PropagateUpload: Remove unused PropagateUploadFileCommon::abort 2018-05-15 09:42:54 +02:00
Christian Kamm 5e4aca8988 ShareLink: Preserve password when unrelated ui changes #6512 2018-05-14 09:44:21 +02:00
Christian Kamm d917f52779 Remove debug code 2018-05-14 09:37:28 +02:00
Christian Kamm e9ac35b2e5 Doc: Adjust step-by-step guide for creating log files #6442 2018-05-03 11:13:03 +02:00
Christian Kamm 642ed1bb70 Merge remote-tracking branch 'origin/master' into 2.5 2018-04-26 10:16:45 +02:00
Christian Kamm 3f9c10e641 Proxy settings: Fix bad behavior with empty host
Fixes f6a075ef54 for #5885

When no host is given it shouldn't just *appear* that there is no
proxy, there actually shouldn't be a proxy set then.
2018-04-26 10:07:05 +02:00
Christian Kamm e9db52a378 Issues: Show link to conflicts doc if there are some #6396
The link url is themed.
2018-04-25 13:31:49 +02:00
Christian Kamm fc73cde10c Merge branch 'master' into 2.5 2018-04-25 12:30:31 +02:00
Christian Kamm 44071f0892 Nautilus shell integration: Print python version on startup #6406 2018-04-25 12:26:18 +02:00
Christian Kamm 9555f8d75c Show a tray message when a folder watcher becomes unreliable #6119 2018-04-24 13:06:50 +02:00
Christian Kamm 4268f793fb Share dialog: Don't hide account settings before showing #6185
At least on windows and linux. OSX would need tests first since
the addition was originally supposed to help with OSX problems,
see #3783.
2018-04-24 10:09:23 +02:00
Christian Kamm 1508b562ad SocketAPI: Allow opening share dialog if contents still syncing #4608
With the previous changes the "Share..." action was shown but it didn't
work yet.
2018-04-23 12:24:32 +02:00
Christian Kamm 4390bbf838 SocketAPI: Remove SHARE_STATUS
It was never used by a shell integration.
2018-04-23 12:24:32 +02:00
Christian Kamm 7cce30942e CMake: Add a default placeholder_suffix
To make themes work that don't define it explicitly.
2018-04-20 15:08:08 +02:00
Christian Kamm f6a075ef54 Network settings: If no proxy host given, show "no proxy" #5885
What happens internally is that a proxy without a hostname gets treated
as no proxy.
2018-04-19 17:04:56 +02:00
Christian Kamm a5271b529b LocalDiscoveryTracker: Add unit test #6120 2018-04-19 10:58:46 +02:00
Christian Kamm 7c558394c1 LocalDiscoveryTracker: Separate from Folder and move to libsync
To allow relevant code to be closer together and for testing in
unittests without having to get a gui Folder.

See #6120
2018-04-19 10:58:46 +02:00
Christian Kamm 985a657f48 Merge remote-tracking branch 'origin/master' 2018-04-18 11:14:08 +02:00
Christian Kamm 9e8464e114 Merge branch 'placeholder-prototype' 2018-04-18 11:02:53 +02:00
Christian Kamm a9561f494b Doc: Add showExperimentalOptions to conffile.rst 2018-04-18 10:27:51 +02:00
Christian Kamm b7412a4f09 Wizards: Show placeholder option only if showExperimentalOptions is set
This config file option will also control other features in the future.
2018-04-18 10:27:51 +02:00
Christian Kamm ba1309b3a4 Wizards: Add placeholder option and warning to account wizard
Also add the warning dialog to the option in the folder wizard.
2018-04-18 10:27:51 +02:00
Christian Kamm 70b4dc99dc NSIS: Register placeholder extension
Also change the placeholder suffix config option to not include the dot,
the dotless form is needed in the nsis script.
2018-04-18 10:27:51 +02:00
Christian Kamm 65a2b1aa8a Placeholders: Fix migration issues
Some edgecases weren't covered and didn't have tests yet.
2018-04-18 10:27:51 +02:00
Christian Kamm fb3e3edcbd SyncOptions: Add default placeholder suffix
Otherwise each test has to set this up anew.
2018-04-18 10:27:51 +02:00
Christian Kamm c2f84d7c3e Placeholders: Ignore placeholder files in older clients
To do this, we add the placeholder extension to the user exclude file
automatically. However, newer clients shouldn't use that exclude
pattern: so we also add version directives that allow making exclude
patterns dependent on the client version.
2018-04-18 10:27:51 +02:00
Christian Kamm 8358dabbfd Folder: Simplify relative path computation
It was done manually in several places after folderForPath() calls.
2018-04-18 10:27:51 +02:00
Christian Kamm 8b6ae04155 Placeholders: Download from shell integration 2018-04-18 10:27:51 +02:00
Christian Kamm 01bb241e48 Placeholders: Safe migration to older client versions
Now the db entries for placeholders will have the full placeholder
paths. That way older clients will, on remote discovery, delete the
placeholders and download the real files.
2018-04-18 10:27:51 +02:00
Christian Kamm e2f2c9a153 Placeholders: Deal with conflicts when a placeholder exists
So "foo.owncloud" exists but the user adds a new "foo".
2018-04-18 10:27:51 +02:00
Christian Kamm 798e60c9f6 On-demand downloading: Placeholder-file based prototype
- Controled by an option.
- New remote files start out as ItemTypePlaceholder, are created with a
  .owncloud extension.
- When their db entry is set to ItemTypePlaceholderDownload the next
  sync run will download them.
- Files that aren't in the placeholder state sync as usual.
- See test cases in testsyncplaceholders.

Missing:
- User ui for triggering placeholder file download
- Maybe: Going back from file to placeholder?
2018-04-18 10:27:51 +02:00
Christian Kamm 57044c1e02 Silence warning by removing unnecessary this capture 2018-04-18 10:26:22 +02:00
Christian Kamm fa6ac9da23 Upload: Add more chunk resuming unit tests #6405 2018-04-17 13:48:13 +02:00
Christian Kamm 93d8810414 SocketApi/Sharing: Add "copy public link" to menu #6356
* The new menu option will fetch shares and create a new link share if
  no "context menu share" currently exists.
* Various cleanup of common operations in socketapi happened as well,
  in particular there's now FileData::get() that calculates all the
  relevant paths that are useful for most socketapi actions.
2018-04-16 08:37:44 +02:00
Christian Kamm 113f56fdc5 Logging: Add persistent auto-logdir option #6442 2018-04-12 12:38:17 +02:00
Christian Kamm bd9ec3dbee LogDir: Compress log when switching files #6442 2018-04-12 12:38:17 +02:00
Christian Kamm 6fcff62e95 LogDir: Go to new file on Problem/Abort too #6442 2018-04-12 12:38:17 +02:00
Christian Kamm db64b217b8 Doc: Explaining conflict files and resolving them #6396 2018-04-11 09:02:15 +02:00
Christian Kamm ca36da6037 Doc: Remove out of date changelog copy 2018-04-10 09:20:22 +02:00
Christian Kamm 73777beb00 Doc: fix for new conflict tag 2018-04-10 09:17:05 +02:00
Christian Kamm eef275a1e4 Folders: Use "Problem" icon for unresolved conflicts #6277 2018-04-10 08:38:59 +02:00
Christian Kamm 2298ecca7c Share link: Update permission wording #6192 2018-04-09 12:16:40 +02:00
Christian Kamm 02a2056543 Notify if an explicitly excluded folder is created #6222 2018-04-03 14:03:46 +02:00
Christian Kamm afec3ccf6e Conflicts: Change tags to be more user friendly #6365
From "_conflict-user-yyyymmdd-hhmmss"
to   " (conflicted copy user yyyy-mm-dd hhmmss)"
2018-04-03 14:03:03 +02:00
Christian Kamm 9f346037ee Nautilus integration: Not a ColumnProvider
The nautilus plugin doesn't actually define get_columns(), so pretending
to be a ColumnProvider lead to a critical warning on startup.
2018-03-28 15:30:05 +02:00
Christian Kamm 28f68369be Blacklist: Add unittest #6411 2018-03-28 11:25:32 +02:00
Christian Kamm 2641a6af21 Rename local discovery option for clarity
It's using full relative filepaths, not just dir paths.
2018-03-28 11:25:32 +02:00
Christian Kamm 1ac45be94e Readme: Update list of maintainers 2018-03-28 10:11:40 +02:00
Christian Kamm 3d002468ae Readme: Fix link to binary downloads 2018-03-28 10:11:40 +02:00
Christian Kamm 5e75d224ee Blacklisting must prevent parent etag updates #6411 2018-03-28 10:01:33 +02:00
Christian Kamm 25deaed9e5 Excludes: Expand doc, Desktop.ini only in root folder
The Desktop.ini exclude was added for 2.4 because we add such a file to
the synced folder on Windows. It doesn't need to cover subdirectories.
2018-03-27 12:43:53 +02:00
Christian Kamm 17342031d7 Upload: Simplify 'finished' flag
* Sometimes there was 'finished' and '_finished'
* Make each done() call automatically set _finished to true
2018-03-27 12:42:48 +02:00
Christian Kamm edacaae15f Merge remote-tracking branch 'origin/2.4' 2018-03-21 11:47:29 +01:00
Christian Kamm 29557ea550 Fix nautilus/nemo shell integration encoding issues #6393
The problem was that plain encode()/decode() in python2 use ascii
encoding, not utf8.
2018-03-21 11:25:37 +01:00
Christian Kamm a89508ba26 Minor header fixup
To make the IDE happy.
2018-03-16 13:41:57 +01:00
Christian Kamm 86b30e36c2 Merge remote-tracking branch 'origin/2.4' 2018-03-12 10:24:25 +01:00
Christian Kamm 427bb83f0d IssuesWidget: addItem performance improvement
Ensure adding a new item isn't usually O(n) by keeping track of which
items have associated issues.
2018-03-06 13:02:54 +01:00
Christian Kamm faec059a9b IssuesWidget: Don't allow two issues for the same file/folder
This is intended to safeguard against invalidation bugs that cause the
same error to be added again for every sync run.
2018-03-06 13:02:54 +01:00
Christian Kamm 641eddfbdf INSTRUCTION_IGNORE now carries a direction
This allows IssuesWidget to selectively wipe only the 'Up' ignores
during selective local discovery.
2018-03-06 13:02:54 +01:00
Christian Kamm 61869bb65e ProtocolItem: Adjust the way data is stored again
The struct makes it easy to pack data and should consume less memory
overall.
2018-03-06 13:02:54 +01:00
Christian Kamm 797473ba1f SyncResult: Make sure the number of conflicts is correct #6226
If the SyncResult incorrectly believes that there are no conflicts, the
tray icon won't be correct and there will be no warning about unresolved
conflicts on the account.

Nevertheless, it's pretty awkward that the IssuesWidget is better
informed about pending conflicts than the Folder itself. This kind of
backwards data flow is very confusing.

Unfortunately the only alternative I see is to either keep track of
this information in two places (also in Folder), or create a common
data-holding class that can serve as a model instance for the issues
view as well as provide data directly to the Folder - which would
have been a much larger change.
2018-03-06 13:02:54 +01:00
Christian Kamm f82d61ea19 SyncEngine: Make "local discovery?" question available
Also fix the minor bug that was mentioned and add tests.
2018-03-06 13:02:54 +01:00
Christian Kamm ec281654ae Issues tab: Invalidate issues selectively #6226
Everything is invalidated later: after discovery, not before. In
addition entries that should only be invalidated when new local
discovery is done have that behavior now.
2018-03-06 13:02:54 +01:00
Christian Kamm 52dfe589ba ProgressInfo: Add information for local vs remote discovery 2018-03-06 13:02:54 +01:00
Christian Kamm a5aebac6a7 slotFolderDiscovered: Fix 'local' always being false
It was unused, so no harm done.
2018-03-06 13:02:54 +01:00
Christian Kamm 13eb64584f Discovery: Error if properties are missing #6317 2018-03-06 13:01:53 +01:00
Christian Kamm 48dd8ed6c2 Partial local discovery: Fix scheduling logic
A recent patch that touched the condition for deciding whether a
periodic full local discovery is necessary accidentally inverted the
condition.
2018-02-20 18:07:28 +01:00
Christian Kamm 33306dcc38 Set launch-on-startup when the first account is set up
The previous code would disable it when the second account was
configured.

See #6347
2018-02-20 11:20:52 +01:00
Christian Kamm ed2dfcf399 Conflicts with user name: Fix tests 2018-02-20 10:36:07 +01:00
Christian Kamm 6fc3bfc265 Conflicts: Add user name to conflict file name #6325
For the case of uploading conflict files only.
2018-02-20 10:10:34 +01:00
Christian Kamm 129b814931 SyncEngine: Use separate state for two unicode conversions
It's unlikely that there were interaction effects but still seems safer
to use different conversion state for the path and rename_path.
2018-02-20 10:01:47 +01:00
Christian Kamm 6c1a73b67a SyncJournal: Clear etag filter before sync
Before, we only cleared the _avoidReadFromDbOnNextSyncFilter *after* a
sync which meant that we had to sync twice after selective sync setup.

Now, we clear the filter *before* a sync as well which allows the actual
next sync to write the correct etags to the db again - instead of only
the sync after that one.

Also expand on comments and rename _avoidReadFromDbOnNextSyncFilter to
_etagStorageFilter.
2018-02-16 11:39:19 +01:00
Christian Kamm 4a47f7e438 Merge remote-tracking branch 'origin/2.4' 2018-02-16 10:17:19 +01:00
Christian Kamm 73062e21a3 SyncJournal: Don't use LIKE with paths
Paths can contain the wildcards % and _ and that would lead to odd
behavior.

This patch also clarifies the behavior of avoidReadFromDbOnNextSync()
which previously dependend on whether "foo/bar" or "foo/bar/" was
passed as input.

Possibly affects #6322
2018-02-15 09:56:43 +01:00
Christian Kamm e7e6584cab Sharing: Use maximum allowed permissions for new share #6346
The client already computed the valid permissions, there was just a typo
that meant we didn't end up using them.
2018-02-15 09:10:47 +01:00
Christian Kamm 22b19636e9 Don't delete contents behind directory junctions #6322
QFileInfo::isSymLink() does detect reparse points that are symlinks but
returns false for junctions. The new function FileSystem::isJunction()
can detect those and is used to not recursively delete files inside
directories that are junctions.

See also https://bugreports.qt.io/browse/QTBUG-45344 and the
discussion in the PR https://codereview.qt-project.org/#/c/113019/.
2018-02-09 09:15:29 +01:00
Christian Kamm 14f60a4238 FolderStatusModel: Refresh folders on Problem sync #6337
We don't want to refresh too frequently. But Problem is very close to
Success and very common.
2018-01-29 09:36:35 +01:00
Christian Kamm f8022bb248 Fix compiler warning
Stray semicolon
2018-01-29 09:31:31 +01:00
Christian Kamm d1aacac294 Tray: Change icon for unresolved conflicts #6277 2018-01-26 13:33:33 +01:00