Commit graph

698 commits

Author SHA1 Message Date
Claudio Cambra
a046eca3c3
Use safer separator for account details socket message
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:15 +08:00
Claudio Cambra
f01b6a545f
Fix path handling for file provider database setup
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:15 +08:00
Claudio Cambra
e7e985f355
Correctly register object schemas in Realm database
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:15 +08:00
Claudio Cambra
1cb7da9bac
Send account details over socket and simplify NextcloudAccount members, turn all to Strings
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:15 +08:00
Claudio Cambra
81b5c33571
Complete item method of FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:15 +08:00
Claudio Cambra
d801bfc8f5
Complete basic barebones enumeration
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:15 +08:00
Claudio Cambra
5f0a4883fc
Use NSLog instead of print in FileProvider
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
176303dcf1
Use more modern Realm @Persisted
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
d0ac36faab
Make record updating methods safer by checking for existing metadatas internally
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
57d585201e
Add method to get directory tables from database in manager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
7ff2379e3d
Make sure to create copies of Realm objects to prevent issues with live-fire objects
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
496b94a9a7
Add comparison helper to NextcloudDirectoryMetadataTable
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
c4014e8b6a
Add parent directory server url data to directory table
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
d9e368cbe7
Refactor updateDirectoryMetadatas in the database manager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:14 +08:00
Claudio Cambra
3354f3e4de
Add updateDirectoryMetadatasFromItemMetadatas to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
316ef61d83
Split off update and creation process of updateItemMetadatas of NextcloudFilesDatabaseManager to private method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
4d2da1037d
Split off deletion process of updateItemMetadatas of NextcloudFilesDatabaseManager to private method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
39f4b7a8e4
Add updateItemMetadatas method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
e929940b47
Add convenience isInSameRemoteState method for NextcloudItemMetadataTable
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
f2970e2da7
Add itemMetadatas method to NextcloudFilesDatabaseManager with status as parameter
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
06a5e4df85
Add NKFile to NextcloudItemMetadataTable converter methods to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
55f533dc3d
Add clarifying comments to NextcloudFilesDatabaseTables
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:13 +08:00
Claudio Cambra
f466fd6652
Add itemMetadatas method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
df53aa2492
Add directoryMetadata method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
9e2c8f355d
Add ncKitAccount property to NextcloudAccount
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
2b5425390d
Add completeObserver method to FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
7d1b275d50
Fill out FileProviderItem
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
0e3d565151
Add localFileMetadataFromOcId method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
63bcd02512
Add NextcloudLocalFileMetadataTable derived from iOS app
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
f15187c8b4
Rename NextcloudFileMetadataTable to NextcloudItemMetadataTable to more accurately match functionality
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:12 +08:00
Claudio Cambra
9ff66bb94f
Add isFileSynced helper func to FileProviderFilesUtils
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
5f9f0311d1
Add transfer status enum to NextcloudFileMetadataTable
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
1a27f3c249
Add convenience parentItemIdentifierFromMetadata convenience function to NextcloudFileProviderFilesUtils
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
d7b9d7f215
Add convenience createFileOrDirectoryLocally func to NextcloudFileProviderFilesUtils
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
08436a129e
Added convenience functions to create paths for NC files (and create directories and placeholder files if inexistent)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
83230baeaa
Use pathForFileProviderExtData in NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
730c30f324
Add pathForFileProviderExtData convenience method to NextcloudFileProviderFilesUtils
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
487b47fbf7
Use pathForAppGroupContainer func in FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
583b91c986
Add NextcloudFileProviderFilesUtils for file-related utility funcs
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:11 +08:00
Claudio Cambra
4b48f0c429
Use server dav files URL in enumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
9f6c2df4e3
Complete FileProviderEnumerator init, get correct serverUrl for enumerator item identifier
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
fa7e441d81
Add directoryMetadataForFile method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
3122dba6f9
Refactor NextclouDFilesDatabaseManager methods slightly for consision
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
18119b32bf
Add database table for directory from iOS NC
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
1ffc5949aa
Add getFileMetadataFromFileProviderItemIdentifier method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
8e90f66918
Add getFileMetadataFromOcId method to NextcloudFilesDatabaseManager
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
5337d5d654
Add basic NextcloudFilesDatabaseManager for FileProvider files
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
41fe92ebd2
Add NextcloudFilesDatabaseTables for FileProvider files database
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:10 +08:00
Claudio Cambra
9095df2482
Make ncAccount in FileProviderExtension an optional, make state of FileProviderDomainAccountData immediately on init
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
a8dfafabde
Make localSocketClient of FileProviderExtension a lazy var
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
e319516b89
Add URLSession to FileProviderExtension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
4efb234f68
macosx: Add NextcloudKit and Realm dependencies
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
9b54e6414f
Grab account keychain entry identifier data from socket in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
f795666d4b
Add FileProviderDomainNextcloudAccountData that grabs account info from keychain
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
39850ab145
Move FinderSync-specific GET_STRINGS initial call out of LocalSocketClient and into FinderSync
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
cf606f19a6
Add ability for FileProvider app extension to reply to file provider domain identifier request
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:09 +08:00
Claudio Cambra
ad665ff06c
Add sendMessage method to LocalSocketClient public API
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:08 +08:00
Claudio Cambra
8ea09cb9d7
Clean up public API of LocalSocketClient
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:08 +08:00
Claudio Cambra
ada4b98a93
Added working socket connection between desktop client local socket server and app extension socket client
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:08 +08:00
Claudio Cambra
f20b11745d
Modify FinderSyncExt to move components into shared Framework that can be used in FileProviderExt
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:08 +08:00
Claudio Cambra
16394d13d2
Clean up LocalSocketClient code in shell extension
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:08 +08:00
Claudio Cambra
a7ec2c325e
Rename OwnCloudFinderSync Xcode projext to NextcloudIntegration
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:07 +08:00
Claudio Cambra
ed85334b62
Fix faulty quoting in shell integration CMakeLists
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:06 +08:00
Claudio Cambra
d10b208655
Set connection status for file provider domains
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:06 +08:00
Claudio Cambra
dcd1628ce8
Ensure file provider domains appear in finder sidebar
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:06 +08:00
Claudio Cambra
9a86bb2be3
Add file provider init code
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-05-12 13:21:06 +08:00
Matthieu Gallien
01ecb639ab use new connect syntax
mainly done using clazy and old-style-connect check

close #5426

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-02-28 09:36:27 +01:00
Matthieu Gallien
c0549c5c03
fix issues reported by compiling windows code with clang-tidy
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-02-22 16:50:20 +01:00
Claudio Cambra
706b1bd3a1
Update Windows shell integration rc copyright strings
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-01-23 15:37:56 +01:00
Claudio Cambra
f7239ebdca Don't bother doing init procedure on FinderSync in macosx shell integration of invalid self
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-01-06 16:24:35 +01:00
Claudio Cambra
521a026e03 Correctly init LineProcessor in macosx shell integration
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-01-06 16:24:35 +01:00
alex-z
7f6c2f946b Move Windows shell extension DLLs to a root installation directory.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-12-29 17:59:21 +01:00
Claudio Cambra
5892075df7 Avoid the Get-Task-Allow Entitlement (macOS Notarization)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2022-12-13 21:31:56 +01:00
Claudio Cambra
19a2f8cc7d Add support for macOS to flake
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-12-13 16:42:35 +01:00
Claudio Cambra
46381f5ddc Update macOS shell integration deployment targets
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2022-11-29 11:35:35 +01:00
Marvin Schmidt
7f72678d32 cmake: Use FindPkgConfig's pkg_get_variable instead of custom macro
Commit b34a901838 ("Use FindPkgConfig to find libcloudproviders and
related libs") introduced the usage of cmake's FindPkgConfig module
which provides `pkg_get_variable` since version 3.4 that can be used
instead of the custom `PKGCONFIG_GETVAR` macro

Signed-off-by: Marvin Schmidt <marv@exherbo.org>
2022-11-24 12:04:54 +01:00
István Váradi
2002c98b68 Modernize the Dolphin action plugin
Instead of installing a .desktop file, it is now converted
to JSON and compiled into the plugin itself. The plugin is
also installed into a different directory.

Signed-off-by: István Váradi <ivaradi@varadiistvan.hu>
2022-11-23 13:35:49 +01:00
Nathan Pratta Teodosio
2ba08206af Fix compatibility with newer python3-nautilus
Signed-off-by: Nathan Pratta Teodosio <nathan.teodosio@canonical.com>
2022-10-29 14:37:41 +02:00
Matthieu Gallien
565a5f0999 add [[nodiscard]] attribute via clang-tidy
ran
run-clang-tidy-14.py -header-filter='.*' -checks='-*,modernize-use-nodiscard' -fix
under linux with most part of our code covered

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-10-04 11:14:45 +02:00
Claudio Cambra
a74f9b367d Ensure the dispatch source only gets deallocated after the dispatch_source_cancel is done
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-01 13:15:40 +02:00
Claudio Cambra
1f04073e7c Fix possible overflow on lineWritten
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-05-19 12:40:59 +02:00
Claudio Cambra
683e7794a3 Fix crashing of finder sync extension caused by dispatch_source_cancel of nullptr
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-05-16 12:48:23 +02: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
Matthieu Gallien
75bcc9a24e require cmake 3.16
close #3572

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-09 13:07:48 +00: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
Felix Weilbach
ec64246dc7 Only build app bundle if requested
For development a app bundle is not needed. The app bundle is only
needed for distribution and macdeployqt takes a lot of time.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-11-23 11:41:29 +00:00
Felix Weilbach
113ba716e6 Compile finder extensions for arm and x86
Fix: https://github.com/nextcloud/desktop/issues/3967

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-11-16 08:54:48 +00:00
Matthieu Gallien
f8a8e3f2f9 target names are not changed in branded builds only the output filenames
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-10-15 15:22:29 +02:00
Mathias Eggert
51cfe76d65 add ContextMenuOptIn to COM registration, to allow Placeholder support. Issue #3584
Signed-off-by: Mathias Eggert <mathias.eggert@nexenio.com>
2021-09-28 11:20:30 +02:00
Dmytro Korchynskyi
8351c398bc Fixed warnings in RemotePathChecker on Windows
Signed-off-by: Dmytro Korchynskyi <kdl.dima@gmail.com>
2021-09-13 13:05:41 +03:00
Nicolas Fella
18ddb9df4a Use CMAKE_INSTALL_DATADIR instead of custom DATADIR
CMake provides what we wan out of the box

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2021-09-01 11:43:03 +00:00
Matthieu Gallien
d17d831205 switch from Q_DECL_OVERRIDE to plain override
our requirements guarantee availability of override keyword so we just
use it

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-08-31 08:35:57 +00:00
Felix Weilbach
332a48e6a1 Update to Qt 5.15
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-08-19 14:01:46 +02:00
allexzander
871210326f Windows. Nextcloud Overlay Identifiers. Set 16 spaces before each identifier's name.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-07-14 16:15:02 +03:00
Hannah von Reth
bff386e5c1 Fix int uint warning
Signed-off-by: Matthieu Gallien <matthieu_gallien@yahoo.fr>
2021-05-06 07:35:59 +00:00
Nicolas Fella
b8879dbf07 Only include libcloudproviders dir when cloudproviders is found
Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2021-04-13 11:29:29 +00:00
Nicolas Fella
df3ebb11f6 [shellintegration] Simplify cmake code
We don't need ECM to check for KIO

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2021-04-13 11:22:19 +00:00
Nicolas Fella
e207cfdbfc [dolphin] Clean up CMake code
Remove some stuff that is not needed.

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2021-04-12 13:27:46 +00:00
Hannah von Reth
58bc9e837c
Remove junk files 2020-12-15 10:59:26 +01:00
Christian Kamm
2b20985875
winvfs: initial work
Done by ckamm and dschmidt
2020-12-15 10:58:21 +01:00
Olivier Goffart
919debccfc
nautilus shell integration: Fix when there are several branded client installed
It appears that several extension can be loaded at the same time, but their
classname for the extension need to be different, otherwise only the last
loaded one would be active.

Issue #6524
2020-12-15 10:57:55 +01:00
Michael Schuster
61dc4b9137
Update comments
Everyone uses their private mail, so ensure people can get in touch.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-10-15 02:18:52 +02:00
Michael Schuster
fc365df5de
Windows MSI: Let CMake install Shell Extensions WiX fragment to "msi/"
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-09-21 16:40:19 +02:00
Michael Schuster
4df8db4ff6
Fix spacing
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster
db05f65e0d
Windows shell extensions: Add WiX (MSI) fragment
Use CMake to generate a WXI fragment to handle the DLL registration and file deployment for the shellext components.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster
11632da7ea
Windows shell extensions: Change NCUtil Pipe name from ownCloud to APPLICATION_EXECUTABLE
Avoid interference with foreign pipes as this is always a bad idea ;p

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster
0ba5df597f
Windows shell extensions: Rename all files and classes from OC* to NC*, update version info
This also ensures a clear separation in the system registry.

SelfReg is not recommended by Microsoft and will be handled by the MSI package to allow proper Repair and Uninstall.
However, we keep it for backward compatibility with the NSIS installer.

For details see:
https://stackoverflow.com/questions/364187/how-do-you-register-a-win32-com-dll-file-in-wix-3#364210
https://docs.microsoft.com/en-us/windows/win32/msi/selfreg-table#remarks

Another fix by this commit:
The "Version" registry value in the NCOverlays self reg should be a key and not a value.

Details: https://wixtoolset.org/documentation/manual/v3/xsd/wix/class.html

Example:

  [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]
  @="1.0.0.0"

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Michael Schuster
8ce13b7bdb
Windows shell extensions: Use custom GUIDs via CMake and prepare MSI reg
Previously side by side installation with ownCloud or other NC custom builds would break the shell integration because the same GUIDs and registry keys were used.

Now we specify our custom GUIDs in NEXTCLOUD.cmake and use CMake to generate a header file and WiX (MSI) include file with these constants.

Note: Using generators like "guidgen" or "uuidgen" ensures that GUIDs are unique, as manual changes are not guaranteed to be.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Hannah von Reth
4675869fb3
Remove dead code
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Hannah von Reth
bfd7707ff4
2.7 has less automatic includes on Windows
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Hannah von Reth
34e9e2f288
Cleanup Windows shell extensions
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Hannah von Reth
6c9a31f6ee
Remove outdated visual studio projects, we now use cmake
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Dominik Schmidt
13d4b91935
Avoid warning because /MT overrides /MD flag
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Dominik Schmidt
e4b53b12e1
Make OCUtil helper lib static and link it statically against crt
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Olivier Goffart
906556640d
Windows Shell Integration: Don't limit the size of the buffer
Otherwise we can't have operation that has many many filename

As reported in #6780

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Christian Kamm
77cc262337
Windows shellext: Update copyrights and company name
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Olivier Goffart
6274462036
windows shell extension: add OCUtil/resource.h
It's a copy from OCContextMenu/resources.h

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Christian Kamm
c6fc46aa09
Windows shellext: Add rc for OCUtil #6554
To set the dll's metadata.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-08-20 18:50:05 +02:00
Kevin Ottens
d58ec4bf70
Enable the modernize-use-using check on clang-tidy
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-12 18:18:57 +02:00
Kevin Ottens
c50a968a1e
Add more raw string literals missed previously
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-12 09:48:29 +02:00
Michael Schuster
456c1eadbe
Simplify nullptr comparisons where appropriate
Make the codebase consistent, we already have a lot of implicit pointer comparisons.

Exception: Stay explicit on return's, example:
  return _db != nullptr;

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-11 00:27:30 +02:00
Michael Schuster
2b680cadd3 Fix nullptr regression in RegistryUtil::ReadRegistry
Merging PR #2057 caused the Windows build to fail:

shell_integration\windows\OCUtil\RegistryUtil.cpp(43): error C2664: 'LSTATUS RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY)': cannot convert argument 3 from 'nullptr' to 'DWORD'

The previous implementation prior the PR supplied NULL as the argument 3 to RegOpenKeyEx,
so it was silently accepted and translated to zero, satisfying the DWORD's type requirement.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-09 18:34:43 +02:00
Stephan Beyer
ea16804751 Replace NULL by nullptr in all C++ files
We keep NULL in the pure C files in src/csync/std and test/csync.

We also replace Doxygen documentation referring to "NULL" to
"\c nullptr" (formatted as code).

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-06-08 20:07:50 +02:00
Kevin Ottens
3867e73fd5 Stop supporting Qt older than 5.12
This both removes older Qt from the CI and also adjust all the
find_package calls in CMakeLists.txt

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-05-14 21:15:45 +02:00
Kevin Ottens
bfdb1e730a Fix leak in FileUtil::IsChildFile
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-05-12 14:32:34 +02:00
Daniel Vedder
0d71d03d7b Fixed symlink resolution for menu items.
Signed-off-by: Daniel Vedder <d.vedder@web.de>
2020-05-02 17:03:21 +02:00
Daniel Vedder
0743a0b502 Resolve symlinks when checking for registered paths.
Fixes issue #1948: https://github.com/nextcloud/desktop/issues/1948
The client already resolves symlinks when adding new paths to the
sync-list, but the Nautilus plugin did not do this yet, causing it
to not recognise synced folders if they were accessed via a symlink.

Signed-off-by: Daniel Vedder <d.vedder@web.de>
2020-05-02 14:48:51 +02:00
Dominique Fuchs
3626715394
Merge pull request #1884 from nicolasfella/menuaction
[dolphin] Use menuAction() instead of manual creation
2020-04-25 14:57:32 +02:00
Dominique Fuchs
c77bf6c634
Merge pull request #1919 from taaem/fix-dbus-activation
CloudProviders: Use absolute path in dbus file
2020-04-25 13:43:42 +02:00
Dominique Fuchs
061ca2d713
Merge branch 'master' into menuaction 2020-04-25 13:18:10 +02:00
Dominique Fuchs
79eface432
Merge pull request #1887 from nicolasfella/colon
[dolphin] Fix overlays when filename has a colon
2020-04-25 12:17:29 +02:00
Nicolas Fella
d077c7884e Fix build of Dolphin integration
config.h needs to be included in the header already since we use APPLICATION_ICON_NAME there. This got introduced in 6fc877577c

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-04-17 12:48:10 +02:00
Michael Schuster
6fc877577c
[dolphin] Use CMake env vars for App Name and Icon strings
Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-04-16 03:47:24 +02:00
Tim Klocke
8b4abddb71 CloudProviders: Use absolute path in dbus file 2020-04-10 23:09:05 +02:00
Nicolas Fella
20b7e938c5 [dolphin] Fix overlays when filename has a colon
When the filename contains a ':' it gets split too much and tokens[2] does not contain the full filename any more. Read the name from the original line instead.

Fixes #686

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-03-21 15:38:27 +01:00
Nicolas Fella
a482e3c834 [dolphin] Don't manually create menuAction
Use menuAction() from QMenu

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-03-21 02:09:48 +01:00
Nicolas Fella
e1f4d17446 [dolphin] Add icon to context menu
Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-03-21 02:04:42 +01:00
cclauss
b34ed01109 Use print() function in both Python 2 and Python 3
Signed-off-by: cclauss <cclauss@me.com>
2020-03-05 11:35:30 +01:00
Christian Kamm
a704cca090 Windows: Fix context menu handling only own verbs #7004
Previously it'd handle all verbs as if they were our own.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-03-03 18:56:09 +01:00
Corentin Noël
842f71891e Start the client in background if activated by D-Bus
The nextcloud client can be started by any other application consuming libcloudproviers.
Make sure that the client won't pop-up if we open the file manager.

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
2020-02-01 16:04:02 +01:00
Joas Schilling
9ce2491d67 Use … instead of 3 dots
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-12-03 09:06:06 +01:00
Michael Schuster
7fb0a82e69
macOS build: Avoid the Get-Task-Allow Entitlement (Notarization)
Setting CODE_SIGN_INJECT_BASE_ENTITLEMENTS to NO is required for macOS
Notarization.

See: https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/resolving_common_notarization_issues

And upstream: 97f4af32ae

Signed-off-by: Michael Schuster <michael@schuster.ms>
2019-11-17 21:33:04 +01:00
Dominique Fuchs
9a256fcbfe usage of UINT as iterator here because comparing with UINT retval from DragQueryFile
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2019-09-07 21:42:10 +02:00
Dominique Fuchs
112d2bfe11 Removed redundant (and wrong in terms of it's value) definitions for WINVER/_WIN32_WINNT
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2019-09-07 21:28:12 +02:00
Dominique Fuchs
69a11a7ec1 Removed redundant (and wrong in terms of it's value) definitions for WINVER/_WIN32_WINNT
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2019-09-07 21:26:40 +02:00
Dominique Fuchs
3960ffea3f Removed redundant (and wrong in terms of it's value) definitions for WINVER/_WIN32_WINNT
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2019-09-07 20:58:20 +02:00
Corentin Noël
19079c65c1 libcloudproviders: Add missing check for Qt5DBus 2019-04-04 17:50:30 +02:00
Chih-Hsuan Yen
1361c3053a
Fix KDEInstallDirs deprecation warnings
Get rid of a bunch of such warnings from configuring the Dolphin plugin:

CMake Deprecation Warning at /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:345 (message):
  BIN_INSTALL_DIR is deprecated, use KDE_INSTALL_BINDIR instead.
Call Stack (most recent call first):
  /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:433 (_define_relative)
  shell_integration/dolphin/CMakeLists.txt:23 (include)

Modified from https://github.com/owncloud/client/pull/6922

Original author: Dominik Schmidt <dev@dominik-schmidt.de>
2018-12-28 21:55:45 +08:00
Jan-Christoph Borchardt
7d8bba6786
Fix appname for Nautilus integration script
Signed-off-by: Jan-Christoph Borchardt <hey@jancborchardt.net>
2018-11-28 11:54:08 +01:00
Christian Kamm
f4dfdf5889
nautilus: Fix GET_MENU_ITEMS with utf8 filenames #6643 2018-09-10 21:06:57 +02:00
István Váradi
56ea525499 Use encode()/decode() with Python 3 only 2018-09-10 15:05:46 +02:00
Olivier Goffart
0d0bff4bf5
Windows Shell extention: Fix clicking on the menu entries
Issue #6553
2018-06-21 19:21:07 +02:00
Markus Goetz
d3cbe63801
macOS: Implement new dynamic Finder menu items #6328 2018-06-05 20:40:40 +02:00
Julius Härtl
4be565c56f
Merge pull request #369 from nextcloud/upstream/issue/6406
Nautilus shell integration: Print python version on startup #6406
2018-06-01 15:40:23 +02:00
Olivier Goffart
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
Christian Kamm
70f0792d4a
Nautilus shell integration: Print python version on startup #6406 2018-06-01 13:02:13 +02:00
Roeland Jago Douma
1b756ac80f
Merge pull request #318 from nextcloud/upstream/pr/6402
Dolphin plugin: fall back if $XDG_RUNTIME_DIR is empty
2018-05-26 21:33:45 +02:00
Christian Kamm
629b14266b
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-05-17 20:52:40 +02:00
whitequark
6dd5876b8a
Dolphin plugin: fall back if $XDG_RUNTIME_DIR is empty
As per XDG Base Directories specification:
> If $XDG_RUNTIME_DIR is not set applications should fall back
> to a replacement directory [...]

In practice, the ownCloud client has the fallback, but the plugin
helper does not, and if $XDG_RUNTIME_DIR is not set, the plugin
mysteriously does not work.
2018-05-16 20:05:46 +02:00
István Váradi
22153cf912 KDE_INSTALL_USE_QT_SYS_PATHS turned on so that the plugin is installed to the correct directory on Xenial too 2018-02-08 17:18:18 +01:00
Julius Härtl
bcb9553925
Use Qt5DBus_FOUND instead of the old WITH_DBUS
WITH_DBUS was removed in 257d8142b1

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-01-25 14:18:03 +01:00
Roeland Jago Douma
48bce4c6b0
Merge remote-tracking branch 'oc/master' into oc_up 2018-01-25 11:17:04 +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 Goffart
883080b557 Windows shell extension: port to the new protocol 2018-01-23 14:02:56 +01:00
Christian Kamm
ebfac84c69 Shell integration: Make nautilus work with multiselections
Previously no menu would ever be shown if more than one file is
selected. Now the GET_MENU_ITEMS command is sent with all selected files
as an argument - similar to what is done for the dolphin integration.
2018-01-23 14:02:56 +01:00
Christian Kamm
3c2622d2de Shell integration: Update nautilus for GET_MENU_ITEMS 2018-01-23 14:02:56 +01:00
Olivier Goffart
982c591ec9 SocketApi: add a way to disable menu entries 2018-01-23 14:02:56 +01:00
Olivier 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
Christian Kamm
72363155d8 Nautilus integration: Work with python2 and python3 2018-01-23 12:30:58 +01:00
Olivier Goffart
f254ee3211 Nautilus shell integration: Port to Python 3 2018-01-23 12:30:58 +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
Dominik Schmidt
fc62e9e9d9 Fix .def and .rc files not being compiled into windows shell extensions 2018-01-13 21:01:09 +01:00
Dominik Schmidt
15967b1219 Install all dlls to BINDIR so craft does not ignore them 2018-01-13 13:58:17 +01:00
Dominik Schmidt
81c20352e1 Use new ECMAddAppIcon macro for application icons.
cmake/modules/ECMAddAppIcon.cmake is heavily patched to support sidebar icons, OUTFILE_BASE parameter and to not include 64 and 64@2x icons on macOS which are not supported. All changes are made in a way that we can upstream this.
2018-01-13 13:58:17 +01:00
Dominik Schmidt
4e52ee9ebd Build Explorer extension if building with MSVC 2018-01-13 13:58:17 +01:00
Olivier Goffart
1c721e9422 shell_integration/dolphin: Silence some warnings 2018-01-13 13:58:17 +01:00
Julius Härtl
1cedb1919f
Integrate libcloudproviders support
This commit integrates support for libcloudproviders
desktop integration API. If build with the library it
will check on startup if the DBus interface is available
and then use it instead of the legacy status icon.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-12-14 11:19:25 +01:00
Martin
cd2057fc04 Update Overlay Icon naming 2017-12-12 10:18:00 +01:00
Christian Kamm
ca4ad58a06 Packaging: Add options for fine-grained builds #5957
Extracted and adjusted from packaging.diff by @jnweiger and @dschmidt
2017-09-27 09:13:44 +02:00
Jürgen Weigert
839361594d fix branded nemo and caja shell integration (#5966)
* Update createcajaplugin.sh

* first apply branding, then create copies. Better.
Fixes https://github.com/owncloud/ownbrander/issues/753

* fix https://github.com/owncloud/ownbrander/issues/752 too.
2017-08-31 13:16:34 +02:00
Jocelyn Turcotte
af4f1083b7 shell/windows Build 46: Private links context menu 2017-07-07 18:10:48 +02:00
Christian Kamm
ca2ffd4fb3 SocketAPI: Change strings to a consistent _MENU_TITLE postfix 2017-07-07 10:49:51 +02:00
Jocelyn Turcotte
3b20684dc7 shell/macos: Remove legacy (< 10.10) overlay icons
Having to update the plugins to add a submenu in the context menu,
it's more cost-effective to remove support for legacy macOS versions
than implementing and testing this setup.
2017-07-07 10:49:51 +02:00
Jocelyn Turcotte
b6db9789ee shell/macos: Use a submenu to include private link actions 2017-07-07 10:49:51 +02:00
Jocelyn Turcotte
7a4daf799a shell/windows: Use a submenu to include private link actions
Refactor things a bit to be able to reuse some code and
clean things up.
2017-07-07 10:49:51 +02:00
Christian Kamm
0238a29c7c Introduce private link sharing #5023
* SocketAPI has COPL_LOCAL_LINK / EMAIL_LOCAL_LINK commands
* The nautilus and dolphing shell integrations show a submenu from which
  one can share as well as access the private link.
* The SocketAPI provides a new GET_STRINGS command to access localized
  strings.
* The private link can also be accessed from the user/group sharing
  dialog.
* The numeric file id is extracted from the full id to create the
  private link url.
2017-07-07 10:49:51 +02:00
Jocelyn Turcotte
9daef50ce6 shell/Windows: Update binaries to build 45 2017-06-14 14:17:50 +02:00
Frederik Juul Christiani
fae178f70b shell_integration/windows: Create _newQueries as a non-signaled auto-reset event.
Since ResetEvent() is never called, the call to WaitForMultipleObjects()
can always return immediately once the event has been signaled.
2017-06-14 12:14:22 +02:00
Frederik Juul Christiani
744208f701 Initialize stop variable.
Avoid stopping the worker thread immediately if the stop variable happens to be true.
2017-06-14 12:14:21 +02:00
Christian Kamm
cdf16dd905 Remove unreachable code #5582 2017-03-07 13:23:47 +01:00
Jocelyn Turcotte
166ef85a51 shell/Windows: Update binaries to build 44 2017-01-18 13:34:02 +01:00
Jocelyn Turcotte
47fbfbc006 shell/Windows: Avoid memory allocations and copies when querying icons
IsMemberOf is called for every file (in the ownCloud directory or not) and
with every instance of OCOverlay (we have 5) when displaying a list of
files in Explorer.

Refactor the code to avoid copying the list of watched directories, as
well as creating a wstring from a PWWSTR for files outside watched
directories.

Also change some calls of begin_with to use isDescendantOf since it
properly handles parent paths not ending with a backslash, which could
lead to SocketAPI queries for sibling folders with a name that starts with
a watched folder name.
2017-01-18 12:15:52 +01:00
Jocelyn Turcotte
e131c142ff shell/Windows: Fix the view not being updated on StateError
Since StateError == 0, if this was the status used when the path
isn't in the map already, the view would not be updated since the
new state would be the same as the default-constructed state in the
map. Fix by explicitly inserting in that case, this also avoid aving
to do two lookups in the map when a path already has an entry.
2017-01-18 12:15:52 +01:00
Jocelyn Turcotte
1b99ff2e91 shell/Windows: Remove the UPDATE_VIEW message handling
The client now tries to only push STATUS messages to connections
unless they previously requested it with a RETRIEVE_FILE_STATUS,
but this means that we now have to make sure that a new connection
will rerequest every icon that the user will see on files from that
point on.

To that end, we now send a SHChangeNotify for every file in the cache
when we lose the connection (or on UNREGISTER_PATH) to make sure that
what's on the screen matches what's in the cache. We also remove the
_oldCache logic that made this more difficult to enforce.

The client has been able to reliably push status updates on macOS
for a few versions now, and we don't need it on Windows either. The
_oldCache mechanism was to avoid sending to many update requests
when receiving an UPDATE_VIEW.

Also fixes #4766
2017-01-18 12:15:52 +01:00
Jocelyn Turcotte
3e85d47a57 shell/Windows: Convert tabs to space
It was a mix of both and the rest of the code uses spaces.
2017-01-18 12:15:52 +01:00
Jocelyn Turcotte
e709d75d56 shell/Windows: Remove unused files
The real OCContextMenu.cpp is in the OCContextMenu folder.
2017-01-18 12:15:52 +01:00
Jocelyn Turcotte
cb5cfb8cf6 shell/macOS: Make sure the root folder's cache is cleared on disconnect
The SocketAPI now only sends status pushes for paths requested by the
shell. We have to make sure that Finder doesn't just show the entry
from its cache after a reconnect.
2017-01-18 12:15:52 +01:00
Jocelyn Turcotte
ebd2a15711 shell/macOS: Remove backslashes from the extension display name
Tell cmake not to escape shell strings adding backslashes before
spaces by passing the VERBATIM optiton. Also add the quotes to
whole command line arguments to prevent quotes from appearing on the
XCode side, because of the VERBATIM option.

This only affects themed clients since the default theme doesn't
have space in its APPLICATION_NAME.
2017-01-18 12:15:52 +01:00
octotree
a1b4984d14 Symlink Support for Dolphin Plugins (#5428)
Add Symlink Support to Dolphin Overlay Plugin
2017-01-05 13:24:22 +01:00
Felix Tiede
d090a3330a Generate .desktop file with OEM name directly.
Instead of renaming the .desktop file at install time it is now
generated with its OEM name during configure time.
2016-11-29 18:36:26 +01:00
Felix Tiede
d04e7841e2 Fix file installation source path.
By default the file is copied from the source and not the build
directory which will fail with the configure-time built file.
2016-11-29 18:36:26 +01:00
Felix Tiede
d7a4726544 Extend OEM configurability to dolphin desktop file.
OEM configurability creates binaries with OEM names which the .desktop
file doesn't take into account and thus dolphin integration does not
work if OEM changes the binary's name(s).
These changes are now integrated into the .desktop file at compile time.
2016-11-29 18:36:26 +01:00
Olivier Goffart
899c675f0a Merge pull request #5267 from payload/fix_4608
nautilus integration: "share" extension for syncing folders
2016-11-14 12:35:18 +01:00
Gilbert Röhrbein
9c8572e335 nautilus integration: refactored _connectToSocketServer, removed superfluous check 2016-10-25 21:45:47 +02:00
Gilbert Röhrbein
e675a34fbb nautilus integration: use os.path.join, os.sep and tempfile.gettempdir instead of string concats 2016-10-25 20:15:17 +02:00
Marcus Hoffmann
fe984b61d7 Add script to create a caja plugin. (#5262)
Caja is a fork of nautilus maintained by the Mate project.
This adds a script to create a caja plugin from the nautilus plugin.
It replaces all occurences of nautilus with caja (case sensitive).
This is done in the same way the nemo plugin is generated from the nautilus one.
2016-10-24 15:36:23 +02:00
Gilbert Röhrbein
166a0f60ca nautilus integration: "share" extension for syncing folders
Issue #4608

* folder state is either OK or SYNC usually
* this extension does not know about if a folder is shareable
* a OK folder is shareable
* a SYNC folder could be uploaded or not uploaded
* this commit looks into file entries below this folder
* if one exists with state OK or SYNC
   this folder must have been uploaded
* better would be if the server (gui) tells us
   if the folder is uploaded
2016-10-22 23:26:44 +02:00
Christian Kamm
5f2b1999f6 Package: Fix nautilus plugin name collision when branded
As suggested by @olifre in #5183
2016-09-28 13:10:48 +02:00
Klaas Freitag
2d110540ee Dolphin Plugin: Use the Application name for the socket path (#5172)
do not hardcode.

This should fix #5165
2016-09-12 14:12:33 +02:00
Daniel Molkentin
b575ded464 More GmbH -> Inc Copyright header fixes 2016-07-26 16:53:11 +02:00
Jocelyn Turcotte
03a90bf03f shell/windows: Build 43, add missing 32 bit binaries
Also include a minor change from #5025
2016-07-26 14:54:27 +02:00
Jocelyn Turcotte
ff7b2381e9 shell/windows: Add missing Win32 configuration changes
The changes in build location were only done on the x64 configuration.
2016-07-26 14:53:14 +02:00
arthurchiao
7a2a439426 fix #5015 overlay icon not show: compare folder paths with no case-sensitivity 2016-07-01 13:03:42 +08:00
Jocelyn Turcotte
ba96fb89a5 shell_integration/windows: Set VS output directory in the binary submodule
This allows creating a new build simply by hitting F7 in visual studio
and then committing the changed files in the binary submodules without
having to know which files to move where.
2016-06-27 15:23:37 +02:00
Jocelyn Turcotte
70ae11fcad shell_integration/windows: Add a manually-increased build number
Since this isn't yet built together with the rest, we can't reliably
use the client version without having to rebuilt the extension manually
on each release. But it would still be nice to be able to tell if a user
has the right version or not loaded, so instead just tag each update of
the DLLs with a separate release version.

This means that every time we update those binaries we'll have to manually
increment the number in the header, but worst case we'll forget from time
to time but we'll be able to know if we didn't, and know if we can rely on
the number or not.
2016-06-27 15:13:47 +02:00
ckamm
86fd982b00 SocketAPI: Use different pipe name #4977 (#4997)
Named pipe names that contain backslashes sometimes lead to problems.
2016-06-27 15:13:08 +02:00
Daniel Molkentin
9d6701ecbe Windows Shell Integration: Fix another spot where the pipe path was constructed manually 2016-05-10 13:49:14 +02:00
Daniel Molkentin
0e9170cb36 Windows Shell Integration: Unify path lookups 2016-05-10 10:18:53 +02:00
Markus Goetz
8820bc1c17 Windows: Fix Share menu #4781 2016-05-09 14:37:46 +02:00
Olivier Goffart
3d9d106bb1 Dolphin plugin: fix build with branding
Make sure that the name of the _export.h file is the same no matter the plugin
2016-05-04 14:19:18 +02:00
Klaas Freitag
641125eac1 Fix nautilus and nemo plugin branding strings. (#4780)
* Fix nautilus and nemo plugin branding strings.

Fix for owncloud/enterprise#1314

* nautilus plugin: Add a comment why the line needs to stay unchanged.
2016-05-03 11:36:56 +02:00
Daniel Molkentin
e833d01288 Re-Apply: Disambiguate socket API pathes on Windows with user name
Addresses #3411
2016-05-02 16:09:48 +02:00
Daniel Molkentin
b43a9421d2 Revert "Disambiguate socket API pathes on Windows with user name" 2016-04-28 13:52:15 +02:00
Daniel Molkentin
ce6a365328 Disambiguate socket API pathes on Windows with user name
Addresses #3411
2016-04-26 14:49:45 +02:00
Christian Kamm
f657bd0cd9 Overlay icons: Fix invalidation with nautilus #3249
This avoids an extra socketapi call after invalidate_extension_info
is called from a STATUS message.
2016-04-26 11:49:56 +02:00
Christian Kamm
b4cf17d99d Overlay icons: Fix duplicate icons in nautilus #3249 2016-04-26 11:02:59 +02:00
Klaas Freitag
e5a5b95b9a Merge pull request #4689 from owncloud/overlays_handle_root
SyncFileStatusTracker: Add a method to handle the root folder of the sync.

Also, handle new files put in the sync in the statustracker logic.
2016-04-21 15:01:11 +02:00
Klaas Freitag
f72c7f43bf Nautilus plugin: Be more robust against new states from socketapi
Do not bail out if an unknown state comes from SocketApi
2016-04-20 17:13:06 +02:00
Klaas Freitag
add29befee Nautilus plugin: Remove the bogus logging 2016-04-20 17:12:21 +02:00
Markus Goetz
6a9655aab6 OS X: Fix overlay installation on El Capitan #4650
The sleep is somehow needed, probably for pkg to rebuild its DB?
The case fix fixes a warning but did not fix the issue itself.
2016-04-15 16:58:58 +02:00
Markus Goetz
c4577cb2a1 Merge pull request #4683 from owncloud/fix4657
OS X: Allow ampersand in APPLICATION_NAME #4657
2016-04-15 14:28:38 +02:00
Markus Goetz
d1649ce4df OS X: Allow ampersand in APPLICATION_NAME #4657 2016-04-15 11:30:49 +02:00
Klaas Freitag
4ad8e04bc3 Merge pull request #4684 from owncloud/less_socket_api_updates
Less socket api updates
2016-04-15 10:15:07 +02:00
Klaas Freitag
8eb53fa9ae nautilus integration: Handle NOP as empty. 2016-04-14 15:24:46 +02:00
Olivier Goffart
f7aafb081f Dolphin Plugin: rename the files to the branded name #4669 (#4672) 2016-04-13 15:05:04 +02:00
Daniel Molkentin
a0827c5ef2 Remove deleted icons from resource file 2016-04-06 17:59:34 +02:00
Jocelyn Turcotte
17c645ce43 Hide environment variables when running the FinderSync icns script
This otherwise shows up in the console for each incremental build.
2016-03-30 18:00:22 +02:00
Markus Goetz
dd8b0c3e4a Merge pull request #4623 from owncloud/share_menu_icon_osx
OS X: Use app icon for "Share with ..." Finder menu #4472
2016-03-30 15:53:54 +02:00
Markus Goetz
6c283c7a48 OS X: Use app icon for "Share with ..." Finder menu #4472
This works for both plain ownCloud and themed clients.
2016-03-30 15:26:43 +02:00
Jocelyn Turcotte
5989a07339 [Win-shellex] Make sure to unregister obsolete CLSIDs #4595
If the user tries to install an older version of a branded client
with shell extensions, and also install the 2.1 ownCloud client
side-by-side, both shell extensions DLLs will be registered and might
lead to both DLLs versions being loaded by exlorer, causing a system
crash.

Since we don't support both branded and non-branded shell extensions
to work at the same time, at least make sure to unregister any legacy
CLSID that could cause explorer to load the previous version DLL.
2016-03-24 16:35:38 +01:00
Daniel Molkentin
41d8d77535 Merge remote-tracking branch 'origin/2.1' 2016-02-10 12:57:03 +01:00
Klaas Freitag
ae3b9f112c Linux shell integration: Do not call sed from absolute path.
sed is in /bin/ rather than in /usr/bin on some systems, which
makes the scripts fail in the build environment. sed should be
in the PATH tough.
2016-02-09 13:01:03 +01:00
Klaas Freitag
96f50d0c47 Nautilus integration: Remove Shebang from plugin source.
This fixes #4436
2016-02-08 17:00:39 +01:00
Klaas Freitag
5ae81aa96c Nemo Shell Integration: Add missing conversion script.
This script creates the Nemo plugin out of the Nautilus plugin.
Both are source compatible, but need to include the right modules
depending on the name of the file manager.

The script is called by cmake.
2016-01-28 11:44:13 +01:00
Jocelyn Turcotte
439eddb523 OS X shell: Don't allow sharing sync roots #3505 2016-01-14 16:25:19 +01:00
Jocelyn Turcotte
7beb6f2234 Windows shell: Remove unneeded Winsock code #4356 2016-01-14 15:02:56 +01:00
Jocelyn Turcotte
bb5c370575 Windows: Update the overlay icon graphics #3105
The bug seems to be in Windows when it upscales an smaller icon for
HiDPI displays. It works fine if we provide a 256x256 size in the
ico files.

Use the new square icons also used on OS X that removes the share badge
and instead has a share icon only for the OK state. This means that we
can also remove 3 icons and release 3 slots in the registry for
overlay icons (only the first few are actually loaded by explorer).

This also adds a script that uses ImageMagick to convert our SVG icons
to Windows ico files. Since ImageMagick seems to have issue doing
proper antialiasing with pixels on the edge of icons, this also
slightly scale the icons to leave 2px on each edge, out of its
logical 128px width.
2016-01-12 11:46:05 +01:00
Grigorii Horos
69d9840b89 Dolphin integration: use system icons for labels in KDE
Cherry-picked from https://github.com/owncloud/client/pull/4252
2016-01-04 12:57:24 +01:00
Klaas Freitag
afa8d671be shell integration: Create a plugin for nemo out of the nautilus one. 2015-12-22 11:05:00 +01:00
Olivier Goffart
1f8af40361 Dolphin plugin: Fix compiler warnings 2015-12-02 13:14:15 +01:00
Daniel Molkentin
af0d0bd2ac CMake: Fix typo 2015-11-30 01:05:18 +01:00
Daniel Molkentin
48097467f9 CMake: fix CMake 2.6 compatibility
... by replacing CONFIG by NO_MODULE option in find package

From the manual: "The CONFIG option may be used to skip Module mode
explicitly and switch to Config mode. It is synonymous to using
NO_MODULE."
2015-11-30 01:05:12 +01:00
Klaas Freitag
29e2877d35 NautilusPlugin: Fix behaviour with files with a colon in the name. 2015-11-25 15:11:12 +01:00
Klaas Freitag
a708f8d8ad NautilusPlugin: Fix detection of the OK status
Consider OK+SHW also as ok, and enable the ownCloud actions.
2015-11-25 15:11:12 +01:00
Klaas Freitag
8777982629 NautilusPlugin: Fix detection of top level sync folder. 2015-11-25 15:11:12 +01:00
Olivier Goffart
d89cb3e575 Dolphin plugin: build by default 2015-11-21 12:17:26 +01:00
Olivier Goffart
9e1f215f22 Dolphin plugin: build with QStringBuilder 2015-11-21 12:17:26 +01:00
Lilian Besson
aa1a2d1247 Reviewing, improved style, and a initializing message
- Add an "Initializing owncloud-client-nautilus extension" message
2015-10-31 13:07:18 +01:00
Olivier Goffart
30a0423f81 Dolphin integration: fix error icons 2015-10-27 15:19:10 +01:00
Olivier Goffart
6ea05ff6e3 Dolphin shell integration: use the owncloud icons 2015-10-19 15:53:40 +02:00
Olivier Goffart
c520ee4eab Dolphin Shell Extension: renamove the kf5 in the name 2015-10-19 15:43:42 +02:00
Olivier Goffart
5408ec79f7 Dolphin shell extention: Remove the KDE4 based plugin 2015-10-19 15:42:41 +02:00
Olivier Goffart
f8e68ae823 Merge branch 'dolphin-plugin' 2015-10-19 15:41:47 +02:00
Olivier Goffart
184412d88e Dolphin shell integration: Renames the plugins
And put the helper in a shared library so it is shared accross both plugins
2015-10-19 15:40:11 +02:00
Olivier Goffart
82d1d04774 Dolphin shell integration: share code between two plugins 2015-10-19 15:40:11 +02:00
Olivier Goffart
731d4b3d4d Dolphin shell extention: adapt to the change in KDE Frameworks 2015-10-19 15:39:51 +02:00
Olivier Goffart
cac219aca8 Dolphin shell integration: Add a Share with owncloud action 2015-09-10 13:41:45 +02:00
Olivier Goffart
a159dfc7ec Dolphin shell integration: Make it work with dolphin master 2015-09-10 13:41:45 +02:00
Phil Davis
bae552f386 Minor shell integration typos
all in comments or other places that have no effect on the user.
2015-09-10 17:14:08 +05:45
Jocelyn Turcotte
5e657aadee Fix Finder crashing when showing the context menu on OS X <= 10.9
OwnCloudFinderRequestManager::_shareMenuTitle was not retained anymore
after the FinderSync refactoring which would cause it to contain any
kind of garbage value for some reason.

Fix the issue by also enabling ARC for RequestManager.m.
We can't enable ARC for the whole project since Finder.h is included
by many .m files and it's not trivial to port to ARC.
2015-09-09 17:45:24 +02:00
Individual IT Services
5414c65442 don't show share menu item for top level folders
Top level folders cannot be shared. If you try you receive an 403 error.
So we should not show the "Share with Owncloud" menu item for them
2015-08-28 16:24:52 +05:45
Individual IT Services
9a0fba5f5e checking if file or folder is to be shared to fix issue #3556 2015-08-18 11:46:29 +02:00
Individual IT Services
c6ff73f3e5 checking if file or folder is to be shared to fix issue #3556 2015-08-12 21:48:04 +05:45
Jocelyn Turcotte
dcf7e8a631 shell_i: Don't request statuses on UPDATE_VIEW
Now that the client is pushing all changes of state, we don't need
to track the requested URLs anymore and risk that the way that we
reseted that list could leave a few entries in Finder's cache outdated.

We can remove the same code from other platforms in a later release,
a bit earlier than a week before beta1.
2015-07-31 21:59:58 +02:00
Klaas Freitag
cbbc5af834 Nautilus Shell Integration: Re-Assemble the whole filename after split.
The socketapi uses the colon as delimiter, which splits files that contain
a colon. This patch re-assembles the filename again in case that happened.
2015-07-29 11:47:00 +02:00
Klaas Freitag
b012fae144 Nautilus Shell Integration: Only show menu entry for item state OK
If the file is ignored or errornous, do not add the sharing menu item to
the context menu.

This is (a partly) solution to bug ä2775
2015-07-29 11:29:10 +02:00
Markus Goetz
360a0eeee1 OS X overlays deploy.sh: Update output 2015-06-29 15:16:43 +02:00
Jocelyn Turcotte
9797782682 shell_i: Build the extension with the '-' identity by default
This allows developers to build and run the extension by default.
Official packages bundles will be re-signed after the build, we

The SocketApi prefix can be set at configure time through cmake and
should match the key that will be used to sign the whole .app bundle
(including the embedded FindexSync .appex bundle).
2015-06-22 13:55:19 +02:00
Jocelyn Turcotte
121577340a shell_i: Cleanup and build fix
Don't use absolute paths for resources
2015-06-22 13:55:19 +02:00
Jocelyn Turcotte
0320627263 shell_i: Use a more specific name for ContentManager
Since we use that class to lookup the NSBundle using bundleForClass
use a more specific name to avoid any clash with any othe liferay
extension. I couldn't figure out from the documentation if that is
only resolved using the class name, but found some warnings on
stackoverflow and better be safe than sorry for what it costs.
2015-06-19 16:50:11 +02:00
Jocelyn Turcotte
85938ab1f1 shell_i: Remove the ICON_PATH socket API message #2340
It was only used on OS X and couldn't be used by the FinderSync
extension since that one runs in a sandbox. So use the same system
to load images in the legacy extension by shipping them in the
extension bundle instead of the owncloud.app bundle.

This is also given that the legacy extension needs padded icons
while the FinderSync one needs unpadded icons.
2015-06-17 17:15:50 +02:00
Jocelyn Turcotte
e111e11dab shell_i: Add english labels 2015-06-17 14:32:34 +02:00
Jocelyn Turcotte
db38bf4a0c shell_i: Avoid always rebuilding SyncStateFinder.osax #2482
The archive buildaction causes this. Use the default build while
forcing the Release configuration instead.

In both cases the result will end up in SYMROOT.
2015-06-17 14:32:34 +02:00
Jocelyn Turcotte
52f64358c7 shell_i: Use proper non-padded icons #2340 2015-06-16 15:30:42 +02:00
Jocelyn Turcotte
02f6dbba46 shell_i: Add a FinderSync-based implementation #2340
This uses the new official API to show overlay icons and add our
custom context menu entry instead of hooking directly into the
Finder process and intercept drawind routines.

A dummy desktopclient target is also in the project to allow debugging
directly in Xcode while the official client can be started from the
command line. Otherwise Xcode won't allow attaching to the debugee.

Dummy icon files have been added while we get proper icon produced.
We can't use the old icons since what we use for the legacy shell
integration is already padded according to where the badge should
appear on the full icon.
2015-06-15 15:28:21 +02:00
Jocelyn Turcotte
bfcfdeec64 shell_i: Use an NSConnection instead of a local socket #2340
This prepares the switch to the official FinderSync API on Yosemite
which requires the extension to run in a sandbox. This complicates
the usage of a local socket to communicate with a non-sandboxed GUI
client. An NSConnection is easier to use in this case, which we can
use as long as the server name (i.e. Mach port registered name) is
prefixed with the code signing Team Identifier.

A placeholder server implementation is also added to the client's
SocketApi which basically reproduces the interface of a QLocalSocket.
Most of the references to individual sockets we're only using
QIODevice methods so the type was simply reduced. A typedef to
replace the QLocalServer was the only other part needed.
2015-06-15 15:28:17 +02:00
Jocelyn Turcotte
9ef8658122 shell_integration on OSX: Avoid too many RETRIEVE_FILE_STATUS following UPDATE_VIEW #3122
Do not request the status of all entries in the cache. Instead force Finder
to request the ones that it deems necessary by keeping the old statuses
in a separate dictionary which are only used while the new status arrives.
2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
0a67719f2f shell_integration on OSX: Do not fill the cache with unsolicited statuses #3122 2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
04d820f9cf shell_integration on OSX: Remove dead code
removeIcons isn't called and clearFileNameCacheForPath was always
called with a "nil" path.

Remove the return value of askForIcon which was always 0, and use
that value explicitly at the only call site.

Remove the "-1" code path in iconByPath since setIcons prevents
-1 from getting into _fileNamesCache in all cases.
2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
931dd59844 Don't hardcode the source directory in deploy.sh 2015-05-06 16:56:50 +02:00
Jocelyn Turcotte
0d5d2c578d shell_integration on Windows: Avoid too many RETRIEVE_FILE_STATUS following UPDATE_VIEW #3122
Do not request the status of all entries in the cache. Instead force
explorer to request the ones that it deems necessary by keeping the old
statuses in a separate dictionary which are only used while the new status
arrives.
2015-05-06 16:48:34 +02:00
Jocelyn Turcotte
77679790db shell_integration on Windows: Don't fill the cache with unsolicited statuses #3122
Only keep the status updates if explorer is going to display it.
2015-05-06 16:48:33 +02:00
Jocelyn Turcotte
ad5620efb5 Disable asserts in official builds
Make sure that we define NDEBUG in all configurations.
Also remove inconsistent defines:
WIN32: We don't use
_DEBUG;_WINDOWS;_USRDLL: Should be defined by the compiler if necessary
OCCONTEXTMENU_EXPORTS: We currently don't use dllimport anyway

This also update the binary submodule with an updated build.
2015-03-23 13:53:09 +01:00
Hefee
b1100cd9e5 fix python3 syntax errors 2015-03-22 17:49:09 +01:00
Jocelyn Turcotte
60da0a15e6 shell_integration: Remove the incorrect usage of the MIIM_BITMAP flag
This flag should only be specified if the hbmpItem member of the
MENUITEMINFO has been set.
2015-03-12 15:22:29 +01:00
Jocelyn Turcotte
d88751bb8b shell_integrations: Fix the precompiled headers usage in OCUtil
Enable it in all configurations and add the missing include.
2015-03-11 22:17:46 +01:00
Christian Kamm
842e5ba5e0 Sharing: Fix for folders containing &. #2892 2015-02-26 09:58:09 +01:00
Jocelyn Turcotte
a98ab6f51d shell_integration: Remove OwnCloud from public strings on OSX
Also removed it from commented out logs just in case.
2015-02-25 12:13:28 +01:00
Jocelyn Turcotte
c6442f67c1 shell_integration: Fix a crash on explorer startup
There is a race condition that can initialize the RemotePathChecker
instance concurrently on the same address and cause a crash when locking
the mutex. The reason is that local static initialization is not
thread-safe with MSVC2013.

Fix the issue by using call_once to initialize a static unique_ptr
instead.

This could be related to some reports of issue #2836.
2015-02-18 17:33:46 +01:00
Jocelyn Turcotte
ccf4298c81 shell_integration: Cleanup our uses of NSLog
Remove info messages and make sure that error messages
have an OwnCloud prefix since they will be reported by
Finder's process.
2015-02-17 18:23:30 +01:00