Commit graph

8348 commits

Author SHA1 Message Date
Matthieu Gallien
d4081c99a7 prevent updating files when that would result in invalid mtime
ensure that we never try to sync a file with a sync that would result in
setting it up to an invalid mtime

test a recovery scenario with plain old sync folder and virtual files

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-17 23:28:02 +00:00
Matthieu Gallien
b8ff1525f7 let error during update of metadata of virtual files propagate to users
errors duing update of metadata of virtual files are being ignored and
not propagated to users to be shonw in main dialog

ensure they are real errors from sync engine point of view and let them
be taken into account

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-17 23:28:02 +00:00
Matthieu Gallien
541447723a remove all usage of QDateTime::toTime_t() to avoid overflow
QDateTime::toTime_t() can overflow if called with a date outside its
domain of working

this method is obsolete and QDateTime::toSecsSinceEpoch() is the
replacement

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-17 23:28:02 +00:00
Matthieu Gallien
a7adca84e2 remove wrong assert that is blocing the run of debug client
if the server has files with invalid modtime this assert will trigger
even though the code is handling the situation

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-17 23:28:02 +00:00
Camila
73bae8cd30
Add TalkReply class and tests.
- Add struct TalkNotificationData to handle token and messageId.
- Handle chat and call notifications with the new struct.
- Add talk token and messageId to data roles in ActivityListModel.
- Add Talk Reply component to the ActivityList.
- User Loader to display the TalkReply component.
- Move Talk Reply from ActivityItem to ActivityItemContent due to PR #4186.
- Use TextField instead of Text.
- Disable send reply button instead of changing border color when field is empty.

Signed-off-by: Camila <hello@camila.codes>
2022-03-17 17:50:33 +01:00
Claudio Cambra
628ee10008 Implement local socket to communicate with finder extension
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-17 11:46:57 +00:00
Claudio Cambra
65f2bada3e Add thumbnails for files in the activity view
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-17 10:46:09 +00:00
Claudio Cambra
f585b8bd48 Add support for server color theming by using server color as accent
color

Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-16 13:57:45 +01:00
Claudio Cambra
02f3a1aed6 File activity dialog now works for all file actions activities (e.g. deleted files)
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-16 08:38:14 +01:00
Claudio Cambra
ead4cc6fe3 Increase max line of text in activity item text to two
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-15 09:22:11 +00:00
Claudio Cambra
2f795df701 Ensure file activity dialog appears in centre of screen
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-13 22:11:26 +00:00
Matthieu Gallien
11e7ebd5fa properly ask Qt to create qml opengl surface with proper options
should prevent context losses error with some opengl drivers

should prevent corruptions to occur with come opengl drivers

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-10 14:19:46 +00:00
alex-z
01eb050cd8 Do not remove files from a Group folder and its nested folders whe it is renamed or removed while not allowed.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-03-09 10:54:39 +02:00
rakekniven
8aa3ab3d37
Merge branch 'master' into rakekniven-patch-1 2022-03-04 12:22:31 +01:00
Camila
2c20f81a53 Add 'Help' action back.
I think it was a mistake that caused this.

Signed-off-by: Camila <hello@camila.codes>
2022-03-03 11:16:09 +00:00
Claudio Cambra
f6b377ab17 Simplify currentScreen
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-02 13:37:30 +00:00
Claudio Cambra
655a2e1c39 No longer assume status bar height, calculate, fixing notch borking
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-02 13:22:55 +01:00
rakekniven
5045394b43
l10n: Changed spelling
Reported at Transifex.

Fix for #4004 

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2022-02-28 18:40:26 +01:00
alex-z
bf80efc7ab Fix review comments from Matthieu. Using curent reverse iterator when searching for parent.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-25 15:31:26 +00:00
alex-z
6c690a1b09 Do not remove a folder that has files that were not uploaded yet during propagation.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-25 15:31:26 +00:00
alex-z
3443de4388 Rollback local move when server move has failed.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-23 16:53:26 +02:00
Valdnet
e098e73b06
l10n: Change to lowercase
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-02-12 18:38:26 +01:00
Matthieu Gallien
4371c0cbfe add headers in cmake files to get them properly detected
qt creator for example requires that headers are explcitly given in the
source lists

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-02-11 14:31:22 +00:00
Matthieu Gallien
e4590d7a3b ensure that bulk upload network job errors are handled
in case we get a network error during bulk propagator POST network
request, report all files within this upload as files in error that will
then be sent using the plain old WebDAV protocol

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-02-11 09:44:20 +01:00
Matthieu Gallien
8decd475e5 clean transition when files with spaces exist already
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-02-07 21:32:06 +00:00
Matthieu Gallien
e89268bdd7 ensure we emit a rename command for renamed files
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-02-07 21:32:05 +00:00
alex-z
ae44dd5978 Adjust icons for activity entries in main dialog. Refactor the dialog by splitting it to separate components.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-04 17:52:37 +02:00
alex-z
0776df65c3 Always build with updater. Use 'beta/stable' channel seletor in 'General Settins' dialog with default 'stable'.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-02 10:46:11 +00:00
alex-z
0ea7e8d3a6 Cmake option to disable proxy
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-02 10:02:34 +00:00
Claudio Cambra
a2524763c8
Merge branch 'master' into bugfix/account-menu-scroll 2022-02-01 17:01:51 +01:00
Claudio Cambra
ce5494b4ec Add testing for ActivityListModel
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-02-01 13:57:08 +00:00
Claudio Cambra
7a1eae45d3 Account menu can now scroll
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-31 15:06:55 +00:00
Matthieu Gallien
20a4ed6e7e use proper API to dehydrate a placeholder file
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-01-24 14:16:40 +00:00
Claudio Cambra
624213956e Add ability to copy internal link from share dialog
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-24 09:40:28 +00:00
Felix Weilbach
12610baeba Replace Text with Label
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2022-01-17 11:11:57 +00:00
Felix Weilbach
f4bf4da44d Remove commented out code
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2022-01-17 11:11:57 +00:00
Felix Weilbach
99457e8c38 Use the font size that Qt suggest
Fixes: https://github.com/nextcloud/desktop/issues/3797

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2022-01-17 11:11:57 +00:00
Claudio Cambra
2a27882307 Show only filenames in tray activity items, with full path in tooltip
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-14 08:02:08 +00:00
Camila
fd8186ff0e ShareDialog: group links and users in one scrollbar.
- Remove the scrollbar used only for user shares
- Resize share dialog when removing share links
- Fix widget margins and max height of the share dialog
- slotAdjustScrollWidgetSize => adjustScrollWidgetSize

Signed-off-by: Camila <hello@camila.codes>
2022-01-13 10:39:11 +00:00
Camila
82aed71d09 Just trying to make the sahre dialog look nicer.
Signed-off-by: Camila <hello@camila.codes>
2022-01-13 10:39:11 +00:00
Camila
c08a291742 Remove unused slots.
Signed-off-by: Camila <hello@camila.codes>
2022-01-13 10:39:11 +00:00
Camila
a10f84b5c1 Add scroll area for share links.
Signed-off-by: Camila <hello@camila.codes>
2022-01-13 10:39:11 +00:00
rakekniven
5cec3c3ca1 l10n: Fixed grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2022-01-13 09:39:13 +00:00
alex-z
3aaaaaf2d0 Bugfix. Re-init sharing manager to enable link sharing UI when receiving sharing permissions.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-13 10:42:48 +02:00
rakekniven
961cea92ca l10n: Fixed grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2022-01-12 15:55:56 +01:00
alex-z
39d1ca3a3c Fix review comments.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-12 10:36:25 +00:00
alex-z
39e2292acd Fix review comments.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-12 10:36:25 +00:00
alex-z
3d7fc166b4 Fix review comments.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-12 10:36:25 +00:00
alex-z
4a8433d297 Display error message when creating a link share with compromised password.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-12 10:36:25 +00:00
Dmytro Korchynskyi
c872514571 write logs to Output window of Visual Studio
Signed-off-by: Dmytro Korchynskyi <kdl.dima@gmail.com>
2022-01-12 11:59:34 +02:00
alex-z
225753a8c0 Refactor DeleteJob and DeleteApiJob to use SimpleFileJob.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-11 13:37:09 +00:00
alex-z
190d278fd4 Checksum validation PropagateDownload unit tests.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-11 13:37:09 +00:00
alex-z
6f5f3e769f Fix typo in usernamePrefillServerVersionMinSupportedMajor.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-11 13:37:09 +00:00
alex-z
b7be10f712 Ask server to recalculate checksum on validatin failure.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-11 13:37:09 +00:00
Claudio Cambra
f23c7007a5 Fix space
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-07 17:48:31 +00:00
Claudio Cambra
a1d42b4177 Make compiler required when option is on, removed unused def
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-07 17:48:31 +00:00
Claudio Cambra
8ad04f5a5e Remove AUTORCC
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-07 17:48:31 +00:00
Claudio Cambra
e25140d72e Add option of enabling QtQuick compiler
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-07 17:48:31 +00:00
alex-z
77d7a0b7ed Do not display 'Conflict when uploading some files to a folder
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-07 08:46:22 +00:00
alex-z
62b0a9b9f1 Try to sign-in after being signed-out due to SslHandshakeFailedError
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-05 10:01:13 +02:00
Claudio Cambra
8c091a2daa Hide share button for deleted and ignored files in tray activity
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2021-12-20 16:07:11 +00:00
Valdnet
cedf079762
Remove parenthesis
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2021-12-17 08:53:35 +01:00
Matthieu Gallien
3e82466d5e ensure any errors after calling FileSystem::getModTime are handled
be sure that even in release mode no errors when calling getModTime
could be ignored

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-16 15:28:46 +01:00
alex-z
b66ba8ba0a Added sync stop when failed to cancel delete jobs.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-15 13:41:30 +00:00
alex-z
6381acf85b Do not crash on findAndCancelDeletedJob.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-15 13:41:29 +00:00
alex-z
2482ca7ea7 Fix CMake error in ECMAddAppIcon for mac.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-14 17:31:21 +00:00
Matthieu Gallien
24f1d2ce89 fix review comment
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-14 15:28:42 +00:00
Matthieu Gallien
f581f71058 ensure bulk upload jobs finished after an error
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-14 15:28:42 +00:00
alex-z
3f3b752e44 Save folder settings to config when force-switching VFS.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-14 16:33:35 +02:00
alex-z
1244e96681 Enforce VFS. Disable 'Make always available locally'.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-14 15:03:57 +02:00
Matthieu Gallien
9a201a8963 force download from server for local files that have invalid dates
will trigger if local state is incoherent
like the file itself haveing 0 or negative modtime and the database not

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-14 10:00:59 +01:00
Matthieu Gallien
8ead035016 do not get stuck forever in sync in case of errors
when a local file has invalid date and we try to upload it, properly
handle the error such that we are not stuck forever in sync state

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-10 11:28:35 +01:00
Matthieu Gallien
66d981aa64 remove files which gets downloaded with an invalid modified time
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-09 10:00:36 +01:00
Matthieu Gallien
8696670909 add log statements for each new assert about invalid modified time
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
791073bd28 recover from local invalid modifie time: force download from server
force file download if local modified time is invalid and server has
valid modified time

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
41c86d6459 prevent cases where desktop client would store invalid modified time
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
b1977dfb18 prevent injecting invalid modified time through CfApi calls
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
76c8d7287e do not consider that a file has changed if its mtime is invalid
a mtime should never be 0 or negative

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
389424c54b avoid downloading a file from server when modified time is invalid
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
c9f63b5744 prevent invalid modified time from being propagated
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
Matthieu Gallien
9523c036d6 assert on invalid modtime
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-08 07:22:24 +00:00
alex-z
77bf892809 Use different icon for a sync folder on Windows depending on zoom level.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-07 15:48:16 +00:00
Matthieu Gallien
b053cf9e2a do not forget the path when renaming files with invalid names
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-12-07 11:35:38 +01:00
alex-z
25785841a3 Always prefill username from Windows login name based on server version
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-12-03 11:08:35 +02:00
rakekniven
7dfd8181fa l10n: Changed case of word
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2021-11-30 11:52:46 +00:00
Matthieu Gallien
c53159cb0c fix random error when updating CfApi metadata
initialiazing all fields in a structure is required to not have random
behavior

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-29 18:04:00 +01:00
Matthieu Gallien
1a9aade28e use the error message sent by the server for bulk upload
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 16:32:08 +01:00
Matthieu Gallien
34c4c28879 allow sending parallel batch of files: curretly disabled
can allow to send a new batch before the reply to a previous one is
received

due to concerns with the reliability on the server side this is disabled

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 16:32:08 +01:00
Matthieu Gallien
a272b34809 really check that this is a valid answer when receiving batch upload
we could somehow miss that the reply is missing proper fields

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 15:49:25 +01:00
Matthieu Gallien
05b8d1e40d batch upload: only handle file that are in the reply
do not handle all files sent but only received ones

should allow to submit more than one request in parallel

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 15:49:25 +01:00
Matthieu Gallien
e14502606c make sure we do not start a new batch when the previous one is not sent
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 15:49:25 +01:00
Matthieu Gallien
59953d857b use a proper constant for the size of batch
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 15:49:25 +01:00
Matthieu Gallien
f56985938d if BulkPropagatorJob abort after an error emit finished signal
prevent sync engine being stuck because of an error when preparing bulk
upload

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-26 12:48:38 +01:00
Matthieu Gallien
c194605c35 implement bulk upload
add PutMultiFileJob to send many files at once

use it in BulkPropagatorJob to implement bulk upload feature

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-24 16:17:47 +01:00
Matthieu Gallien
112be18635 read capabilities for bulk upload from server
use it in dedicated tests

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-24 16:17:47 +01:00
Matthieu Gallien
802c7ac906 make AbstractNetworkJob::errorString virtual: it is already overriden
in practice AbstractNetworkJob::errorString is already overriden but the
overrided code is probably never called while the intention looked like
the opposite

fix that by making the method virtual in base class

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-24 16:17:47 +01:00
alex-z
b03bf1c1f0 Pass username from Windows to login page.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-11-24 10:04:22 +00:00
Matthieu Gallien
83a8058b51 improve logging for CfApi
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-23 13:41:29 +00:00
Matthieu Gallien
072e9d44bd gracefully handle one case of invalid handles
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-23 13:41:29 +00:00
Matthieu Gallien
a3013de6ea fix OCC::CfApiWrapper::handleForPath when path does not exist
sometime it can be called with a path that is already deleted

ensure we always go to the correct code path

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-23 13:41:29 +00:00