Commit Graph
100 Commits
Author SHA1 Message Date
Olivier GoffartandRoeland Jago Douma d114212333 OwnSql: Fixup after feedback for #6388 2018-07-03 10:33:26 +02:00
Olivier GoffartandRoeland Jago Douma 779969f865 OwnSql: Put the SQL queries next to their use.
This avoid haivng to modify 4 places when we want to add a query
2018-07-03 10:33:26 +02:00
Olivier GoffartandRoeland Jago Douma 518fb90757 OwnSql: Some refactoring
Use QByteArray for the query so we don't have to convert twice.
Automatically finish the query when the DB close, so we don't
have to call reset
2018-07-03 10:33:26 +02:00
Olivier GoffartandRoeland Jago Douma c5ace2338c Theme: unify ownCloudTheme and Theme classes
The goal is to avoid confusion described in issue #6422 by removing
duplicates between the Theme and owncloudTheme.

 - Use the about from ownCloudTheme everywhere
 - Create default applicationIcons() and condifFileName() that should work
   everywhere
 - trayFolderIcon was removed as it is not used
 - the helpUrl from the default Theme now points to the owncloud client
   documentation. Before there was no help entry by default for branded
   client if the function was not overriden.
 - Do not merge functions that would otherwise break compatibility with
   theme that did not override them. For example colors or customMedia.
2018-06-28 12:33:39 +02:00
Olivier GoffartandRoeland Jago Douma 0d0bff4bf5 Windows Shell extention: Fix clicking on the menu entries
Issue #6553
2018-06-21 19:21:07 +02:00
Olivier GoffartandCamila San 1b6cc36a61 Fix make doc-man in shadow build
Issue #6555
2018-06-10 16:07:22 +02:00
Olivier GoffartandRoeland Jago Douma 7c9ec4a55a Credentials: Retry fetching from the keychain in case the keychain is still starting
When owncloud is restored, at boot time, it might be started before the
crendential manager. So if we detect an error, wait 10 seconds and hopefully
it'd be loaded by then.

Issues: #4274, #6522
2018-06-07 15:18:40 +02:00
Olivier GoffartandRoeland Jago Douma 14ff3534a8 Fix compilation warning
propagateuploadng.cpp:500:10: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
2018-06-07 08:53:12 +02:00
Olivier GoffartandRoeland Jago Douma 31ba483845 sqlite: Update bundled version to 3.23.1
For OS X and Windows.
2018-06-06 20:40:23 +02:00
Olivier GoffartandRoeland Jago Douma fbc1747168 Fix a bunch of warning with clang
The option -Wno-discarded-qualifiers only exists with GCC, clang warns that
it has no effects.

Also it warns when some virtual fuction are marked with override but not
all of them.
2018-06-06 20:31:14 +02:00
Olivier GoffartandCamila San 073a5184cb Use std::chrono::milliseconds to represent milliseconds 2018-06-06 17:26:53 +02:00
Olivier GoffartandRoeland Jago Douma c4af4a5a85 More Button: Use SVG and fix size so it renders good in highdpi
When the more button was changed from using a text to an icon,
the size computation was not adjusted proerly to that of a button
with an icon.

And using svg allows it to be rendered correctly with high-dpi

It looks much much nicer now
2018-06-06 13:55:34 +02:00
Olivier GoffartandRoeland Jago Douma 012c638d4e Uploads: Don't delete unexisting chunks
Since commit 4dc49ff3, we store an entry in the upload info table even
for non chunked uploads. However, if this fails we don't want to remove
non-existant stale chunks if the upload fails.

Without this commit, we would send a DELETE command to clean non-existant
chunks in the dav/uploads/ namespace.
2018-06-06 09:52:02 +02:00
Olivier GoffartandRoeland Jago Douma 613fd30021 SyncJournalDb::setSelectiveSyncList: Always use a transaction
Issue #6431
2018-06-05 11:15:51 +02:00
Olivier GoffartandRoeland Jago Douma f4f228de3e FolderStatusModel: fix potential assert
OCC::FolderStatusModel::slotUpdateDirectories: ASSERT: "parentInfo->_fetching" in file /home/olivier/kdegit/owncloud/mirall/src/gui/folderstatusmodel.cpp, line 599

This can happen if the structure of a folder is change while the user
expands the root folder. In this case, resetSubs() is called which
resets _fetching to false.
Instead, we need to keep a pointer to the job so we can abort it by
deleting it.
2018-06-05 08:12:58 +02:00
Olivier GoffartandRoeland Jago Douma 3e508329b5 csync_update: add the checksum in the discovery log
Issue #6414
2018-06-05 07:52:29 +02:00
Olivier GoffartandRoeland Jago Douma 393f6c2310 SyncEngine: remove the "CSync" wording from the error messages
They are confusing for the user.
Example in issue #6274
2018-06-04 15:41:38 +02:00
Olivier GoffartandRoeland Jago Douma 5f30177bfc CSync: Remove unused error codes
None of the removed ERRNO code were ever set.
So none of the removed error hapenned anymore
2018-06-04 15:41:38 +02:00
Olivier GoffartandRoeland Jago Douma 15e93c8a31 CSync: reconcile never returns an error 2018-06-04 15:41:38 +02:00
Olivier GoffartandRoeland Jago Douma be29fc2f69 csync: remove CSYNC_PARAM_ERROR
It does not make sense to report such error to the user.
Its goal was to show invalid use of the csync API, but this is now done
with asserts.
2018-06-04 15:41:38 +02:00
Olivier GoffartandRoeland Jago Douma 0443f8dd4d csync: Simplify csync_walk_local_tree/csync_walk_remote_tree
Small refactoring
2018-06-04 15:41:38 +02:00
Olivier GoffartandCamila San 5f969580ac Nautilus: Fix Python3 and remove many debug
Use b'\n' in the call to rfind, as the _remainder is bytes, not a string.

Remove most of the debug message which happens during normal operation.
They are mostly spamming the nautilus console, and can also cause bug
as they may throw exception in case of wrong encoding.

Relates to issue: #6406
2018-06-01 13:35:19 +02:00
Olivier GoffartandCamila San 4d7617d64b Propagator: remove a bunch of code related to the 'Shared' directory
This no longer exists since the owncloud server 7.0 which we no longer
allow to connect to
2018-06-01 13:17:20 +02:00
Olivier GoffartandCamila San 8484b493e4 ConnectionValidator: change the minimum server version
Forbit connection with server older than 7.0. These server did not have
permission.

Also warn for anything older than 9.1. 9.0 is end of life according to
https://github.com/owncloud/core/wiki/Maintenance-and-Release-Schedule
2018-06-01 13:17:11 +02:00
Olivier GoffartandCamila San 1b587a1241 ConnectionValidator::Status use Q_ENUM
So no need to have a manual conversion to QString
This is only used in debug message anyway.
2018-05-31 21:56:55 +02:00
Olivier GoffartandCamila San 311307e8cb Move ClientProxy and ConnecitonValidator to gui
They are using the ConfigFile and are used to control
when to sync rather than for the sync itself
2018-05-31 21:56:55 +02:00
Olivier GoffartandCamila San 7e05e1e411 owncloudcmd: Do not overwrite the http timeout for json jobs
The AbstractNetworkJob already has a sensible timeout that depends
on an environment variable.
No need to overwrite that with some arbitrary value. (The connection
validator does that because it could cause problems if two connection
validator were to run at the same time. Not a problem here)
2018-05-31 21:56:55 +02:00
Olivier GoffartandCamila San 204cb470b4 owncloudcmd: Do not read the proxy settings from the gui's config file
The proxy settings for the owncloudcmd client can be set via the
--httpproxy command line argument. owncloudcmd should not depends
on the gui's config
2018-05-31 21:56:55 +02:00
Olivier GoffartandCamila San 9fe8713bdc Folder: remove unused member 2018-05-31 21:56:44 +02:00
Olivier GoffartandCamila San ad276a4bce Folder: normalize the local path.
We otherwise normalize all path in the C form, so we must have
the Folder's path normalized the same. Or all comparizon will fail
(such as knowing if a file from the SocketAPI or the FilesystemWatcher
are part of the folder)

Issue #4424
2018-05-16 20:26:09 +02:00
Olivier GoffartandCamila San 3506c52be9 propagateuploadv1: don't finalize after a done()
Should fix an assert when "Server does not support X-OC-MTime"
(Which only happens with owncloud 5)

Issue #6403
2018-05-16 20:23:47 +02:00
Olivier GoffartandCamila San b0f539fc1f cmake: Remove references of now unused WITH_TESTING
Issue #6318
2018-05-16 13:00:17 +02:00
Olivier GoffartandCamila San d4aebd30de Utility::fsCasePreserving: remove UNIT_TESTING ifdef
Since the release package will be build with unit test, we don't
want to query the env variable at every call to fsCasePreserving.
So only test the env variable at startup.
And the testutility can still change the value.

(The env variable is still used from t8.pl and maybe smashbox)

Issue #6318
2018-05-16 12:57:20 +02:00
Olivier GoffartandCamila San 88347a985f Adjust the Move To Trash patch
(PR #6265)

 - Remove the UI completely
 - Move the #ifdef inside the FileSystem::moveToTrash function, so it is easier to
   implement on other platforms
 - Q_OS_UNIX includes mac, so we need to disable it. (not using Q_OS_LINUX because of
   other BSD that uses XDG spec as well
 - Translate the error messages
 - Add a couple of doc comments
2018-05-15 19:10:41 +02:00
Olivier GoffartandCamila San 2fcd7b20b8 SocketAPI: "Open in browser" and disable Share entries when sharing is disabled.
This adds "Open in browser" entry in the menu (Issue #5903)

Also mark the entries as disabled when the file is not yet on the server.
If re-sharing is not allowed for that file, a disabled explaination
entry is added to the menu.
If sharing is disabled globaly in the branding or in the server,
the share entry will not be present.
(Issues #4205 and #4608)

Meta issue #6292
2018-05-15 17:39:30 +02:00
Olivier Goffart 02988229b1 FolderStatusModel: don't use deprecated QModelIndex::child
Was deprecated in Qt 5.8.
(IMHO this show that child can be usefull and I am not sure the
deprecation was justified)
2018-01-24 10:23:03 +01:00
Olivier Goffart 72b9beb79c Merge remote-tracking branch 'origin/2.4'
Conflicts:
	shell_integration/nautilus/syncstate.py
2018-01-23 14:08:15 +01:00
Olivier GoffartandOlivier Goffart 883080b557 Windows shell extension: port to the new protocol 2018-01-23 14:02:56 +01:00
Olivier GoffartandOlivier Goffart 982c591ec9 SocketApi: add a way to disable menu entries 2018-01-23 14:02:56 +01:00
Olivier GoffartandOlivier Goffart 1782ae3c08 SocketAPI: Make it easier to add or remove item in the action menu
By making it dynamic.
So far only the dolphin shell extension have been ported
2018-01-23 14:02:56 +01:00
Olivier Goffart f254ee3211 Nautilus shell integration: Port to Python 3 2018-01-23 12:30:58 +01:00
Olivier GoffartandOlivier Goffart c3dbb20ce3 Logger: --logdebug only show owncloud's debug message
Recent Qt version show way too many debug messages, spamming the console.
So filter only messages that comes from the client.
2018-01-22 21:13:15 +01:00
Olivier Goffart 5a97ddde5a Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/gui/updater/updater.cpp
2018-01-19 13:41:29 +01:00
Olivier GoffartandOlivier Goffart b8539eb329 Get rid of the StopWatch in the PropagateUpload job
For issue #6318

The StopWatch is using memory, and we are not really using it.
2018-01-19 13:37:48 +01:00
Olivier Goffart 926609bd74 Partially revert "shell_integration/dolphin: Silence some warnings"
This partially reverts commit 1c721e9422.

This caused the overlay plugin to be installed at the wrong place
because the kcoreaddons_add_plugin macto still use deprecated
${PLUGIN_INSTALL_DIR}.

I guess we'll have to live with the warnings.
2018-01-17 17:34:27 +01:00
Olivier Goffart 2a14ba5582 Folder: remove declaration of non-existing method 2018-01-15 15:43:13 +01:00
Olivier Goffart 2a842a5745 Application: remove declaration of non-existing functions 2018-01-15 15:07:09 +01:00
Olivier Goffart cfe9909560 admin/linux/Dockerfile: Add comments 2018-01-15 13:56:35 +01:00
Olivier Goffart d0713d018c client_de.ts: Fix spacing in a translation
Issue #6303
2018-01-15 11:29:08 +01:00
Olivier GoffartandDominik Schmidt 437d45981e Remove unused c_strlist 2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 3ae327ea8e Modernize out CMakeLists.txt
Mainly uses target_include_directories instead of include_directories
so libraries public include directory get automatically added when adding
the target in target_link_library
2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 1c721e9422 shell_integration/dolphin: Silence some warnings 2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 5d0aa5f039 Remove unused c_path 2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 41798cef18 Csync: remove some unused build system stuff 2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 1c11778693 Remove the unusued csync_file_locked_or_open test in csync_reconcile
It is unused. Also remove the corresponding error code
2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 3ddd4b6f16 Get rid of csync_log
We use Qt's debugging code everywhere
2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt d948ed11a1 Csync: use QElapsedTimer and qCInfo instead of CSYNC_LOG and its own csync time function
This allow to remove all the csync time manipulation routne which are now unused
2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 257d8142b1 Build system: Get rid of QtVersionAbstraction.cmake
Use modern cmake with target_link_libraries and Qt5:: that
automatically add the include path and compile flags
2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 48c55b7d29 csync/std: don't build in a separate library
There is no need to create a static library for the csync/std file, just
put everything together in csync
2018-01-13 13:58:17 +01:00
Olivier GoffartandDominik Schmidt 776bbbf7b1 Don't include sqlite3.h from headers
So that sqlite is not part of the public interface of csync
(and that the sqlite include path don't need to be passed when compiling
libsync or gui)
2018-01-13 13:58:17 +01:00
Olivier Goffart 9613f6437d Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/libsync/networkjobs.cpp
2018-01-11 10:46:50 +01:00
Olivier Goffart a642d99d4b Merge remote-tracking branch 'origin/2.4'
Conflicts:
	VERSION.cmake
        src/CMakeLists.txt
2017-12-21 12:51:01 +01:00
Olivier GoffartandOlivier Goffart 1940c2f9bf Exclude: Use Qt to load the exclude file
fopen does not work well with relative path tand forward slashes on windows
This fix the windows textexcludedfiles test.
And also make the code simpler.

Note that the 'trimmed' might be a behavior change, but i think it is ok
2017-12-15 19:16:20 +01:00
Olivier Goffart ee366df58f Fix the TestFolderMan on Windows 2017-12-15 14:51:00 +01:00
Olivier Goffart 482ee875a1 Fix TestSyncEngine on windows 2017-12-15 14:39:01 +01:00
Olivier Goffart b10edfecfc Workaround MSVC bug with enum in bitfield
MSVC stores the enum as signed in the bitfield (contrary to the C++ spec)
Which means that once we store a value such as SyncFileItem::DetailError
in a bitfield, we get a negative value back, then of course, further
comparison fails.
2017-12-15 14:18:45 +01:00
Olivier GoffartandOlivier Goffart 4dc49ff3b0 SyncEngine: Recover when the PUT reply (or chunkin's MOVE) is lost
This can happen if the upload of a file is finished, but we just got
disconnected right before recieving the reply containing the etag.
So nothing was save din the DB, and we are not sure if the server
recieved the file properly or not. Further local update of the file
will cause a conflict.

In order to fix this, store the checksum of the uploading file in
the uploadinfo table of the local db (even if there is no chunking
involved).  And when we have a conflict, check that it is not because
of this situation by checking the entry in the uploadinfo table.

Issue #5106
2017-12-14 11:56:12 +01:00
Olivier GoffartandOlivier Goffart 4369853ddb TestSystem: Add QIODevice in the serverOverride function, and add a DelayedReply
Preparing to add test that needs the QIODevice.
Also make the DelayedReply so we can generalize the existing delay on FakeChunkMoveReply
to any reply.
2017-12-14 11:56:12 +01:00
Olivier Goffart 58e8a25869 Enable deprecated warnings 2017-12-08 16:16:06 +01:00
Olivier Goffart d517d92f6c FolderWizard: don't use deprecated API 2017-12-08 16:16:06 +01:00
Olivier Goffart 71dcf7fc37 SSLButton: Removes some call to deprecated functions 2017-12-08 16:16:02 +01:00
Olivier Goffart 0a59faf03d OcsJob: Use QUrlQuery
Qurl::setEncodedQueryItems is deprecated.
2017-12-08 16:15:48 +01:00
Olivier Goffart 7bd48b1327 cmd: remove usage of deprecated qInstallMsgHandler 2017-12-08 16:15:48 +01:00
Olivier Goffart 8c652e061d Remove uses of deprecated QString::fromAscii 2017-12-08 16:15:48 +01:00
Olivier Goffart a4816d6a8c Updater: use QUrlQuery
QUrl::addQueryItem is deprecated
2017-12-08 16:15:47 +01:00
Olivier Goffart 1a503d54f6 Remove usage of deprecated qSort 2017-12-08 16:15:47 +01:00
Olivier Goffart 263668b1cb Remove use of deprecated translate call 2017-12-08 16:15:38 +01:00
Olivier Goffart 3df65460f5 Remove usage of QString::null
Replaces by "QString()"
2017-12-08 16:15:22 +01:00
Olivier Goffart 74672d493d Utility: use QUrlQuery
For QUrl::setQuery is deprecated in Qt5
2017-12-08 16:15:17 +01:00
Olivier Goffart f1b7d506ae csync_exclude: fix compilation of non-test builds 2017-12-08 09:43:26 +01:00
Olivier Goffart 4581d708ff Account: remove dependency with ConfigFile
Part of #6213
2017-12-07 17:39:16 +01:00
Olivier Goffart e0a14cac5b ConfigFile: use QStandardPaths::AppConfigLocation for the config file
Also use appName instead of appNameGui in order to compute the path

Issue: #2245

The reason is to respect the XDG spec on Unix (#1601) and might help
on windows roaming profiles (#684)
2017-12-07 17:39:16 +01:00
Olivier Goffart ac844a2a45 AbstractNetworkJob: move the httpTimeout from the propagator to the network job
Remove one dependency from the config file for the sync engine.
Part of issue #6213
2017-12-07 17:39:16 +01:00
Olivier Goffart 7230fa6b4f SyncOptions: move to its own file
It does not really belong in the discoveryphase.h as it is used also for
propagator option.

Also use C++11 style member initializer
2017-12-07 17:35:38 +01:00
Olivier Goffart e25af4f0dc csync_exclude: Fix compile
csync_exclude.cpp:428:17: error: assigning to 'char *' from incompatible type 'const char *'
        bname = path;
                ^~~~

The C library's strrchr always return 'char*'
Only the C++'s std::strrchr has two overloads
2017-12-07 17:34:14 +01:00
Olivier Goffart dd91f4a86e Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/csync/csync.cpp
2017-12-07 09:37:50 +01:00
Olivier GoffartandOlivier Goffart 3485109125 Jenkinsfile: Fix compilation
Add a CMAKE_PREFIX_PATH so it finds the right QtKeychain
2017-12-07 09:35:04 +01:00
Olivier Goffart ed5385faa3 Merge remote-tracking branch 'origin/2.4'
Conflicts:
	src/libsync/connectionvalidator.cpp
     	src/libsync/networkjobs.cpp
2017-12-05 15:58:13 +01:00
Olivier GoffartandOlivier Goffart ee98daf9ea Shibboleth: Upgrade to OAuth2 When the server supports it
If the server support both Shibboleth and OAuth2, upgrades to OAuth2

Issue #6198
2017-12-04 08:09:34 +01:00
Olivier Goffart e0954b0999 test/syncenginetestutils.h: Don't use toTimeZone only to get the UTC 2017-12-01 13:18:09 +01:00
Olivier GoffartandMarkus Goetz 30e3932af8 FolderWizard: Fix minimum size
There are several bugs in QWizard that needs to be worked around for the minimum
size of the widget to take effect.

Issue #4280
2017-11-29 08:03:06 +01:00
Olivier GoffartandMarkus Goetz b8444053b8 AccountSettings: Fix the size of the "Add Sync Folder Connection" button
The problem here is that the QPainter is created on the viewport with is a
QWidget, but QAbstractItemView can have a different font, and the
QStyleOptionViewItem::font is this font. QStyleOptionViewItem::font
was used to compute the sizeHint, and the default font from the QPainter
was used to draw the text, so they could be not in sync.

Fix it by always using the font for QPushButton

Reported in
https://github.com/owncloud/client/issues/6156#issuecomment-346576328
2017-11-25 16:07:06 +01:00
Olivier GoffartandMarkus Goetz 753d7addb4 libsync: Fix compilation with TOKEN_AUTH_ONLY
This means we cannot use QtGui in libsync.
So this mostly disable the avatar from the account and the avatarjob

Note that there is one logic change: in ConnectionValidator::slotUserFetched
we do the avatar job even if the user is empty. Otherwise we would end up in
a invalid state. This restore the 2.3.x behavior that was broken in
commit e05d6bfcdc
2017-11-25 12:57:16 +01:00
Olivier GoffartandOlivier Goffart 72809ef5b1 csync_update: ignore remote files that cannot be encoded
This is mainly for linux, whose local is not UTF-8.
For example, in latin1, it is not possible to encode emoji or chinese character.
If there are such character in the filename, Qt would just save the file using
the replacement character ('?'). Then, on the next sync, client would rename
the files using this replacement character.

Avoid this by ignoring the files which cannot be downloaded because the
filename cannot be represented with the user's locale

Relates to issue #5676 and #5719
2017-11-23 12:51:28 +01:00
Olivier GoffartandOlivier Goffart 96dede4e84 TestChunkingNG: Test that resuming does not send past data. 2017-11-21 11:19:14 +01:00
Olivier GoffartandMarkus Goetz e7a91a1169 AccountSettings: Use the proper position to show the menu over sub-folder
The menu can be open with the keyboard shortcut.

(Fixup for the fix of #5596)

Also use popup instead of exec to show the menu: it's safer as it does
not re-enter the event loop.
2017-11-20 15:22:45 +01:00
Olivier GoffartandOlivier Goffart 480932a58a Checksum: Ignore unkown OC-Checksum header when downloading...
And if there are several checksums, pick the "best" one.

The case of several checksum was reported in
https://github.com/nextcloud/client_theming/issues/213
2017-11-20 10:51:15 +01:00
Olivier Goffartandckamm 2192386d86 test/testsyncengine: test for PR #6168 2017-11-16 13:31:54 +01:00
Olivier GoffartandOlivier Goffart 9a1ea67a35 Theme: Update the wizard size on high dpi screen
Issue #6156
2017-11-15 10:46:08 +01:00
Olivier GoffartandOlivier Goffart c36043a175 ShareDialog: trigger a sync for folder affected by a change of sharing
This allow the sync engine to query the new metadata and update the
overlay icons.

Note: we also need to invalidate the etags because the server does not
change the etag of parent directories that see their share-types changed.

Issue #6098
2017-10-24 15:50:14 +02:00