Commit graph

328 commits

Author SHA1 Message Date
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