Commit graph

258 commits

Author SHA1 Message Date
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
Jocelyn Turcotte
0b461e2275 shell_integration: Fix the overlay icons in the column view
Based on 79a713ea643e13e95f52bfe2adbbaf4a5ca92f8a in upstream liferay-nativity.
2015-02-17 18:20:16 +01:00
Jocelyn Turcotte
9579102541 shell_integration: Generate a .pdb in Release for OCContextMenu_x64.dll 2015-02-16 16:47:00 +01:00
Jocelyn Turcotte
4b67429234 shell_integration: Wait longer for the Share menu title
50ms is sometimes not enough when the client is busy synchronizing.
Wait up to 500ms for the client to answer before we give up and show an
empty menu title.

Ideally we should request the title before the watched directory list, but
the list is currently sent implicitly on connect.
2015-02-13 17:18:39 +01:00
Jocelyn Turcotte
23e248b5d1 shell_integration: Fetch the share menu title from the client on Windows
The context menu will now show "Share with ownCloud" instead of "Share" as
it does on other platforms.

This also updates the submodule to point to matching binaries.
2015-02-13 16:08:39 +01:00
Jocelyn Turcotte
bed34b1ddd Fix an infinite loop when unregistering OCContextMenu without admin rights
That mistake was introduced when changing the bool return value to an
HRESULT in the imported RegDelnode code.
2015-02-12 13:35:44 +01:00
Jocelyn Turcotte
dc85ee3f0a shell_integration: Fix hangs on Windows Vista
It seems like verclsid.exe hangs on our class IDs when invoked
through explorer.exe for 5-10 seconds. It doesn't hang if I
invoke the same command line from cmd.exe, so there could be some
process parameters that don't play well with our extra thread
or to the pipe connection that we do in it.

Delay creating the RemotePathChecker thread until the first
IsMemberOf call. verclsid.exe only seems to instantiate a object
of each registered class, without actually using them, so we
can use this as a workaround.

This should be fixing issue #2680.
2015-02-11 16:45:11 +01:00
Christian Kamm
9aeda891c3 Nautilus integration: clean up, fix bugs #2820
* Fix various spaces vs tabs issues
* Rewrite
  - to use instance variables consistently
  - to not make shared state explicit instead of relying on
    class variables of a common base
* Fix reconnecting to an oC client.
2015-02-11 14:53:17 +01:00
Christian Kamm
5b6a6319c2 Nautilus integration: Fix invalid member access #2819 2015-02-11 11:31:07 +01:00
Daniel Molkentin
13aaa46a55 OCContextMenu: Also export modules for x86 2015-02-09 11:56:52 +01:00
Jocelyn Turcotte
af0001a149 [shell_integration] Remove the usage of Win32 APIs not available on XP 2015-02-05 15:15:05 +01:00
Jocelyn Turcotte
2debd5a198 [shell_integration] Setup precompiled headers properly with MSVC
This also fixes a minor compile error when using VS Express.
2015-02-05 15:14:42 +01:00
Markus Goetz
3a1501dea4 OS X: Connect to newest possible overlay icon socket
This is for branded ownCloud clients which use a different file name.
2015-02-04 18:44:00 +01:00
Klaas Freitag
5dc2871e2b Nautilus plugin: Fix broken indentation (python). 2015-01-30 14:27:15 +01:00
Markus Goetz
bb215ad095 OS X: Don't show menu item outside sync folder
As per #2732
2015-01-29 21:13:09 +01:00
Klaas Freitag
37f19dd0fe nautilus menu: Do not show entry on external files. 2015-01-29 18:11:04 +01:00
Daniel Molkentin
f84758eaac Add Resource File for OCContextMenu, adjust (c) dates. 2015-01-29 16:37:51 +01:00
Daniel Molkentin
8c58236e7c Remove template file 2015-01-29 16:13:36 +01:00
Daniel Molkentin
027328d3a6 Windows Integration: Don't use size_t in StringUtil, it's unsigned 2015-01-29 16:11:42 +01:00
Daniel Molkentin
d6c4f749a6 Windows Shell Integration: Also ensure correct TargetName on x86/release 2015-01-29 13:03:38 +01:00
Daniel Molkentin
8af2c6c397 Update MSVC Project files to a consistent state 2015-01-29 13:00:30 +01:00
Daniel Molkentin
367ef7195a Windows Shell Integration: Fix warnings 2015-01-29 13:00:29 +01:00
Daniel Molkentin
2c432e0b97 Remove socketapiclient 2015-01-28 11:13:38 +01:00
Olivier Goffart
fb79211514 Merge remote-tracking branch 'remotes/origin/win_context_menu' 2015-01-23 18:02:55 +01:00
Olivier Goffart
a999884adf osx integration: adapt to socket api changes 2015-01-23 16:13:16 +01:00
Olivier Goffart
0af97156c9 Windows shell integration: Make the share entry work by adding a Sleep
Timeouts don't work with named pipe, so wait for 50ms to let time
for the client to answer
2015-01-23 15:43:03 +01:00
Markus Goetz
c54621eb19 OS X: Share menu for Finder 2015-01-23 12:00:31 +01:00
Klaas Freitag
ed4d31ebc5 Nautilus overlay: Use branded program name for menu item. 2015-01-23 11:50:42 +01:00
Daniel Molkentin
316c476bbd Revert "Revert "Windows Shell Integration: Show status icon for root folder""
This reverts commit 176413d312.
2015-01-22 19:13:12 +01:00
Daniel Molkentin
081cc0b9e8 WiP: Add Win32 Context menu integration 2015-01-22 18:45:20 +01:00
Olivier Goffart
560759ede8 Windows shell integration: Reduce the timeout time of WaitNamedPipe
This is maybe what causes the troubles of task #2576
2015-01-22 16:30:02 +01:00
Klaas Freitag
82e5e36c57 Nautilus: Display context menu for files that are not yet synced. 2015-01-21 17:41:57 +01:00
Klaas Freitag
b754ffb047 Nautilus: Add a context menu that opens the sharing dialog. 2015-01-12 14:49:22 +01:00
Klaas Freitag
89eb4727b4 Nautilus overlays: Add a script to patch the branding name into pyhton script. 2015-01-12 14:49:22 +01:00
Daniel Molkentin
5619947685 Relocate Windows shell extensions
The directory was redundant
2015-01-12 14:40:42 +01:00
Olivier Goffart
2d8053a9df Dolphin plugin for KF5 2015-01-05 17:23:36 +01:00
Olivier Goffart
414ac5433d Merge branch '1.7'
Conflicts:
	binary
	doc/accountsetup.rst
	doc/architecture.rst
	doc/navigating.rst
	doc/owncloudcmd.rst
	doc/troubleshooting.rst
2015-01-05 14:40:53 +01:00
Markus Goetz
f195648b90 OS X: Fix overlay icons
a3e7f513e6 broke them.
2014-12-15 11:34:44 +01:00
Christian Kamm
53d5de685c Merge remote-tracking branch 'origin/1.7'
Conflicts:
	src/gui/folder.cpp
	src/gui/folder.h
	src/libsync/networkjobs.cpp
	src/libsync/owncloudpropagator.h
	src/libsync/propagatedownload.cpp
2014-12-10 13:01:36 +01:00
Daniel Molkentin
d5f2c36abd Mirall -> (Desktop) Client 2014-12-08 17:54:32 +01:00
Olivier Goffart
0fd0b08c09 Windows shell integration: Always release the lock before calling win32 API
May help for 2515
2014-12-03 09:11:38 +01:00