If the Folder::Map object is kept locally in the wizard, changes to
the map are not reflected there, as they happen when signing out.
This fixes bug #1875
Direcotries are removed at the end, and we don't want to update
parent directory etag before the delete is performed, or the next
sync may read from db and think the files are not removed.
Issue #1845
When we detect a precondition failed, it is possible that it is
because the etag in the database is wrong. We must therefore not
read from the database on the next sync. In order to avoid that, we
reset the etag of parent directories to invalid values
Fixes#1767
Or an url with '#'
Fixes#1838
The problem is a bug fixed in Qt5 now breaks.
In Qt4, QUrl::setPath() did not properly handle path with '#' in them
and QUrl::toString would restitute the '#'.
But csync will blindly do "uri + path" before passing the path to
VIO. because csync_update has no idea that the VIO plugin need special
encoding, the encoding cannot be done there. But csync_owncloud then
encodes the full path. So if the uri contains '#', it must not be already
encoded or there will be two encoding.
We need to compare the other way round and compare only the file name
because our sync directory might be symlinked and then resolve to
another canonical path (but we were only interested in the filename part
anyway)
When we abort, each job currently running may result in a call to finished().
It used to cause a crash because we would unlock the _syncMutex twice
Fixes#1793
The goal here is that it is going to be destroyed with the application
It need to be destoyed so the folder are destroyed, which is required
for properly finishing the sync while exiting.
It must not be destroyed after the application because the QSQLite plugin
may be already destroyed in that case.
Since the constructor of FolderMan is called earlier, we can't call the
config file too early
fixes 1793
Returns true if the underlying file system is case preserving instead
of case sensitive. That is true for Mac and Windows currently. Only
Linux has a case sensitive file system usually.
- Don't give the settings window an always-on-top hint, or else
sub dialogs will pop-under. Also, people seem to (ab-)use it
as a status monitor... well
- raiseWidget() can only really do one thing: remove the dialog status
from dialogs without a parent due to a bug in Qt. The previous
implementation never really worked. Tested on Mac and Gnome 3 so far.
Fixes#1795
Fixes parts of #1775