nextcloud-desktop/src/gui
Jocelyn Turcotte e974771796 csync: Use an explicit instruction for should_update_metadata
The current way of tracking the need to update the metadata without
propagation using a separate flag makes it difficult to track
priorities between the local and remote tree. The logic is also
difficult to logically cover since the possibilities matrix isn't
100% covered, leaving the flag only used in a few situations
(mostly involving folders, but not only).

The reason we need to change this is to be able to track the sync
state of files for overlay icons. The instruction alone can't be
used since CSYNC_INSTRUCTION_SYNC is used for folders even though
they won't be propagated. Removing this logic is however not possible
without using something else than CSYNC_INSTRUCTION_NONE since too
many codepath interpret (rightfully) this as meaning "nothing to do".

This patch adds a new CSYNC_INSTRUCTION_UPDATE_METADATA instruction
to let the update and reconcile steps tell the SyncEngine to update
the metadata of a file without any propagation. Other flags are left
to be interpretted by the implementation as implicitly needing
metadata update or not, as this was already the case for most file
propagation jobs. For example, CSYNC_INSTRUCTION_NEW for directories
now also implicitly update the metadata.

Since it's not impossible for folders to emit CSYNC_INSTRUCTION_SYNC
or CSYNC_INSTRUCTION_CONFLICT, the corresponding code paths in the
sync engine have been removed.

Since the reconcile step can now know if the local tree needs metadata
update while the remote side might want propagation, the
localMetadataUpdate logic in SyncEngine::treewalkFile now simply use
a CSYNC_INSTRUCTION_UPDATE_METADATA for the local side, which is now
implemented as a different database query.
2016-08-17 15:39:31 +02:00
..
creds Fix the URL from previous commit 2016-06-28 14:17:16 +02:00
updater Fix memleak in updater 2016-06-02 15:03:52 +02:00
wizard GUI: Show link to the page that allow to add a new token (#4963) 2016-06-28 12:25:04 +02:00
accountmanager.cpp AccountManager: Don't force the server URL while loading the config. 2016-06-28 14:32:03 +02:00
accountmanager.h Make the AccountState a construction argument of the Folder 2016-03-28 13:07:28 +02:00
accountsettings.cpp Revert "Add 'open in browser' to account menu #4824" 2016-07-19 11:19:40 +02:00
accountsettings.h Revert "Add 'open in browser' to account menu #4824" 2016-07-19 11:19:40 +02:00
accountsettings.ui AccountSettings: Add a toolbox button for the account specific actions. 2015-11-13 14:50:07 +01:00
accountstate.cpp QNAM: Try to workaround missing Qt patches #4720 #3888 #4051 2016-05-31 10:26:52 +02:00
accountstate.h [osx] Fix missing overlay icons on client startup 2016-05-03 13:01:51 +02:00
activitydata.cpp ActivityData: Declare operators outside the class 2016-03-29 14:09:19 +02:00
activitydata.h NotificationHandling: Use QByteArray for the verb. 2016-03-29 18:01:49 +02:00
activityitemdelegate.cpp Activities: Fix color when row is selected 2016-01-11 16:52:37 +01:00
activityitemdelegate.h ActivityWidget: Take the account state (connected or not) in account. 2015-11-12 17:52:00 +01:00
activitylistmodel.cpp Remove superflous iterator increment 2016-03-29 16:50:15 +02:00
activitylistmodel.h Activitiy: Refactor - move classes to their own source files. 2016-03-11 11:41:19 +01:00
activitywidget.cpp Activity: When a new notification arrives, switch to that tab #4805 2016-05-19 14:13:07 +02:00
activitywidget.h Activity: When a new notification arrives, switch to that tab #4805 2016-05-19 14:13:07 +02:00
activitywidget.ui ActivityWidget: Properly set widget for the Scrollview. 2016-04-11 15:38:25 +02:00
addcertificatedialog.cpp Add proper copyright headers to some files, fixes #2869 2015-02-25 17:00:27 +01:00
addcertificatedialog.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
addcertificatedialog.ui Client Dialog Support: Fix certificate dialog 2015-02-02 23:35:39 +01:00
application.cpp Logs: Add the name of the platform we're running on to the log. (#5082) 2016-07-28 16:30:40 +02:00
application.h Connectivity: Improve reconnecting after network change/disconnect #4167 2015-11-23 21:48:26 +01:00
authenticationdialog.cpp Credential: move the implementation to the gui 2015-06-15 17:39:28 +02:00
authenticationdialog.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
clipboard.mm OS X: Use Cocoa Pasteboard instead of QClipBoard #3300 2015-10-20 15:42:43 +02:00
CMakeLists.txt LockWatcher: Keep an eye on Windows file locks (#4758) 2016-04-29 16:14:18 +02:00
cocoainitializer.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
cocoainitializer_mac.mm Adjust namespaces 2014-11-09 22:34:07 +01:00
folder.cpp csync: Use an explicit instruction for should_update_metadata 2016-08-17 15:39:31 +02:00
folder.h Log: Include start of propagation and lap duration 2016-06-09 14:28:15 +02:00
folderman.cpp be case insensitive for MacOSX, too 2016-07-08 15:53:11 +08:00
folderman.h [osx] Fix missing overlay icons on client startup 2016-05-03 13:01:51 +02:00
folderstatusdelegate.cpp Folder info layout adjustments #3403 2016-03-29 12:45:01 +02:00
folderstatusdelegate.h Fix the folder option button click 2016-01-13 11:44:36 +01:00
folderstatusmodel.cpp Use natural sorting for filenames if available #4859 (#4864) 2016-05-19 15:36:46 +02:00
folderstatusmodel.h folderstatusmodel.h: Fix warning 2015-10-15 17:27:29 +02:00
folderwatcher.cpp Exclusion: Fix confusion with relative and absolute paths 2015-10-13 12:53:38 +02:00
folderwatcher.h GUI comment and message typos for master 2015-10-05 10:06:19 +05:45
folderwatcher_linux.cpp Fix hidden file handling #4655 2016-04-12 11:59:07 +02:00
folderwatcher_linux.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
folderwatcher_mac.cpp OS X: White-list the folder watcher enums 2016-06-02 18:20:07 +02:00
folderwatcher_mac.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
folderwatcher_qt.cpp Adjust namespaces 2014-11-09 22:34:07 +01:00
folderwatcher_qt.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
folderwatcher_win.cpp Graceful termination of folderwatcher_win #4620 2016-03-31 15:44:42 +02:00
folderwatcher_win.h Graceful termination of folderwatcher_win #4620 2016-03-31 15:44:42 +02:00
folderwizard.cpp Merge branch '2.2' 2016-05-25 16:30:17 +02:00
folderwizard.h Remote folder selection: improve path typing #4745 #4746 2016-04-27 10:37:17 +02:00
folderwizardsourcepage.ui UI: Remove alias from more places #4577 #4695 2016-04-20 14:27:50 +02:00
folderwizardtargetpage.ui Remove spacer that would constrain a vertical resize 2015-11-18 10:06:38 +01:00
generalsettings.cpp Workaround for Ubuntu 16.04 tray issue #4944 (#4947) 2016-06-07 11:48:25 +02:00
generalsettings.h Workaround for Ubuntu 16.04 tray issue #4944 (#4947) 2016-06-07 11:48:25 +02:00
generalsettings.ui General Settings page: Remove the add account button. 2015-11-16 17:07:05 +01:00
gui.md Structure developer documentation 2015-06-29 18:43:21 +02:00
ignorelisteditor.cpp IgnoreFiles: Fix the socket API would not load the new custom ignored files #3496 2015-10-27 16:07:59 +01:00
ignorelisteditor.h IgnoreListEditor: handle the ignore hidden files checkbox. 2015-07-15 15:54:41 +02:00
ignorelisteditor.ui IgnoreEditor: Rename confusing checkbox 2015-08-10 11:15:39 +02:00
lockwatcher.cpp LockWatcher: Keep an eye on Windows file locks (#4758) 2016-04-29 16:14:18 +02:00
lockwatcher.h LockWatcher: Keep an eye on Windows file locks (#4758) 2016-04-29 16:14:18 +02:00
logbrowser.cpp GUI comment and message typos for master 2015-10-05 10:06:19 +05:45
logbrowser.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
main.cpp Fix windows HiDPI #4994 (#4998) 2016-06-27 16:17:58 +02:00
networksettings.cpp Proxies: Enable ownBrander to force system proxy usage #4458 2016-03-11 16:21:40 +01:00
networksettings.h SettingsDialog: Make bigger and more native on OS X 2015-07-20 18:16:33 +02:00
networksettings.ui Network Settings: Adjust the bandwidth limit option with old Qt 2015-10-22 17:57:34 +02:00
notificationconfirmjob.cpp NotificationJobs: Set ocs header to maintain the session. 2016-04-05 16:52:51 +02:00
notificationconfirmjob.h NotificationHandling: Use QByteArray for the verb. 2016-03-29 18:01:49 +02:00
notificationwidget.cpp NotificationWidget: Handle empty message and subject properly. 2016-04-04 12:45:39 +02:00
notificationwidget.h NotificationHandling: Use QByteArray for the verb. 2016-03-29 18:01:49 +02:00
notificationwidget.ui ActivityWidget: Properly set widget for the Scrollview. 2016-04-11 15:38:25 +02:00
ocsjob.cpp Sharing: Fix bug with file names containing percent encodes #5042 (#5043) 2016-07-12 14:25:33 +02:00
ocsjob.h ocs jobs: Add a define for OCS job success. 2016-03-14 15:41:20 +01:00
ocsshareejob.cpp ShareDialog: fix auto completion to actualy auto complete 2015-11-16 15:23:02 +01:00
ocsshareejob.h ShareDialog: fix auto completion to actualy auto complete 2015-11-16 15:23:02 +01:00
ocssharejob.cpp Disable unavailable sharing permissions #4383 2016-04-14 09:44:37 +02:00
ocssharejob.h Disable unavailable sharing permissions #4383 2016-04-14 09:44:37 +02:00
openfilemanager.cpp Windows: Fix opening activity entries with a space in the name 2015-02-06 13:44:06 +01:00
openfilemanager.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
owncloudgui.cpp Fix a QAction leak (#5008) 2016-06-27 16:22:51 +02:00
owncloudgui.h Make the AccountState a construction argument of the Folder 2016-03-28 13:07:28 +02:00
owncloudsetuppage.ui Split into three separate projects: library, gui and cmd 2014-07-11 11:07:31 +02:00
owncloudsetupwizard.cpp GUI: Show link to the page that allow to add a new token (#4963) 2016-06-28 12:25:04 +02:00
owncloudsetupwizard.h GUI: Show link to the page that allow to add a new token (#4963) 2016-06-28 12:25:04 +02:00
protocolwidget.cpp Prevent the sync protocol widget from over-using memory 2016-06-17 19:20:53 +02:00
protocolwidget.h Protocolwidget: Removed some leftovers from refactoring. 2016-04-18 16:47:14 +02:00
protocolwidget.ui OS X: Fix alignment of "Copy" button in protocol #4207 2016-01-04 16:16:15 +01:00
proxyauthdialog.cpp Proxy auth: Fix cred invalidation on Windows. 2015-07-17 13:00:16 +02:00
proxyauthdialog.h Proxy auth: Fix cred invalidation on Windows. 2015-07-17 13:00:16 +02:00
proxyauthdialog.ui System proxy: Ask for credentials if needed. 2015-07-17 11:54:46 +02:00
proxyauthhandler.cpp Proxy auth: Fix cred invalidation on Windows. 2015-07-17 13:00:16 +02:00
proxyauthhandler.h GUI comment and message typos for master 2015-10-05 10:06:19 +05:45
quotainfo.cpp Quota: Add branding option for the base folder (#4714) 2016-04-22 10:05:50 +02:00
quotainfo.h Quota: Change quota path if single folder #4460 2016-03-18 13:34:49 +01:00
selectivesyncdialog.cpp Use natural sorting for filenames if available #4859 (#4864) 2016-05-19 15:36:46 +02:00
selectivesyncdialog.h SelectiveSync: Verify if the list could be read from journal. 2016-04-06 15:01:28 +02:00
servernotificationhandler.cpp NotificationHandling: Use QByteArray for the verb. 2016-03-29 18:01:49 +02:00
servernotificationhandler.h Notifications: Refactor - create a notification handler class 2016-03-11 10:48:34 +01:00
settingsdialog.cpp Merge branch 'notifications' 2016-04-04 10:40:33 +02:00
settingsdialog.cpp.Rbt431 Make all ptr-based members either const or check for their existance 2014-12-01 13:08:49 +01:00
settingsdialog.h Activity tab doesn't vanish with too many accounts #4188 2015-12-10 09:43:16 +01:00
settingsdialog.ui Revert "Settings dialog: remove the close button #3713" 2015-10-22 16:20:59 +02:00
settingsdialogmac.cpp SettingsDialog: show "Account" for the tab name for branded client 2016-01-07 17:59:21 +01:00
settingsdialogmac.h Activities: Fix on Mac #4083 2015-11-17 11:53:49 +01:00
share.cpp Use expireDate if returned by the OCS Share API 2016-04-19 11:22:32 +02:00
share.h Use expireDate if returned by the OCS Share API 2016-04-19 11:22:32 +02:00
sharedialog.cpp Only 1 : between namespace and property 2016-04-22 14:38:43 +02:00
sharedialog.h Disable unavailable sharing permissions #4383 2016-04-14 09:44:37 +02:00
sharedialog.ui ShareDialog: Tell a user early if resharing is impossible #4679 2016-04-14 10:16:37 +02:00
sharee.cpp Sharing: feedback when there is no result while searching for an user #4348 2016-01-12 14:36:13 +01:00
sharee.h Sharing: feedback when there is no result while searching for an user #4348 2016-01-12 14:36:13 +01:00
sharelinkwidget.cpp Share dialog: Add 'Mail link' button #3261 (#4961) 2016-06-20 13:06:57 +02:00
sharelinkwidget.h Share dialog: Add 'Mail link' button #3261 (#4961) 2016-06-20 13:06:57 +02:00
sharelinkwidget.ui Share dialog: Add 'Mail link' button #3261 (#4961) 2016-06-20 13:06:57 +02:00
sharepermissions.h Disable unavailable sharing permissions #4383 2016-04-14 09:44:37 +02:00
shareusergroupwidget.cpp Share: Permissions for federated shares on servers >=9.1 #4996 (#5001) 2016-06-27 11:09:51 +02:00
shareusergroupwidget.h Add spinner during sharee search (#4764) 2016-04-29 14:11:27 +02:00
shareusergroupwidget.ui ShareDialog: show the error message in red 2016-05-02 14:12:04 +02:00
sharewidget.ui [Sharing] Permissions now in dropdown menu 2015-11-25 11:26:21 +01:00
socketapi.cpp Merge remote-tracking branch 'origin/2.2' 2016-07-12 17:38:15 +02:00
socketapi.h [osx] Fix missing overlay icons on client startup 2016-05-03 13:01:51 +02:00
socketapisocket_mac.h shell_i: Use an NSConnection instead of a local socket #2340 2015-06-15 15:28:17 +02:00
socketapisocket_mac.mm shell_i: Use an NSConnection instead of a local socket #2340 2015-06-15 15:28:17 +02:00
sslbutton.cpp gui: Fix some icons in highdpi 2015-11-17 10:48:45 +01:00
sslbutton.h SslButton: Only show menu when info is available. 2015-07-02 10:49:18 +02:00
sslerrordialog.cpp SSL Certificate Error Dialog: show account name #3729 2015-09-03 16:19:53 +02:00
sslerrordialog.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
sslerrordialog.ui SSL Certificate Error Dialog: show account name #3729 2015-09-03 16:19:53 +02:00
synclogdialog.cpp SyncLogDialog: Do not delete SyncLogDialog after close. 2015-10-07 18:59:48 +02:00
synclogdialog.h Settings: Move synclog widget to a seperate dialog. 2015-10-01 16:57:37 +02:00
synclogdialog.ui Settings: Move synclog widget to a seperate dialog. 2015-10-01 16:57:37 +02:00
syncrunfilelog.cpp csync: Use an explicit instruction for should_update_metadata 2016-08-17 15:39:31 +02:00
syncrunfilelog.h Log: Include start of propagation and lap duration 2016-06-09 14:28:15 +02:00
systray.cpp OS X: Send notification natively 2015-02-07 18:23:40 +01:00
systray.h Use doxygen style everywhere 2015-06-29 18:56:09 +02:00
systray.mm OS X: Also show desktop notifications when app is active 2016-01-05 13:33:05 +01:00
thumbnailjob.cpp Use overloaded functions 2015-10-16 12:48:48 +02:00
thumbnailjob.h Typos 2015-10-16 12:51:24 +02:00
tooltipupdater.cpp Update QTreeView tooltips as they change #3403 2016-03-29 12:26:09 +02:00
tooltipupdater.h Tooltip updater: Fix compile with Qt4 2016-03-30 09:21:28 +02:00
version.rc.in Use correct values for items in version.rc 2016-02-17 14:16:29 +01:00