Gráfico de Commits

71 Commits

Autor SHA1 Mensagem Data
Roeland Jago Douma 028dc8d6c3 Add SHARE_STATUS socketAPI command
This command allows to retrieve the share status of a file. In other
words if it can be shared.
2015-10-14 12:36:32 +02:00
Christian Kamm 51a2e6c580 Exclusion: Fix confusion with relative and absolute paths 2015-10-13 12:53:38 +02:00
Klaas Freitag 419d18c128 FileSystem: Reuse the FileInfo object that is created in the caller.
With that, a lot of stats can be avoided, ie. in SocketAPI
2015-10-09 13:02:02 +02:00
Klaas Freitag 74a7755ad9 SocketAPI: String concat optimization as learned on QtWS. 2015-10-08 18:26:30 +02:00
Phil Davis b8ccbbc72a GUI comment and message typos for master 2015-10-05 10:06:19 +05:45
Christian Kamm 7d1886684e FolderWatcher: Use csync exclude code #3805
Introduce a global ExcludedFiles instance to avoid loading the global
exclude lists several times.

One could still add per-folder exclude lists by checking these after
the global ones.
2015-10-02 15:56:39 +02:00
Klaas Freitag cf7726353a Always use the webdav path from the Account object.
The Account object has the themed webdav path if it is branded.
2015-09-10 15:39:37 +02:00
Klaas Freitag 16d6418d10 Use a themable WebDAV path all over.
This is needed for enterprise#481
2015-09-10 13:04:26 +02:00
Olivier Goffart 3238d61ef6 SocketApi: fix small leak (found with valgrind) #3369 2015-08-13 10:42:54 +02:00
Christian Kamm 5bd631e8e7 Rename jobCompleted -> itemCompleted.
Because that's what's going on. A job can 'complete an item' or 'finish'.
Note that several jobs could complete the same item: a new directory
will complete on the PropagateRemoteMkdir and the PropagateDirectory
jobs.
2015-08-11 15:19:09 +02:00
Christian Kamm fe42c1a818 Activity: Skip PropagateDirectory jobs #3580
Previously, PropagateDirectory jobs didn't emit the completed() signal.
Now that they do, we need to make sure to not add extra lines to the
protocol widget for them.

To accomplish that, the jobCompleted() signal now also contains the job
that completed the item.
2015-08-11 15:19:09 +02:00
Christian Kamm 85f5424a13 SocketAPI: Show excluded hidden files as ignored #2086 2015-08-10 13:41:19 +02:00
Jocelyn Turcotte 26d137cac6 SocketApi: Remove an unneeded emit syncItemDiscovered
The signal is emitted in this case if the instruction is NONE
but in the only ultimately connected slot to this signal,
SocketApi::slotSyncItemDiscovered, we return early according
to the same condition.

The emission of the same signal at the end of treewalkFile remains
and take care of the normal cases.
2015-07-31 21:59:58 +02:00
Roeland Jago Douma 6f498aea3b Do not open the share dialog if the user tries to share the root folder 2015-07-24 10:10:41 +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 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 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
Olivier Goffart bea8896012 Merge remote-tracking branch 'origin/master' into new-ui 2015-06-14 10:39:30 +02:00
Olivier Goffart 2296f6a4a5 Fix Qt4 build
QSharedPointer::create with arguments is new in Qt5
2015-06-12 08:13:08 +02:00
Olivier Goffart 139b28b471 Merge branch 'master' into new-ui
Conflicts:
	src/gui/folder.cpp
        src/gui/folder.h
	src/gui/folderman.cpp
2015-06-10 15:57:55 +02:00
Olivier Goffart 16786eed54 Merge pull request #3281 from owncloud/confirm
Confirm feature (sync engine part only)
2015-06-10 13:39:52 +02:00
Olivier Goffart 67f7892958 SocketAPI: Do not leak open DB or query
We could leak it in case of errors. Or when the folder is removed.
Make use of QSharedPointer to avoid leaks
2015-06-08 15:49:37 +02:00
Olivier Goffart 10d9e53159 Confirm feature: Use selective sync in the database 2015-05-26 12:34:07 +02:00
Olivier Goffart de9770f52a FolderMan: fix some signal-slot broken connection
In many cases the alias was changed to a Folder pointer
2015-05-12 15:50:38 +02:00
Christian Burger 79f7ea0965 refactoring as requested in pull request 2015-05-05 16:34:01 +01:00
Christian Burger 018cc54a94 Windows Explorer: fix issues when syncing whole drive.
When the local sync target is just a drive letter (e.g. "X:\"), neither
the display of the sync status via file icon overlay, nor the creation of a
share link works. In the latter case no pop-up comes up and no server
request is done.

QDir::cleanPath() usually removes trailing slashes, but not if the path to
be cleaned is just "X:\". In that case the trailing slash is kept. This
commit accounts for that exception.
2015-05-04 10:29:25 +01:00
Jocelyn Turcotte 12d7484b85 Pass SyncFileItems by pointer instead of by value
Use a QSharedPointer to keep the same ownership and
continue passing the SyncFileItems as a const& when
ownership isn't taken. This allows sharing the same
allocations between the jobs and the result vectors.

This saves about 20MB of memory (off 120MB) once all
jobs are created.
2015-04-18 14:26:40 +02:00
Roeland Jago Douma 5a83636f81 Only show share dialog if we are connected. 2015-04-08 09:53:57 +02:00
Jocelyn Turcotte c2fd7d6ebd Clean up remains of SOCKETAPI_TCP 2015-04-01 15:03:42 +02:00
Jocelyn Turcotte 4a893c5267 Fix a crash on shutdown in ~SocketApi #3057
Deleting the QLocalSocket while iterating the QList with qDeleteAll
would trigger onLostConnection, which would modify the list mid-air
and leave dangling pointers in it.
2015-04-01 15:03:42 +02:00
Jocelyn Turcotte 5264a8c7f6 shell_integration: Fix disappearing context menus on Windows #2898
Since each new connection to the socket API would trigger a broadcast
of REGISTER_PATH to all existing connections, opening the context menu
would trigger a SHChangeNotify call of the root directory through
the overlay icon extension, which is currently also connected to the
socket API, waiting for changes.

Fix the issue by sending the initial REGISTER_PATH automatic response
only to the connecting socket.
2015-03-13 20:53:59 +01:00
Klaas Freitag 8cc5ff0e70 ShareDialog: Consider if resharing is not allowed on a share.
If a file or directory is shared without resharing permission, the
share dialog displays an error. This is not the optimal solution, but
best for now, as we do not have the permissions available for the file
manager plugin.

This fixes #2923
2015-03-11 14:12:08 +01:00
Klaas Freitag 9086f09fe2 SocketAPI: If filename has a trailing slash, remove it.
The SyncJournal stores the the names of directories without trailing slash.
2015-03-11 14:11:18 +01:00
Klaas Freitag 05624e3fc8 FileSystem: Remove QFileInfo based implementations.
QFileInfo has to be refreshed if the underlying file has been
modified in between. That is dangerous so ckamm and me decided
to eliminate the QFileInfo based implementations.

This was triggered by a bug that the client uploaded files that
it should not have.
2015-02-27 15:27:49 +01:00
Christian Kamm b03209ccef Inform user about ignored long files. #2882 2015-02-27 12:12:39 +01:00
Klaas Freitag 8507aba9f8 SocketAPI: Append trailing slash for directories in UPDATE_VIEW.
This fixes #2233
2015-02-26 16:41:55 +01:00
Christian Kamm 6f71bd9353 SocketAPI: Don't mark .lnk files as ignored on windows. #2447 2015-02-25 11:55:48 +01:00
Christian Kamm f88398e776 lnk files: Fix exists() calls. #2792 2015-02-25 11:50:32 +01:00
Christian Kamm e79e2b80c8 SocketApi: Fix crash on exit. #2798
The _listeners list is destroyed before the _localServer.
And since _localServer is the parent of all generated QLocalSockets,
they get destroyed in turn - which triggers onLostConnection() and
thus accessed the destroyed _listeners list.

To avoid that, delete all active QLocalSockets in SocketApi before
its members are destructed.

We also now delete sockets when we're done with them. I think
disconnected sockets would otherwise linger until SocketApi destruction.
2015-02-11 09:50:10 +01:00
Klaas Freitag d2f1e6e03e ShareDialog: Disable sharing of external files.
See https://github.com/owncloud/client/issues/2732 for discussion.
2015-01-29 18:11:04 +01:00
Olivier Goffart 807277c0ae Socket API: Do not broadcast the shared menu entry on all socket when one connects to the socket API
Now we reply to the command SHARE_MENU_TITLE
2015-01-23 16:09:38 +01:00
Markus Goetz c54621eb19 OS X: Share menu for Finder 2015-01-23 12:00:31 +01:00
Klaas Freitag 95f7e83c5c Sharedialog: Some more refinements after the merge of the branch.
- Some dialog changes: Made it less vertical space comsuming
- Some variable cleanups
- Allow to share files that are not within the synced dir by
  copying them to the root of a sync dir first.
2015-01-21 15:05:23 +01:00
Roeland Jago Douma 71560ace71 Sharedialog: Show general info about a share
A start with some general share info in the share dialog.
2015-01-16 14:48:56 +01:00
Roeland Jago Douma f6a83d5de2 ShareDialog: UI is different for files/dirs
Bunch of if statements to make sure that we do not display delete/create on
files.
2015-01-14 13:43:01 +01:00
Klaas Freitag 2c6f0950f6 Merge pull request #2674 from rullzer/filebrowser_integration
Add Sharing from the desktop, SocketAPI and Dialog.
2015-01-12 11:16:28 +01:00
Roeland Jago Douma fa390299f9 Added Q_FUNC_INFO at several places 2015-01-11 13:41:15 +01:00
Klaas Freitag 786a877986 SocketAPI: Some cleanups plus added some consts 2015-01-09 11:44:01 +01:00
Daniel Molkentin c86d8e5acf Clean up BSD support patch 2015-01-08 22:40:47 +01:00
Olivier Goffart 8e3dbcb7c0 SocketAPi: use absoluteFilePath unstead of canonicalFilePath
Because canonicalFilePath is way too slow.

Issue #2671
2015-01-07 14:37:05 +01:00