Comparar commits

..

125 Commits

Autor SHA1 Mensagem Data
Markus Goetz e6d3a5a252 VERSION.cmake: 2.2.3 final 2016-08-08 15:42:39 +02:00
Markus Goetz 9626021a63 Update ChangeLog for 2.2.3 final 2016-08-08 15:39:49 +02:00
Jenkins for ownCloud b72a19ad64 [tx-robot] updated from transifex 2016-08-08 02:18:35 +02:00
Markus Goetz 2ae37c6beb Update ChangeLog 2016-08-07 22:51:16 +02:00
Jenkins for ownCloud f8f376ac03 [tx-robot] updated from transifex 2016-08-07 02:18:30 +02:00
Jenkins for ownCloud 632d231435 [tx-robot] updated from transifex 2016-08-06 02:18:34 +02:00
Markus Goetz fc868d89f3 Merge pull request #5108 from owncloud/limit_library_path
Limit Qt and OpenSSL Library pathes to the install directory
2016-08-05 16:39:04 +02:00
Daniel Molkentin 5a57e4a7a6 Ensure OpenSSL config file is only read from app dir 2016-08-05 16:38:08 +02:00
Jenkins for ownCloud 70a1671dc1 [tx-robot] updated from transifex 2016-08-05 14:23:25 +02:00
Daniel Molkentin 7de70516f1 Fix module loading 2016-08-05 12:35:52 +02:00
Jenkins for ownCloud 50bd4b8f4f [tx-robot] updated from transifex 2016-08-05 02:18:30 +02:00
Olivier Goffart 4a7f3cb486 SyncEngine: Fix detection of backup (#5104)
Once upon a time, the SyncEngine was instantiated once per sync. But now that
the SyncEngine is kept between sync, we need to reset all these variable between
syncs.
2016-08-04 16:06:10 +02:00
Jenkins for ownCloud b7663d00b9 [tx-robot] updated from transifex 2016-08-04 02:18:35 +02:00
Jocelyn Turcotte b307f2b65c Revert "Fix a deadlock when shutting down during discovery" (#5100)
Reverts commit 622017adcf

Could be the cause of #5092 and the cost is higher than the benefit if this is the case.
A network request taking more than 30 seconds isn't something unlikely in this world
and shouldn't be a good reason to abort. We should try to untangle the threads
dependencies to properly fix this if possible instead.
2016-08-03 16:35:24 +02:00
Jenkins for ownCloud 6c94d56b53 [tx-robot] updated from transifex 2016-08-03 02:18:37 +02:00
Jenkins for ownCloud c51a80bffa [tx-robot] updated from transifex 2016-08-02 02:18:35 +02:00
Thomas Müller 87f4f70abb Merge pull request #5069 from owncloud/Jenkinsfile-2.2
[2.2] Add Jenkinsfile (#5041)
2016-08-01 12:41:04 +02:00
Olivier Goffart 19a52b9e6b Qt4: don't require a X server in the tests
Issue #5069

(cherry picked from commit 927a8b5071 and
a4310f0f5c)
2016-08-01 11:57:21 +02:00
Jenkins for ownCloud 4ea70ebd18 [tx-robot] updated from transifex 2016-08-01 02:48:18 +02:00
Jenkins for ownCloud b9a6970282 [tx-robot] updated from transifex 2016-07-31 02:50:05 +02:00
Jenkins for ownCloud a58ef9c586 [tx-robot] updated from transifex 2016-07-30 02:39:29 +02:00
Thomas Müller cef24da44c Add Jenkinsfile (#5041) 2016-07-29 08:48:28 +02:00
Jenkins for ownCloud 23c7f10b79 [tx-robot] updated from transifex 2016-07-29 02:18:35 +02:00
Jenkins for ownCloud 9e514d6cc7 [tx-robot] updated from transifex 2016-07-28 02:18:39 +02:00
Jenkins for ownCloud 4d109e43fa [tx-robot] updated from transifex 2016-07-27 02:18:42 +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
Markus Goetz 24cd8041a8 ChangeLog for 2.2.3 2016-07-26 12:14:00 +02:00
Jenkins for ownCloud 3eaadfe52f [tx-robot] updated from transifex 2016-07-26 02:43:40 +02:00
Klaas Freitag ebcec44202 ShibbolethView: Open a debug windows that shows cipher info. (#5080)
It opens a window and connects to a cipher test
page, showing the output from there, that helps for debugging.

The window is enabled by setting the environment variable
OWNCLOUD_SHIBBOLETH_DEBUG
2016-07-25 17:47:23 +02:00
Jenkins for ownCloud 7b0b7fde51 [tx-robot] updated from transifex 2016-07-25 02:18:34 +02:00
Jenkins for ownCloud fa9ec12ae7 [tx-robot] updated from transifex 2016-07-24 02:18:36 +02:00
Jenkins for ownCloud 54aa4dce46 [tx-robot] updated from transifex 2016-07-23 02:18:47 +02:00
Jenkins for ownCloud 7c19f748b7 [tx-robot] updated from transifex 2016-07-22 02:18:44 +02:00
Jenkins for ownCloud 5aa82944a4 [tx-robot] updated from transifex 2016-07-21 02:18:38 +02:00
Jenkins for ownCloud 0d9cf26890 [tx-robot] updated from transifex 2016-07-20 08:18:40 +02:00
Jenkins for ownCloud a4837e9291 [tx-robot] updated from transifex 2016-07-19 08:18:37 +02:00
Jenkins for ownCloud 5672557a84 [tx-robot] updated from transifex 2016-07-18 09:29:56 +02:00
Jenkins for ownCloud 0b31f2601d [tx-robot] updated from transifex 2016-07-18 08:18:44 +02:00
Jenkins for ownCloud a5850d4515 [tx-robot] updated from transifex 2016-07-17 08:18:34 +02:00
Jenkins for ownCloud c39eb315dd [tx-robot] updated from transifex 2016-07-16 08:18:34 +02:00
Jenkins for ownCloud 6c8e88e2ed [tx-robot] updated from transifex 2016-07-15 08:18:36 +02:00
Jenkins for ownCloud eeea255104 [tx-robot] updated from transifex 2016-07-14 08:18:43 +02:00
Jenkins for ownCloud 8e2af57b57 [tx-robot] updated from transifex 2016-07-13 02:18:41 -04:00
Olivier Goffart f3f387c36b Merge pull request #5016 from owncloud/overrideurl
AccountManager: Don't force the server URL while loading the config.
2016-07-12 14:33:28 +02:00
Olivier Goffart b53ce78eb6 Merge pull request #5025 from ArthurChiao/bugfix_#5015
fix #5015 overlay icon not show: compare folder paths with no case-se…
2016-07-12 14:32:54 +02:00
ckamm bc4753e938 Sharing: Fix bug with file names containing percent encodes #5042 (#5043) 2016-07-12 14:25:33 +02:00
Jenkins for ownCloud aefbca0787 [tx-robot] updated from transifex 2016-07-12 02:18:39 -04:00
Jenkins for ownCloud 653b42216f [tx-robot] updated from transifex 2016-07-11 02:18:33 -04:00
Jenkins for ownCloud 3ec9cd1d9e [tx-robot] updated from transifex 2016-07-10 02:18:47 -04:00
Jenkins for ownCloud 20d0c835b6 [tx-robot] updated from transifex 2016-07-09 02:18:51 -04:00
arthurchiao 3335c733d7 be case insensitive for MacOSX, too 2016-07-08 15:53:11 +08:00
arthurchiao 4da55b69df ignore case-sensitivity only on windows 2016-07-08 15:12:37 +08:00
Jenkins for ownCloud b7085987b8 [tx-robot] updated from transifex 2016-07-08 02:18:52 -04:00
Jenkins for ownCloud a1b44cd82a [tx-robot] updated from transifex 2016-07-07 02:18:42 -04:00
ckamm 11b44358f6 Windows: Skip symlinks and junctions again #5019 (#5036)
Fixes an accidental behavior change introduced in
055c2ef73f

Affects #4056 and owncloud/enterprise#1225.
2016-07-07 08:07:19 +02:00
Jenkins for ownCloud 651cc25e3f [tx-robot] updated from transifex 2016-07-06 02:19:04 -04:00
Daniel Molkentin a338b9f269 Merge pull request #5034 from owncloud/fix-5033
Only accept notification API Capability if endpoint is OCS-enabled
2016-07-05 12:46:20 +02:00
Jenkins for ownCloud 81ff4e02c5 [tx-robot] updated from transifex 2016-07-05 02:18:32 -04:00
Daniel Molkentin 8a1a2eb5b3 Only accept notification API Capability if endpoint is OCS-enabled
Fixes #5033
2016-07-04 18:33:02 +02:00
Jenkins for ownCloud 0c646b974f [tx-robot] updated from transifex 2016-07-04 02:18:34 -04:00
Jenkins for ownCloud e661bf2324 [tx-robot] updated from transifex 2016-07-03 02:18:29 -04:00
Jenkins for ownCloud 2abb5c95bb [tx-robot] updated from transifex 2016-07-02 02:19:18 -04:00
Jenkins for ownCloud c3ef1a996f [tx-robot] updated from transifex 2016-07-01 02:18:37 -04:00
arthurchiao 7a2a439426 fix #5015 overlay icon not show: compare folder paths with no case-sensitivity 2016-07-01 13:03:42 +08:00
Jenkins for ownCloud ce26afb262 [tx-robot] updated from transifex 2016-06-30 02:18:34 -04:00
Jenkins for ownCloud 56e1737c61 [tx-robot] updated from transifex 2016-06-29 02:18:33 -04:00
Olivier Goffart dff57362f9 AccountManager: Don't force the server URL while loading the config.
While loading the account, only override the server url if Theme::forceConfigAuthType
is set. This restore the behavior from the client 2.1 for theme that did not
use Theme::forceConfigAuthType.

Issue: owncloud/enterprise#1418
2016-06-28 14:32:03 +02:00
Jenkins for ownCloud 05a7c18635 [tx-robot] updated from transifex 2016-06-28 02:19:16 -04:00
Jocelyn Turcotte 3a77074b97 Merge pull request #5007 from owncloud/rebuildWinShellIntegration
Rebuild win shell integration
2016-06-27 18:02:42 +02:00
Jocelyn Turcotte 446e7cbd93 Fix a QAction leak (#5008)
Attach the accout menu QAction to the menu rather than the
ownCloudGui since it should be destroyed when the context
menu is cleared.
2016-06-27 16:22:51 +02:00
ckamm b4d26ba952 Fix windows HiDPI #4994 (#4998)
This was removed in 0194ebb222
because it breaks on Linux. However, it looks like it is correct
for Windows. In the meantime the surrounding ifdef has changed
from !Q_OS_MAC to Q_OS_WIN, so reverting it makes sense.
2016-06-27 16:17:58 +02:00
Jocelyn Turcotte 622017adcf Fix a deadlock when shutting down during discovery (#4993)
Since the SyncEngine now quits and waits for the discovery thread,
the main thread can enter a deadlock where the discovery thread waits
for its directory result.

Add a 2 seconds timer to the discovery thread wait condition
to limit the deadlock time.
2016-06-27 16:12:39 +02:00
Jocelyn Turcotte 088a4f0bbe binaries: Update to build 42 owncloud/client#4977 2016-06-27 15:30:03 +02: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
ckamm bdb304f8ec Share: Permissions for federated shares on servers >=9.1 #4996 (#5001)
This disables the workaround 487e1fdca5ee04fc98c1ed77898df70d740967c8
for servers that are new enough to support fine grained permissions
on federated shares.

The consequence is that the 'reshare' permission is now granted by
default and that users can edit permissions on the usual fine-grained
level again.

The way the client deals with servers <9.1 is unchanged.
2016-06-27 11:09:51 +02:00
Jenkins for ownCloud 001075daf0 [tx-robot] updated from transifex 2016-06-27 02:18:35 -04:00
Jenkins for ownCloud 2a98aa7130 [tx-robot] updated from transifex 2016-06-26 02:18:40 -04:00
Jenkins for ownCloud 9904fb200e [tx-robot] updated from transifex 2016-06-25 02:18:39 -04:00
Jenkins for ownCloud 6822ae5bec [tx-robot] updated from transifex 2016-06-24 02:18:52 -04:00
Christian Kamm 440a804836 Tray: Add minimal mode as workaround and testing tool #4985 #4990 2016-06-23 10:22:43 +02:00
Jenkins for ownCloud 9b66dd7166 [tx-robot] updated from transifex 2016-06-23 02:18:31 -04:00
Christian Kamm 7601783553 Fix Qt4 build 2016-06-22 15:47:33 +02:00
Christian Kamm c0b0bd5b63 owncloudcmd: Fix --exclude regression
It's ok if the system exclude file is missing when --exclude is
specified explicitly.
2016-06-22 15:30:20 +02:00
Jenkins for ownCloud 28d86cee17 [tx-robot] updated from transifex 2016-06-22 02:18:48 -04:00
ckamm 32bb8295a2 csync: Use the full file stat destructors (#4992)
* For csync_file_stat_t and csync_vio_file_stat_t
* Add original_name to the vio file stat destructor
2016-06-21 12:06:21 +02:00
Jocelyn Turcotte 5d71ad83ec Fix the Qt4 build
QSharedPointer::reset doesn't exist in Qt4.
2016-06-21 12:04:26 +02:00
Markus Goetz ab24980001 Merge pull request #4979 from jturcotte/2.2
Memory improvements during propagation
2016-06-21 10:00:41 +02:00
ckamm 07dea72c37 Setup csync logging earlier (#4991)
We were missing some csync related log output during startup.

Discovered in #4967
2016-06-21 09:58:53 +02:00
Jenkins for ownCloud a734be347b [tx-robot] updated from transifex 2016-06-21 02:18:36 -04:00
Daniel Molkentin 1443ddc7c9 This branch is headed towards 2.2.3 now 2016-06-20 17:42:19 +02:00
Klaas Freitag 191177ff22 excludes: Only log if the pattern was really logged. (#4989) 2016-06-20 15:50:20 +02:00
ckamm 43a2aec92b Performance: Don't redundantly add the same exclude files #4967 (#4988)
Excludes: Don't redundantly add the same exclude files #4967, Never accept duplicate exclude patterns #4967
2016-06-20 15:14:13 +02:00
Jenkins for ownCloud c848097c6b [tx-robot] updated from transifex 2016-06-20 02:18:29 -04:00
Jenkins for ownCloud 096e2cf233 [tx-robot] updated from transifex 2016-06-19 02:18:34 -04:00
Jenkins for ownCloud 7181aedb4b [tx-robot] updated from transifex 2016-06-18 02:18:33 -04:00
Jocelyn Turcotte edfd75949d Reduce the memory usage of the StopWatch during propagation
Use a QMap to avoid using a full hashtable for only a few entries, and
clear the QMap once we're done with the measuring. This saves a few
hundred bytes per job during propagation that would otherwise only be
freed at the end of the sync.
2016-06-17 19:20:53 +02:00
Jocelyn Turcotte 7fb134b4e0 Delete the ComputeChecksum object when the job is finished
Each object takes almost 1k and we don't need it once the propagation is
done.
2016-06-17 19:20:53 +02:00
Jocelyn Turcotte 87e3553c85 Prevent the sync protocol widget from over-using memory
During propagation, we create a line for each file, taking memory, but
we delete all lines passed 2000 right at the beginning of the next sync.
Since the user has little chances of being able to read past those 2000
lines in the log, we might as well keep it capped at 2000 also during
propagation to prevent it from eating memory.
2016-06-17 19:20:53 +02:00
Jocelyn Turcotte 6f3aaecb78 Fix a crash on if shutting down during propagation
The SyncRunFileLog owned by the Folder must be destroyed after the
SyncEngine since the SyncEngine will abort during destruction, resulting
in all jobs being aborted.

It's possible that this crash only happens with a debug build.
2016-06-17 19:20:52 +02:00
Markus Goetz 40e3653722 VERSION.cmake: This is 2.2.2 2016-06-17 10:31:30 +02:00
Jenkins for ownCloud 5a4f50a0ff [tx-robot] updated from transifex 2016-06-17 02:19:00 -04:00
Jocelyn Turcotte 3342ebfcc5 SocketAPI: Push new status of dirty files regardless when not synced (#4970)
The FolderWatcher inserts files to be marked as SYNC and we
currently assume that all file statuses will be updated by the
following sync. It's however possible that the FolderWatcher
notify us of a change that csync won't consider necessary to
propagate, in which case a new status wouldn't be pushed and
the file manager would continue showing this file as syncing.

Re-push the file status when emptying the dirty files list
before propagating to avoid this issue, most likely the OK
status.
2016-06-16 15:27:10 +02:00
Olivier Goffart b4900d60b7 Checksum speedup. (#4968)
No need to allocate (and initialize to 0) a 10 MiB buffer for each files, even
when most files are much smaller than that.
So make sure the buffer that we allocate is not bigger than the file size.
And Also 10 MiB is a bit big for a buffer. 500 KiB should be more than enough.
(Too big allocations can cause problem because of memory fragmentation and such)
2016-06-16 08:28:30 +02:00
Olivier Goffart 92309013da SyncEngine: make abort and closing more robust
We first need to set the abort flag to csync and then aborting the discovery
job, otherwise, the discovery thread could start a new job in the mean time.

We also need to make sure that the thread has existed before we destroy the
exclude list.
2016-06-16 08:26:33 +02:00
Jenkins for ownCloud 4895589e4d [tx-robot] updated from transifex 2016-06-16 02:18:46 -04:00
Jocelyn Turcotte 05d199881e Merge pull request #4971 from owncloud/fixAccountHandleSslErrorsCrash
Attempt to fix the Account::slotHandleSslErrors crash
2016-06-15 18:53:47 +02:00
Jocelyn Turcotte 147cf798a6 Attempt to fix the Account::slotHandleSslErrors crash
Events from the crash reporter suggest that the QNAM and its
child replies might get deleted before returning from this method
and the only possible cause we can see is that the inner event
loop has something to do with it.

Try keeping a ref on the QNAM while in this method to make sure
that it won't get deleted by the inner event loop.
2016-06-15 18:12:02 +02:00
Jocelyn Turcotte d40c56eda5 Account: Use smart pointers to hold its credentials and QNAM objects
Also make sure that both use QObject::deleteLater as their delete
function.
2016-06-15 18:12:01 +02:00
Olivier Goffart 6dade0b114 PropagateUpload: fix crash in PUTFileJob::slotTimeout
Same fix as in commit 60c101d9

From the crash reporter:

Crash
EXCEPTION_ACCESS_VIOLATION_READ at 0x4
qnetworkreply.cpp in QNetworkReply::request at line 476
propagateupload.cpp in OCC::PUTFileJob::slotTimeout at line 100
moc_abstractnetworkjob.cpp in OCC::AbstractNetworkJob::qt_static_metacall at line 98
qobject.cpp in QMetaObject::activate at line 3716
moc_qtimer.cpp in QTimer::timeout at line 192
qtimer.cpp in QTimer::timerEvent at line 247
qobject.cpp in QObject::event at line 1267
qapplication.cpp in QApplicationPrivate::notify_helper at line 3722
qapplication.cpp in QApplication::notify at line 3505
qcoreapplication.cpp in QCoreApplication::notifyInternal at line 932
2016-06-15 14:32:25 +02:00
Jenkins for ownCloud 5de44407bf [tx-robot] updated from transifex 2016-06-15 02:18:44 -04:00
Jenkins for ownCloud 2df741e456 [tx-robot] updated from transifex 2016-06-14 02:18:36 -04:00
Olivier Goffart 8b5f71f49e Fix docker build instruction for windows 2016-06-13 15:30:39 +02:00
Jenkins for ownCloud 77791ccb34 [tx-robot] updated from transifex 2016-06-13 02:18:35 -04:00
Jenkins for ownCloud a6e4f9939c [tx-robot] updated from transifex 2016-06-12 02:18:35 -04:00
Jenkins for ownCloud 523cdff1cf [tx-robot] updated from transifex 2016-06-11 02:18:33 -04:00
Jenkins for ownCloud c4d6277ce3 [tx-robot] updated from transifex 2016-06-10 02:18:39 -04:00
Jenkins for ownCloud 70196eb48c [tx-robot] updated from transifex 2016-06-09 02:26:12 -04:00
Jenkins for ownCloud 9b249716a3 [tx-robot] updated from transifex 2016-06-08 02:19:30 -04:00
Jürgen Weigert a4b46db91e Merge pull request #4949 from owncloud/jnweiger-tray-patch-patch-patch
Update accountsettings.cpp fixing the tray-patch
2016-06-07 15:59:53 +02:00
Jürgen Weigert ebc44fa494 Update accountsettings.cpp 2016-06-07 14:21:50 +02:00
ckamm 355a8a0a27 Workaround for Ubuntu 16.04 tray issue #4944 (#4947) 2016-06-07 11:48:25 +02:00
126 arquivos alterados com 5509 adições e 4933 exclusões
+25 -1
Ver Arquivo
@@ -1,6 +1,30 @@
ChangeLog
=========
version 2.2.1 (release 2016-05-xx)
version 2.2.3 (release 2016-08-08)
* SyncEngine: Fix detection of backup (#5104)
* Fix bug with overriding URL in config (#5016)
* Sharing: Fix bug with file names containing percent encodes (#5042, #5043)
* Sharing: Permissions for federated shares on servers >=9.1 (#4996, #5001)
* Overlays: Fix issues with file name casing on OS X and Windows
* Windows: Skip symlinks and junctions again (#5019)
* Only accept notification API Capability if endpoint is OCS-enabled (#5034)
* Fix windows HiDPI (#4994)
* SocketAPI: Use different pipe name to avoid unusual delay (#4977)
* Tray: Add minimal mode as workaround and testing tool for Linux issues (#4985, #4990)
* owncloudcmd: Fix --exclude regression #4979
* Small memleak: Use the full file stat destructors (#4992)
* Fix small QAction memleak (#5008)
* Fix crash on shutting down during propagation (#4979)
* Decrease memory usage during sync #4979
* Setup csync logging earlier to get all log output (#4991)
* Enable Shibboleth debug view with OWNCLOUD_SHIBBOLETH_DEBUG env
version 2.2.2 (release 2016-06-21)
* Excludes: Don't redundantly add the same exclude files (memleak) (#4967, #4988)
* Excludes: Only log if the pattern was really logged. (#4989)
version 2.2.1 (release 2016-06-06)
* Fix out of memory error when too many uploads happen (#4611)
* Fix display errors in progress display (#4803 #4856)
* LockWatcher: Remember to upload files after they become unlocked (#4865)
+43
Ver Arquivo
@@ -0,0 +1,43 @@
#!groovy
node('CLIENT') {
stage 'Checkout'
checkout scm
sh '''git submodule update --init'''
stage 'Qt4'
sh '''rm -rf build
mkdir build
cd build
cmake -DUNIT_TESTING=1 -DBUILD_WITH_QT4=ON ..
make
ctest --output-on-failure'''
stage 'Qt4 - clang'
sh '''rm -rf build
mkdir build
cd build
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DUNIT_TESTING=1 -DBUILD_WITH_QT4=ON ..
make
ctest --output-on-failure'''
stage 'Qt5'
sh '''rm -rf build
mkdir build
cd build
cmake -DUNIT_TESTING=1 -DBUILD_WITH_QT4=OFF ..
make
ctest --output-on-failure'''
stage 'Qt5 - clang'
sh '''rm -rf build
mkdir build
cd build
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DUNIT_TESTING=1 -DBUILD_WITH_QT4=OFF ..
make
ctest --output-on-failure'''
}
+3 -3
Ver Arquivo
@@ -1,11 +1,11 @@
set( MIRALL_VERSION_MAJOR 2 )
set( MIRALL_VERSION_MINOR 3 )
set( MIRALL_VERSION_PATCH 0 )
set( MIRALL_VERSION_MINOR 2 )
set( MIRALL_VERSION_PATCH 3 )
set( MIRALL_VERSION_YEAR 2016 )
set( MIRALL_SOVERSION 0 )
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
set( MIRALL_VERSION_SUFFIX "git") #e.g. beta1, beta2, rc1
set( MIRALL_VERSION_SUFFIX "") #e.g. beta1, beta2, rc1
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
if( NOT DEFINED MIRALL_VERSION_BUILD )
+1 -1
Ver Arquivo
@@ -30,7 +30,7 @@ StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Z
StrCpy $UNINSTALLER_FILE_Detail "Zapisuji odinstal tor"
StrCpy $UNINSTALLER_REGISTRY_Detail "Zapisuji instal tor do registr…"
StrCpy $UNINSTALLER_FINISHED_Detail "DokonŸeno"
StrCpy $UNINSTALL_MESSAGEBOX "Nezd  se, §e ${APPLICATION_NAME} je nainstalov na v adres ýi '$INSTDIR'.$\n$\nChcete pokraŸovat (nedoporuŸuje se)?"
StrCpy $UNINSTALL_MESSAGEBOX "Nezd  se, §e ${APPLICATION_NAME} je nainstalov na ve slo§ce '$INSTDIR'.$\n$\nChcete pokraŸovat (nedoporuŸuje se)?"
StrCpy $UNINSTALL_ABORT "Odinstalace zruçena u§ivatelem"
StrCpy $INIT_NO_QUICK_LAUNCH "Z stupce rychlho spuçtØn¡ (nen¡ k dispozici)"
StrCpy $INIT_NO_DESKTOP "Z stupce na ploçe (pýep¡çe existuj¡c¡)"
+6 -6
Ver Arquivo
@@ -1,14 +1,14 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Existem ${APPLICATION_EXECUTABLE} processo(s) em execução que precisa(m) de ser interrompido(s).$\nDeseja que o instalador o(s) termine automaticamente?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar os processos de ${APPLICATION_EXECUTABLE}."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Não foi encontrado nenhum processo para terminar!"
StrCpy $PageReinstall_NEW_Field_1 "Está instalada no sistema uma versão antiga de ${APPLICATION_NAME}. É recomendado que desinstale a versão atual antes de instalar a mais recente. Selecione a operação que deseja executar e clique em $\"Seguinte$\" para continuar."
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar os processos ${APPLICATION_EXECUTABLE}."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Não foi encontrado o processo a terminar!"
StrCpy $PageReinstall_NEW_Field_1 "Uma versão antiga de ${APPLICATION_NAME} está instalada no sistema. É recomendado que você desinstale a versão atual antes de instalar a mais recente. Selecione a operação que deseja executar e clique em $\"Avançar$\" para continuar."
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
StrCpy $PageReinstall_NEW_Field_3 "Não desinstale"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Já instalado"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolha como pretende instalar ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "Uma versão mais recente da aplicação ${APPLICATION_NAME} já está instalada! Não é recomendada a instalação de uma versão mais antiga. Se realmente deseja instalar esta versão, aconselha-se a desinstalação da versão atual primeiro. Selecione a operação que deseja executar e clique em Avançar para continuar."
StrCpy $PageReinstall_OLD_Field_1 "Uma versão mais recente do ${APPLICATION_NAME} já está instalada! Não é recomendada a instalação de uma versão mais antiga. Se realmente deseja instalar esta versão, aconselha-se a desinstalação da versão atual primeiro. Selecione a operação que deseja executar e clique em Avançar para continuar."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} já está instalada.$\nSelecione a operação que deseja realizar e clique em 'Seguinte' para continuar."
StrCpy $PageReinstall_SAME_Field_2 "Adicionar/Reinstalar Componentes"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
@@ -25,12 +25,12 @@ StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atalho de início rápido"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "A criar atalho de início rápido"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "O essencial de ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Atalho de ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Atalho do ambiente de trabalho para ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Atalho no ambiente de trabalho de ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Atalho de início rápido de ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_FILE_Detail "A escrever o Desinstalador"
StrCpy $UNINSTALLER_REGISTRY_Detail "A escrever chaves de registo do instalador"
StrCpy $UNINSTALLER_FINISHED_Detail "Terminado"
StrCpy $UNINSTALL_MESSAGEBOX "Não parece que a aplicação ${APPLICATION_NAME} esteja instalada no diretório '$INSTDIR'.$\n$\nContinuar na mesma (não recomendado)?"
StrCpy $UNINSTALL_MESSAGEBOX "Não parece que ${APPLICATION_NAME} esteja instalado no diretório '$INSTDIR'.$\n$\nContinuar na mesma (não recomendado)?"
StrCpy $UNINSTALL_ABORT "Desinstalação cancelada pelo utilizador"
StrCpy $INIT_NO_QUICK_LAUNCH "Atalho de Início Rápido (N/A)"
StrCpy $INIT_NO_DESKTOP "Atalho do Ambiente de Trabalho (sobrepõe o existente)"
+1 -1
Ver Arquivo
@@ -9,7 +9,6 @@ StrCpy $PageReinstall_NEW_Field_3 "Avinstallera inte"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Redan installerad"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Välj hur du vill installera ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "En nyare version av ${APPLICATION_NAME} är redan installerad! Det rekommenderas inte att du installerar en äldre version. Om du verkligen vill installera denna äldre versionen, är det bättre att du avinstallerar den nuvarande versionen först. Välj den åtgärd du vill utföra och klicka Nästa för att fortsätta."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} är redan installerad.$\n$\nVälj den åtgärd du vill utföra och klicka på Nästa för att fortsätta."
StrCpy $PageReinstall_SAME_Field_2 "Lägg till/Ominstallera komponenter"
StrCpy $PageReinstall_SAME_Field_3 "Avinstallera ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Avinstallera ${APPLICATION_NAME}"
@@ -41,3 +40,4 @@ StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Detta avinstallationsprogram kräver adm
StrCpy $UAC_ERROR_LOGON_SERVICE "Login-service körs inte, avbryter!"
StrCpy $INIT_UNINSTALLER_RUNNING "Avinstallationsprogrammet körs redan."
StrCpy $SectionGroup_Shortcuts "Genvägar"
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.$\r$\nSelect the operation you want to perform and click Next to continue."
+7
Ver Arquivo
@@ -0,0 +1,7 @@
[Paths]
Prefix = .
Plugins = .
Binaries = .
Imports = .
Qml2Imports = .
LibraryExecutables = .
+1 -1
Submodule binary updated: d27d472817...0d89ac7766
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+3
Ver Arquivo
@@ -411,6 +411,9 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
File "@CPACK_RESOURCE_FILE_LICENSE@"
;File /oname=NOTES.txt ${NSI_PATH}\RELEASE_NOTES.txt
;Qt config:
File "${NSI_PATH}\qt.conf"
;Qt stuff:
File "${QT_DLL_PATH}\Qt5Core.dll"
File "${QT_DLL_PATH}\Qt5Gui.dll"
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
# (c) 2014 Copyright ownCloud, Inc.
# (c) 2014 Copyright ownCloud GmbH
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING* file.
-1
Ver Arquivo
@@ -98,7 +98,6 @@ enum csync_status_codes_e {
CSYNC_STATUS_INDIVIDUAL_IS_SYMLINK,
CSYNC_STATUS_INDIVIDUAL_IGNORE_LIST,
CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS,
CSYNC_STATUS_INDIVIDUAL_TRAILING_SPACE,
CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME,
CYSNC_STATUS_FILE_LOCKED_OR_OPEN,
CSYNC_STATUS_INDIVIDUAL_EXCLUDE_HIDDEN,
+17 -7
Ver Arquivo
@@ -44,6 +44,18 @@
static
#endif
int _csync_exclude_add(c_strlist_t **inList, const char *string) {
size_t i = 0;
// We never want duplicates, so check whether the string is already
// in the list first.
if (*inList) {
for (i = 0; i < (*inList)->count; ++i) {
char *pattern = (*inList)->vector[i];
if (c_streq(pattern, string)) {
return 1;
}
}
}
return c_strlist_add_grow(inList, string);
}
@@ -139,8 +151,10 @@ int csync_exclude_load(const char *fname, c_strlist_t **list) {
buf[i] = '\0';
if (*entry != '#') {
const char *unescaped = csync_exclude_expand_escapes(entry);
CSYNC_LOG(CSYNC_LOG_PRIORITY_TRACE, "Adding entry: %s", unescaped);
rc = _csync_exclude_add(list, unescaped);
if( rc == 0 ) {
CSYNC_LOG(CSYNC_LOG_PRIORITY_TRACE, "Adding entry: %s", unescaped);
}
SAFE_FREE(unescaped);
if (rc < 0) {
goto out;
@@ -229,12 +243,8 @@ static CSYNC_EXCLUDE_TYPE _csync_excluded_common(c_strlist_t *excludes, const ch
// distinguish files ending in '.' from files without an ending,
// as '.' is a separator that is not stored internally, so let's
// not allow to sync those to avoid file loss/ambiguities (#416)
if (blen > 1) {
if (bname[blen-1]== ' ') {
match = CSYNC_FILE_EXCLUDE_TRAILING_SPACE;
} else if (bname[blen-1]== '.' ) {
match = CSYNC_FILE_EXCLUDE_INVALID_CHAR;
}
if (blen > 1 && (bname[blen-1]== ' ' || bname[blen-1]== '.' )) {
match = CSYNC_FILE_EXCLUDE_INVALID_CHAR;
goto out;
}
-1
Ver Arquivo
@@ -27,7 +27,6 @@ enum csync_exclude_type_e {
CSYNC_FILE_EXCLUDE_AND_REMOVE,
CSYNC_FILE_EXCLUDE_LIST,
CSYNC_FILE_EXCLUDE_INVALID_CHAR,
CSYNC_FILE_EXCLUDE_TRAILING_SPACE,
CSYNC_FILE_EXCLUDE_LONG_FILENAME,
CSYNC_FILE_EXCLUDE_HIDDEN,
CSYNC_FILE_EXCLUDE_STAT_FAILED
+2 -2
Ver Arquivo
@@ -472,7 +472,7 @@ int csync_statedb_get_below_path( CSYNC *ctx, const char *path ) {
if (excluded == CSYNC_FILE_EXCLUDE_AND_REMOVE
|| excluded == CSYNC_FILE_SILENTLY_EXCLUDED) {
SAFE_FREE(st);
csync_file_stat_free(st);
continue;
}
@@ -481,7 +481,7 @@ int csync_statedb_get_below_path( CSYNC *ctx, const char *path ) {
/* store into result list. */
if (c_rbtree_insert(ctx->remote.tree, (void *) st) < 0) {
SAFE_FREE(st);
csync_file_stat_free(st);
ctx->status_code = CSYNC_STATUS_TREE_ERROR;
break;
}
+9 -11
Ver Arquivo
@@ -269,8 +269,8 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
tmp = csync_statedb_get_stat_by_hash(ctx, h);
if(_last_db_return_error(ctx)) {
SAFE_FREE(st);
SAFE_FREE(tmp);
csync_file_stat_free(st);
csync_file_stat_free(tmp);
ctx->status_code = CSYNC_STATUS_UNSUCCESSFUL;
return -1;
}
@@ -357,7 +357,7 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
enum csync_vio_file_type_e tmp_vio_type = CSYNC_VIO_FILE_TYPE_UNKNOWN;
/* tmp might point to malloc mem, so free it here before reusing tmp */
SAFE_FREE(tmp);
csync_file_stat_free(tmp);
/* check if it's a file and has been renamed */
if (ctx->current == LOCAL_REPLICA) {
@@ -366,7 +366,7 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
tmp = csync_statedb_get_stat_by_inode(ctx, fs->inode);
if(_last_db_return_error(ctx)) {
SAFE_FREE(st);
csync_file_stat_free(st);
ctx->status_code = CSYNC_STATUS_UNSUCCESSFUL;
return -1;
}
@@ -422,7 +422,7 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
tmp = csync_statedb_get_stat_by_file_id(ctx, fs->file_id);
if(_last_db_return_error(ctx)) {
SAFE_FREE(st);
csync_file_stat_free(st);
ctx->status_code = CSYNC_STATUS_UNSUCCESSFUL;
return -1;
}
@@ -451,7 +451,7 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
if (fs->type == CSYNC_VIO_FILE_TYPE_DIRECTORY && ctx->current == REMOTE_REPLICA && ctx->callbacks.checkSelectiveSyncNewFolderHook) {
if (ctx->callbacks.checkSelectiveSyncNewFolderHook(ctx->callbacks.update_callback_userdata, path)) {
SAFE_FREE(st);
csync_file_stat_free(st);
return 1;
}
}
@@ -461,7 +461,7 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
}
} else {
CSYNC_LOG(CSYNC_LOG_PRIORITY_DEBUG, "Unable to open statedb" );
SAFE_FREE(st);
csync_file_stat_free(st);
ctx->status_code = CSYNC_STATUS_UNSUCCESSFUL;
return -1;
}
@@ -477,8 +477,6 @@ out:
st->error_status = CSYNC_STATUS_INDIVIDUAL_IGNORE_LIST; /* File listed on ignore list. */
} else if (excluded == CSYNC_FILE_EXCLUDE_INVALID_CHAR) {
st->error_status = CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS; /* File contains invalid characters. */
} else if (excluded == CSYNC_FILE_EXCLUDE_TRAILING_SPACE) {
st->error_status = CSYNC_STATUS_INDIVIDUAL_TRAILING_SPACE; /* File ends with a trailing space. */
} else if (excluded == CSYNC_FILE_EXCLUDE_LONG_FILENAME) {
st->error_status = CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME; /* File name is too long. */
} else if (excluded == CSYNC_FILE_EXCLUDE_HIDDEN ) {
@@ -525,14 +523,14 @@ out:
switch (ctx->current) {
case LOCAL_REPLICA:
if (c_rbtree_insert(ctx->local.tree, (void *) st) < 0) {
SAFE_FREE(st);
csync_file_stat_free(st);
ctx->status_code = CSYNC_STATUS_TREE_ERROR;
return -1;
}
break;
case REMOTE_REPLICA:
if (c_rbtree_insert(ctx->remote.tree, (void *) st) < 0) {
SAFE_FREE(st);
csync_file_stat_free(st);
ctx->status_code = CSYNC_STATUS_TREE_ERROR;
return -1;
}
+1
Ver Arquivo
@@ -56,6 +56,7 @@ void csync_vio_file_stat_destroy(csync_vio_file_stat_t *file_stat) {
SAFE_FREE(file_stat->directDownloadUrl);
SAFE_FREE(file_stat->directDownloadCookies);
SAFE_FREE(file_stat->name);
SAFE_FREE(file_stat->original_name);
SAFE_FREE(file_stat);
}
+1 -1
Ver Arquivo
@@ -141,7 +141,7 @@ csync_vio_file_stat_t *csync_vio_local_readdir(csync_vio_handle_t *dhandle) {
return file_stat;
err:
SAFE_FREE(file_stat);
csync_vio_file_stat_destroy(file_stat);
return NULL;
}
+13 -10
Ver Arquivo
@@ -167,16 +167,20 @@ csync_vio_file_stat_t *csync_vio_local_readdir(csync_vio_handle_t *dhandle) {
}
file_stat->name = c_utf8_from_locale(handle->ffd.cFileName);
file_stat->flags = CSYNC_VIO_FILE_FLAGS_NONE;
file_stat->fields |= CSYNC_VIO_FILE_STAT_FIELDS_TYPE;
if ( (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
&& (handle->ffd.dwReserved0 & IO_REPARSE_TAG_SYMLINK)
// The SIS or DEDUP flag points to a MS deduplication feature of
// certain file storage products. It is not a normal symlink
// that should be ignored.
&& (! (handle->ffd.dwReserved0 & IO_REPARSE_TAG_SIS))
&& (! (handle->ffd.dwReserved0 & IO_REPARSE_TAG_DEDUP)) ) {
file_stat->flags = CSYNC_VIO_FILE_FLAGS_SYMLINK;
file_stat->type = CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK;
if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
// Detect symlinks, and treat junctions as symlinks too.
if (handle->ffd.dwReserved0 == IO_REPARSE_TAG_SYMLINK
|| handle->ffd.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT) {
file_stat->flags |= CSYNC_VIO_FILE_FLAGS_SYMLINK;
file_stat->type = CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK;
} else {
// The SIS and DEDUP reparse points should be treated as
// regular files. We don't know about the other ones yet,
// but will also treat them normally for now.
file_stat->type = CSYNC_VIO_FILE_TYPE_REGULAR;
}
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DEVICE
|| handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE
|| handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
@@ -187,7 +191,6 @@ csync_vio_file_stat_t *csync_vio_local_readdir(csync_vio_handle_t *dhandle) {
file_stat->type = CSYNC_VIO_FILE_TYPE_REGULAR;
}
file_stat->flags = CSYNC_VIO_FILE_FLAGS_NONE;
/* Check for the hidden flag */
if( handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN ) {
file_stat->flags |= CSYNC_VIO_FILE_FLAGS_HIDDEN;
@@ -30,6 +30,7 @@
static void setup(void **state) {
CSYNC *csync;
int rc;
csync_create(&csync, "/tmp/check_csync1", "/tmp/check_csync2");
+1
Ver Arquivo
@@ -74,6 +74,7 @@ static void teardown(void **state) {
static void check_csync_init(void **state)
{
CSYNC *csync = *state;
int rc;
csync_init(csync);
-7
Ver Arquivo
@@ -31,13 +31,6 @@ use strict;
print "Hello, this is t6, a tester for csync with ownCloud.\n";
# Checking CURL is installed to avoid misleading errors later...
system(("curl", "--help", ">", "/dev/null"));
if ($? != 0) {
print "CURL is needed for this script, aborting with error\n";
exit 1;
}
initTesting();
sub createPostUpdateScript($)
+2 -2
Ver Arquivo
@@ -174,8 +174,8 @@ In order to make setup simple, you can use the provided Dockerfile to build your
2. From within the source tree Run the docker instance::
docker run owncloud-client-win32:<version> -v "$PWD:/home/jenkins/client" \
admin/win/docker/build.sh $(id -u)
docker run -v "$PWD:/home/user/client" owncloud-client-win32:<version> \
/home/user/client/admin/win/docker/build.sh client/ $(id -u)
It will run the build, create an NSIS based installer, as well as run tests.
You will find the resulting binary in an newly created ``build-win32`` subfolder.
+1 -1
Ver Arquivo
@@ -40,7 +40,7 @@ logs.
1. Output of `owncloud --logwindow` or `owncloud --logfile log.txt`
(On Windows using `cmd.exe`, you might need to first `cd` into the ownCloud directory)
(See also http://doc.owncloud.org/desktop/2.2/troubleshooting.html#client-logfile )
(See also http://doc.owncloud.org/desktop/1.8/troubleshooting.html#client-logfile )
2. Web server error log:
+245 -7
Ver Arquivo
@@ -56,7 +56,206 @@ X-GNOME-Autostart-Delay=3
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
# Translations
Comment[oc]=@APPLICATION_NAME@ sincronizacion del client
GenericName[oc]=Dorsièr de Sincronizacion
Name[oc]=@APPLICATION_NAME@ sincronizacion del client
Icon[oc]=@APPLICATION_EXECUTABLE@
Comment[ar]=@APPLICATION_NAME@ زبون مزامنة مكتبي
GenericName[ar]=مزامنة المجلد
Name[ar]=@APPLICATION_NAME@ زبون مزامنة مكتبي
Icon[ar]=@APPLICATION_EXECUTABLE@
Comment[ca]=Client de sincronització d'escriptori @APPLICATION_NAME@
GenericName[ca]=Sincronització de carpetes
Name[ca]=Client de sincronització d'escriptori @APPLICATION_NAME@
@@ -73,6 +272,8 @@ Comment[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
GenericName[ja_JP]=フォルダ同期
Name[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
Icon[ja_JP]=@APPLICATION_EXECUTABLE@
GenericName[el]=Συγχρονισμός φακέλου
Icon[el]=@APPLICATION_EXECUTABLE@
Comment[en_GB]=@APPLICATION_NAME@ desktop synchronisation client
GenericName[en_GB]=Folder Sync
Name[en_GB]=@APPLICATION_NAME@ desktop sync client
@@ -85,6 +286,10 @@ Comment[de_DE]=@APPLICATION_NAME@ Desktop-Synchronisationsclient
GenericName[de_DE]=Ordner-Synchronisation
Name[de_DE]=@APPLICATION_NAME@ Desktop-Synchronisationsclient
Icon[de_DE]=@APPLICATION_EXECUTABLE@
Comment[pl]=@APPLICATION_NAME@ klient synchronizacji dla komputerów stacjonarnych
GenericName[pl]=Folder Synchronizacji
Name[pl]=@APPLICATION_NAME@ klient synchronizacji dla komputerów stacjonarnych
Icon[pl]=@APPLICATION_EXECUTABLE@
Comment[fr]=@APPLICATION_NAME@ synchronisation du client
GenericName[fr]=Dossier de Synchronisation
Name[fr]=@APPLICATION_NAME@ synchronisation du client
@@ -108,10 +313,18 @@ Icon[it]=@APPLICATION_EXECUTABLE@
Comment[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
GenericName[ko]=폴더 동기화
Name[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
Comment[hu_HU]=@APPLICATION_NAME@ asztali szinkronizációs kliens
GenericName[hu_HU]=Könyvtár szinkronizálás
Name[hu_HU]=@APPLICATION_NAME@ asztali szinkr. kliens
Icon[hu_HU]=@APPLICATION_EXECUTABLE@
Comment[nl]=@APPLICATION_NAME@ desktop synchronisatie client
GenericName[nl]=Mappen sync
Name[nl]=@APPLICATION_NAME@ desktop sync client
Icon[nl]=@APPLICATION_EXECUTABLE@
Comment[et_EE]=@APPLICATION_NAME@ sünkroonimise klient töölauale
GenericName[et_EE]=Kaustade sünkroonimine
Name[et_EE]=@APPLICATION_NAME@ sünkroonimise klient töölauale
Icon[et_EE]=@APPLICATION_EXECUTABLE@
Comment[bg_BG]=@APPLICATION_NAME@ клиент за десктоп синхронизация
GenericName[bg_BG]=Синхронизиране на папката
Name[bg_BG]=@APPLICATION_NAME@ клиент десктоп синхронизация
@@ -136,9 +349,17 @@ Comment[sq]=Klient njëkohësimesh @APPLICATION_NAME@ për desktop
GenericName[sq]=Njëkohësim Dosjesh
Name[sq]=Klient njëkohësimesh @APPLICATION_NAME@ për desktop
Icon[sq]=@APPLICATION_EXECUTABLE@
Comment[tr]=@APPLICATION_NAME@ masaüstü senkronizasyon istemcisi
GenericName[tr]=Dosya Senkronizasyonu
Name[tr]=@APPLICATION_NAME@ masaüstü senkronizasyon istemcisi
Comment[fi_FI]=@APPLICATION_NAME@ työpöytäsynkronointisovellus
GenericName[fi_FI]=Kansion synkronointi
Name[fi_FI]=@APPLICATION_NAME@ työpöytäsynkronointisovellus
Icon[fi_FI]=@APPLICATION_EXECUTABLE@
Comment[sv]=@APPLICATION_NAME@ desktop synkroniseringsklient
GenericName[sv]=Mappsynk
Name[sv]=@APPLICATION_NAME@ desktop synk-klient
Icon[sv]=@APPLICATION_EXECUTABLE@
Comment[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi
GenericName[tr]=Dosya Eşitleme
Name[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi
Icon[tr]=@APPLICATION_EXECUTABLE@
Comment[uk]=Настільний клієнт синхронізації @APPLICATION_NAME@
GenericName[uk]=Синхронізація теки
@@ -153,11 +374,28 @@ GenericName[zh_CN]=文件夹同步
Name[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端
Icon[zh_CN]=@APPLICATION_EXECUTABLE@
GenericName[zh_TW]=資料夾同步
Comment[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização para PC
GenericName[pt_PT]=Sincronizar Pasta
Name[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização para PC
Icon[pt_PT]=@APPLICATION_EXECUTABLE@
Comment[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo programa
GenericName[lt_LT]=Katalogo sinchnorizacija
Name[lt_LT]=@APPLICATION_NAME@ darbalaukio programa
Icon[lt_LT]=@APPLICATION_EXECUTABLE@
Comment[th_TH]=@APPLICATION_NAME@ ไคลเอนต์ประสานข้อมูลเดสก์ท็อป
GenericName[th_TH]=ประสานข้อมูลโฟลเดอร์
Name[th_TH]= @APPLICATION_NAME@ ไคลเอนต์ประสานข้อมูลเดสก์ท็อป
Icon[th_TH]=@APPLICATION_EXECUTABLE@
Comment[nb_NO]=@APPLICATION_NAME@ skrivebordssynkroniseringsklient
GenericName[nb_NO]=Mappesynkronisering
Name[nb_NO]=@APPLICATION_NAME@ skrivebordssynkroniseringsklient
Icon[nb_NO]=@APPLICATION_EXECUTABLE@
Comment[nn_NO]=@APPLICATION_NAME@ klient for å synkronisera frå skrivebord
GenericName[nn_NO]=Mappe synkronisering
Name[nn_NO]=@APPLICATION_NAME@ klient for å synkronisera frå skrivebord
Icon[nn_NO]=@APPLICATION_EXECUTABLE@
Comment[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização para PC
GenericName[pt_PT]=Sincronizar Pasta
Name[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização para PC
Icon[pt_PT]=@APPLICATION_EXECUTABLE@
Icon[km]=@APPLICATION_EXECUTABLE@
Comment[lb]=@APPLICATION_NAME@ Desktop Synchronisatioun Client
GenericName[lb]=Dossier Dync
Name[lb]=@APPLICATION_NAME@ Desktop Sync Client
Icon[lb]=@APPLICATION_EXECUTABLE@
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2015 ownCloud, Inc. All rights reserved.
* Copyright (c) 2015 ownCloud GmbH. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@@ -12,7 +12,7 @@
*/
/**
* Copyright (c) 2014 ownCloud, Inc. All rights reserved.
* Copyright (c) 2014 ownCloud GmbH. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
Arquivo binário não exibido.
@@ -59,22 +59,22 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x86</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x64</TargetName>
</PropertyGroup>
@@ -89,10 +89,13 @@
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x86.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCContextMenu.def</ModuleDefinitionFile>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -108,14 +111,17 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x86.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCContextMenu.def</ModuleDefinitionFile>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>OCContextMenu.def</ModuleDefinitionFile>
<AdditionalDependencies>OCUtil_x64.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -127,6 +133,9 @@
<Optimization>Disabled</Optimization>
<PrecompiledHeader />
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -134,12 +143,15 @@
<PreprocessorDefinitions>NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x64.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCContextMenu.def</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
@@ -110,17 +110,17 @@ IFACEMETHODIMP OCOverlay::GetPriority(int *pPriority)
// we order this in terms of likelyhood
switch (_state) {
case State_OK:
*pPriority = 0;
*pPriority = 0; break;
case State_OKShared:
*pPriority = 1;
*pPriority = 1; break;
case State_Warning:
*pPriority = 2;
*pPriority = 2; break;
case State_Sync:
*pPriority = 3;
*pPriority = 3; break;
case State_Error:
*pPriority = 4;
*pPriority = 4; break;
default:
*pPriority = 5;
*pPriority = 5; break;
}
return S_OK;
Arquivo binário não exibido.
@@ -66,25 +66,25 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x86</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x64</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x86</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x64</TargetName>
<TargetExt>.dll</TargetExt>
@@ -99,11 +99,14 @@
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCOverlays.def</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
@@ -114,11 +117,14 @@
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCOverlays.def</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -133,11 +139,14 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCOverlays.def</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -152,11 +161,14 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>OCUtil_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>OCOverlays.def</ModuleDefinitionFile>
<SubSystem>Windows</SubSystem>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="DllMain.cpp" />
@@ -45,7 +45,7 @@ std::wstring getUserName() {
std::wstring CommunicationSocket::DefaultPipePath()
{
auto pipename = std::wstring(L"\\\\.\\pipe\\");
pipename += L"ownCloud\\";
pipename += L"ownCloud-";
pipename += getUserName();
return pipename;
}
+5 -4
Ver Arquivo
@@ -67,26 +67,26 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.dll</TargetExt>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x86</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.dll</TargetExt>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<TargetName>$(ProjectName)_x64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>$(ProjectName)_x64</TargetName>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetExt>.dll</TargetExt>
<TargetName>$(ProjectName)_x86</TargetName>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<OutDir>$(SolutionDir)..\..\binary\shell_integration\windows\$(Configuration)\$(Platform)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
@@ -155,6 +155,7 @@
<ClInclude Include="CommunicationSocket.h" />
<ClInclude Include="FileUtil.h" />
<ClInclude Include="RegistryUtil.h" />
<ClInclude Include="Version.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="CommunicationSocket.cpp" />
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2014 ownCloud, Inc. All rights reserved.
* Copyright (c) 2014 ownCloud GmbH. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2014 ownCloud, Inc. All rights reserved.
* Copyright (c) 2014 ownCloud GmbH. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2014 ownCloud, Inc. All rights reserved.
* Copyright (c) 2014 ownCloud GmbH. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2014 ownCloud, Inc. All rights reserved.
* Copyright (c) 2014 ownCloud GmbH. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
+11
Ver Arquivo
@@ -0,0 +1,11 @@
#pragma once
// This is the number that will end up in the version window of the DLLs.
// Increment this version before committing a new build if you are today's shell_integration build master.
#define OCEXT_BUILD_NUM 43
#define STRINGIZE2(s) #s
#define STRINGIZE(s) STRINGIZE2(s)
#define OCEXT_VERSION 1,0,0,OCEXT_BUILD_NUM
#define OCEXT_VERSION_STRING STRINGIZE(OCEXT_VERSION)
+20 -3
Ver Arquivo
@@ -272,6 +272,12 @@ void selectiveSyncFixup(OCC::SyncJournalDb *journal, const QStringList &newList)
int main(int argc, char **argv) {
QCoreApplication app(argc, argv);
#ifdef Q_OS_WIN
// Ensure OpenSSL config file is only loaded from app directory
QString opensslConf = QCoreApplication::applicationDirPath()+QString("/openssl.cnf");
qputenv("OPENSSL_CONF", opensslConf.toLocal8Bit());
#endif
qsrand(QTime::currentTime().msec() * QCoreApplication::applicationPid());
CmdOptions options;
@@ -443,16 +449,27 @@ restart_sync:
QObject::connect(&engine, SIGNAL(finished(bool)), &app, SLOT(quit()));
QObject::connect(&engine, SIGNAL(transmissionProgress(ProgressInfo)), &cmd, SLOT(transmissionProgressSlot()));
// Exclude lists
engine.excludedFiles().addExcludeFilePath(ConfigFile::excludeFileFromSystem());
if( QFile::exists(options.exclude) )
bool hasUserExcludeFile = !options.exclude.isEmpty();
QString systemExcludeFile = ConfigFile::excludeFileFromSystem();
// Always try to load the user-provided exclude list if one is specified
if ( hasUserExcludeFile ) {
engine.excludedFiles().addExcludeFilePath(options.exclude);
}
// Load the system list if available, or if there's no user-provided list
if ( !hasUserExcludeFile || QFile::exists(systemExcludeFile) ) {
engine.excludedFiles().addExcludeFilePath(systemExcludeFile);
}
if (!engine.excludedFiles().reloadExcludes()) {
// Always make sure at least one list has been loaded
qFatal("Cannot load system exclude list or list supplied via --exclude");
return EXIT_FAILURE;
}
// Have to be done async, else, an error before exec() does not terminate the event loop.
QMetaObject::invokeMethod(&engine, "startSync", Qt::QueuedConnection);
+5 -7
Ver Arquivo
@@ -213,14 +213,12 @@ AccountPtr AccountManager::loadAccountHelper(QSettings& settings)
QString authType = settings.value(QLatin1String(authTypeC)).toString();
QString overrideUrl = Theme::instance()->overrideServerUrl();
if( !overrideUrl.isEmpty() ) {
// if there is a overrideUrl, don't even bother reading from the config as all the accounts
// must use the overrideUrl
QString forceAuth = Theme::instance()->forceConfigAuthType();
if(!forceAuth.isEmpty() && !overrideUrl.isEmpty() ) {
// If forceAuth is set, this might also mean the overrideURL has changed.
// See enterprise issues #1126
acc->setUrl(overrideUrl);
auto forceAuth = Theme::instance()->forceConfigAuthType();
if (!forceAuth.isEmpty()) {
authType = forceAuth;
}
authType = forceAuth;
} else {
acc->setUrl(settings.value(QLatin1String(urlC)).toUrl());
}
+7 -1
Ver Arquivo
@@ -159,7 +159,13 @@ void AccountSettings::createAccountToolbox()
void AccountSettings::slotOpenAccountWizard()
{
if (QSystemTrayIcon::isSystemTrayAvailable()) {
if (
#if QT_VERSION > QT_VERSION_CHECK(5, 0, 0)
qgetenv("QT_QPA_PLATFORMTHEME") == "appmenu-qt5" ||
// We can't call isSystemTrayAvailable with appmenu-qt5 because it breaks the systemtray
// (issue #4693, #4944)
#endif
QSystemTrayIcon::isSystemTrayAvailable()) {
topLevelWidget()->close();
}
#ifdef Q_OS_MAC
-16
Ver Arquivo
@@ -248,9 +248,6 @@ void ActivityWidget::slotBuildNotificationDisplay(const ActivityList& list)
QHash<QString, int> accNotified;
QString listAccountName;
// Whether a new notification widget was added to the notificationLayout.
bool newNotificationShown = false;
foreach( auto activity, list ) {
if( _blacklistedNotifications.contains(activity)) {
qDebug() << Q_FUNC_INFO << "Activity in blacklist, skip";
@@ -274,7 +271,6 @@ void ActivityWidget::slotBuildNotificationDisplay(const ActivityList& list)
_ui->_notifyScroll->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContentsOnFirstShow);
#endif
_widgetForNotifId[activity.ident()] = widget;
newNotificationShown = true;
}
widget->setActivity( activity );
@@ -369,10 +365,6 @@ void ActivityWidget::slotBuildNotificationDisplay(const ActivityList& list)
const QString log = tr("%1 Notifications - Action Required").arg(Theme::instance()->appNameGUI());
emit guiLog( log, msg);
}
if (newNotificationShown) {
emit newNotification();
}
}
void ActivityWidget::slotSendNotificationRequest(const QString& accountName, const QString& link, const QByteArray& verb)
@@ -525,7 +517,6 @@ ActivitySettings::ActivitySettings(QWidget *parent)
connect(_activityWidget, SIGNAL(copyToClipboard()), this, SLOT(slotCopyToClipboard()));
connect(_activityWidget, SIGNAL(hideActivityTab(bool)), this, SLOT(setActivityTabHidden(bool)));
connect(_activityWidget, SIGNAL(guiLog(QString,QString)), this, SIGNAL(guiLog(QString,QString)));
connect(_activityWidget, SIGNAL(newNotification()), SLOT(slotShowActivityTab()));
_protocolWidget = new ProtocolWidget(this);
_tab->insertTab(1, _protocolWidget, Theme::instance()->syncStateIcon(SyncResult::Success), tr("Sync Protocol"));
@@ -591,13 +582,6 @@ void ActivitySettings::slotShowIssueItemCount(int cnt)
_tab->setTabText(_syncIssueTabId, cntText);
}
void ActivitySettings::slotShowActivityTab()
{
if (_activityTabId != -1) {
_tab->setCurrentIndex(_activityTabId);
}
}
void ActivitySettings::slotCopyToClipboard()
{
QString text;
+1 -2
Ver Arquivo
@@ -81,7 +81,7 @@ signals:
void copyToClipboard();
void rowsInserted();
void hideActivityTab(bool);
void newNotification();
void newNotificationList(const ActivityList& list);
private slots:
void slotBuildNotificationDisplay(const ActivityList& list);
@@ -143,7 +143,6 @@ private slots:
void setActivityTabHidden(bool hidden);
void slotRegularNotificationCheck();
void slotShowIssueItemCount(int cnt);
void slotShowActivityTab();
signals:
void guiLog(const QString&, const QString&);
+18
Ver Arquivo
@@ -105,6 +105,12 @@ Application::Application(int &argc, char **argv) :
{
_startedAt.start();
#ifdef Q_OS_WIN
// Ensure OpenSSL config file is only loaded from app directory
QString opensslConf = QCoreApplication::applicationDirPath()+QString("/openssl.cnf");
qputenv("OPENSSL_CONF", opensslConf.toLocal8Bit());
#endif
// TODO: Can't set this without breaking current config paths
// setOrganizationName(QLatin1String(APPLICATION_VENDOR));
setOrganizationDomain(QLatin1String(APPLICATION_REV_DOMAIN));
@@ -139,6 +145,7 @@ Application::Application(int &argc, char **argv) :
setupTranslations();
// Setup global excludes
qDebug() << "Loading global exclude list";
ConfigFile cfg;
ExcludedFiles& excludes = ExcludedFiles::instance();
excludes.addExcludeFilePath( cfg.excludeFile(ConfigFile::SystemScope) );
@@ -335,6 +342,14 @@ void Application::slotownCloudWizardDone( int res )
}
}
static void csyncLogCatcher(int /*verbosity*/,
const char */*function*/,
const char *buffer,
void */*userdata*/)
{
Logger::instance()->csyncLog( QString::fromUtf8(buffer) );
}
void Application::setupLogging()
{
// might be called from second instance
@@ -350,6 +365,9 @@ void Application::setupLogging()
.arg(property("ui_lang").toString())
.arg(_theme->version());
// Setup CSYNC logging to forward to our own logger
csync_set_log_callback( csyncLogCatcher );
csync_set_log_level( Logger::instance()->isNoop() ? 0 : 11 );
}
void Application::slotUseMonoIconsChanged(bool)
+14 -1
Ver Arquivo
@@ -20,6 +20,7 @@
#include <QMessageBox>
#include <QNetworkReply>
#include <QSettings>
#include <QMainWindow>
#include "creds/shibboleth/shibbolethwebview.h"
#include "creds/shibbolethcredentials.h"
@@ -74,10 +75,23 @@ ShibbolethWebView::ShibbolethWebView(AccountPtr account, QWidget* parent)
connect(page->networkAccessManager()->cookieJar(),
SIGNAL(newCookiesForUrl (QList<QNetworkCookie>, QUrl)),
this, SLOT(onNewCookiesForUrl (QList<QNetworkCookie>, QUrl)));
page->mainFrame()->load(account->url());
this->setPage(page);
setWindowTitle(tr("%1 - Authenticate").arg(Theme::instance()->appNameGUI()));
// Debug view to display the cipher suite
if( !qgetenv("OWNCLOUD_SHIBBOLETH_DEBUG").isEmpty() ) {
// open an additional window to display some cipher debug info
QWebPage *debugPage = new UserAgentWebPage(this);
debugPage->mainFrame()->load( QUrl("https://cc.dcsec.uni-hannover.de/"));
QWebView *debugView = new QWebView(this);
debugView->setPage(debugPage);
QMainWindow *window = new QMainWindow(this);
window->setWindowTitle(tr("SSL Chipher Debug View"));
window->setCentralWidget(debugView);
window->show();
}
// If we have a valid cookie, it's most likely expired. We can use this as
// as a criteria to tell the user why the browser window pops up
QNetworkCookie shibCookie = ShibbolethCredentials::findShibCookie(_account.data(), ShibbolethCredentials::accountCookies(_account.data()));
@@ -142,7 +156,6 @@ void ShibbolethWebView::slotLoadFinished(bool success)
if (!success) {
qDebug() << Q_FUNC_INFO << "Could not load Shibboleth login page to log you in.";
}
}
+7 -11
Ver Arquivo
@@ -46,14 +46,6 @@
namespace OCC {
static void csyncLogCatcher(int /*verbosity*/,
const char */*function*/,
const char *buffer,
void */*userdata*/)
{
Logger::instance()->csyncLog( QString::fromUtf8(buffer) );
}
Folder::Folder(const FolderDefinition& definition,
AccountState* accountState,
@@ -121,6 +113,8 @@ Folder::Folder(const FolderDefinition& definition,
Folder::~Folder()
{
// Reset then engine first as it will abort and try to access members of the Folder
_engine.reset();
}
void Folder::checkLocalPath()
@@ -695,6 +689,10 @@ void Folder::wipe()
bool Folder::setIgnoredFiles()
{
// Note: Doing this on each sync run and on Folder construction is
// unnecessary, because _engine->excludedFiles() persists between
// sync runs. This is not a big problem because ExcludedFiles maintains
// a QSet of files to load.
ConfigFile cfg;
QString systemList = cfg.excludeFile(ConfigFile::SystemScope);
if( QFile::exists(systemList) ) {
@@ -726,8 +724,6 @@ void Folder::startSync(const QStringList &pathList)
if (proxyDirty()) {
setProxyDirty(false);
}
csync_set_log_callback( csyncLogCatcher );
csync_set_log_level( Logger::instance()->isNoop() ? 0 : 11 );
if (isBusy()) {
qCritical() << "* ERROR csync is still running and new sync requested.";
@@ -1002,7 +998,7 @@ void Folder::slotAboutToRemoveAllFiles(SyncFileItem::Direction, bool *cancel)
void Folder::slotAboutToRestoreBackup(bool *restore)
{
QString msg =
tr("This sync would reset the files to an earlier time in the sync folder '%1'.\n"
tr("This sync would reset the files to an erlier time in the sync folder '%1'.\n"
"This might be because a backup was restored on the server.\n"
"Continuing the sync as normal will cause all your files to be overwritten by an older "
"file in an earlier state. "
+2 -1
Ver Arquivo
@@ -849,7 +849,8 @@ Folder *FolderMan::folderForPath(const QString &path)
foreach(Folder* folder, this->map().values()) {
const QString folderPath = folder->cleanPath()+QLatin1Char('/');
if(absolutePath.startsWith(folderPath)) {
if(absolutePath.startsWith(folderPath, (Utility::isWindows() || Utility::isMac())?
Qt::CaseInsensitive : Qt::CaseSensitive)) {
//qDebug() << "found folder: " << folder->path() << " for " << absolutePath;
return folder;
}
+1 -1
Ver Arquivo
@@ -584,7 +584,7 @@ void FolderStatusModel::slotUpdateDirectories(const QStringList &list)
QStringList sortedSubfolders = list;
// skip the parent item (first in the list)
sortedSubfolders.erase(sortedSubfolders.begin());
Utility::sortFilenames(sortedSubfolders);
sortedSubfolders.sort();
QVarLengthArray<int, 10> undecidedIndexes;
+1 -1
Ver Arquivo
@@ -308,7 +308,7 @@ void FolderWizardRemotePath::slotUpdateDirectories(const QStringList &list)
root->setData(0, Qt::UserRole, "/");
}
QStringList sortedList = list;
Utility::sortFilenames(sortedList);
sortedList.sort();
foreach (QString path, sortedList) {
path.remove(webdavFolder);
QStringList paths = path.split('/');
-8
Ver Arquivo
@@ -161,12 +161,4 @@ void GeneralSettings::slotIgnoreFilesEditor()
}
}
void GeneralSettings::slotOpenAccountWizard()
{
if (QSystemTrayIcon::isSystemTrayAvailable()) {
topLevelWidget()->close();
}
OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)), 0);
}
} // namespace OCC
-1
Ver Arquivo
@@ -44,7 +44,6 @@ private slots:
void slotToggleOptionalDesktopNotifications(bool);
void slotUpdateInfo();
void slotIgnoreFilesEditor();
void slotOpenAccountWizard();
private:
void loadMiscSettings();
+2
Ver Arquivo
@@ -58,6 +58,8 @@ int main(int argc, char **argv)
// not set this envoronment variable)
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
#else
qputenv("QT_DEVICE_PIXEL_RATIO", "auto"); // See #4840, #4994
#endif
#endif // !Q_OS_WIN
+19 -4
Ver Arquivo
@@ -47,6 +47,19 @@ void OcsJob::appendPath(const QString &id)
setPath(path() + QLatin1Char('/') + id);
}
static QList<QPair<QByteArray, QByteArray>>
percentEncodeQueryItems(
const QList<QPair<QString, QString>> & items)
{
QList<QPair<QByteArray, QByteArray>> result;
foreach (const auto& item, items) {
result.append(qMakePair(
QUrl::toPercentEncoding(item.first),
QUrl::toPercentEncoding(item.second)));
}
return result;
}
void OcsJob::start()
{
QNetworkRequest req;
@@ -57,7 +70,9 @@ void OcsJob::start()
QBuffer *buffer = new QBuffer;
if (_verb == "GET") {
url.setQueryItems(_params);
// Note: QUrl::setQueryItems() does not fully percent encode
// the query items, see #5042
url.setEncodedQueryItems(percentEncodeQueryItems(_params));
} else if (_verb == "POST" || _verb == "PUT") {
// Url encode the _postParams and put them in a buffer.
QByteArray postData;
@@ -73,9 +88,9 @@ void OcsJob::start()
}
//We want json data
auto queryItems = url.queryItems();
queryItems.append(qMakePair(QString::fromLatin1("format"), QString::fromLatin1("json")));
url.setQueryItems(queryItems);
auto queryItems = url.encodedQueryItems();
queryItems.append(qMakePair(QByteArray("format"), QByteArray("json")));
url.setEncodedQueryItems(queryItems);
setReply(davRequest(_verb, url, req, buffer));
setupConnections(reply());
+19 -1
Ver Arquivo
@@ -367,7 +367,7 @@ void ownCloudGui::addAccountContextMenu(AccountStatePtr accountState, QMenu *men
menu->addAction(tr("Managed Folders:"))->setDisabled(true);
}
QAction *action = new QAction( tr("Open folder '%1'").arg(folder->shortGuiLocalPath()), this );
QAction *action = new QAction( tr("Open folder '%1'").arg(folder->shortGuiLocalPath()), menu );
connect(action, SIGNAL(triggered()),_folderOpenActionMapper, SLOT(map()));
_folderOpenActionMapper->setMapping( action, folder->alias() );
menu->addAction(action);
@@ -399,8 +399,26 @@ void ownCloudGui::addAccountContextMenu(AccountStatePtr accountState, QMenu *men
}
static bool minimalTrayMenu()
{
static QByteArray var = qgetenv("OWNCLOUD_MINIMAL_TRAY_MENU");
return !var.isEmpty();
}
void ownCloudGui::setupContextMenu()
{
// The tray menu is surprisingly problematic. Being able to switch to
// a minimal version of it is a useful workaround and testing tool.
if (minimalTrayMenu()) {
if (!_contextMenu) {
_contextMenu.reset(new QMenu());
_recentActionsMenu = new QMenu(tr("Recent Changes"), _contextMenu.data());
_tray->setContextMenu(_contextMenu.data());
_contextMenu->addAction(_actionQuit);
}
return;
}
auto accountList = AccountManager::instance()->accounts();
bool isConfigured = (!accountList.isEmpty());
+7 -9
Ver Arquivo
@@ -121,17 +121,9 @@ void ProtocolWidget::hideEvent(QHideEvent *ev)
void ProtocolWidget::cleanItems(const QString& folder)
{
int itemCnt = _ui->_treeWidget->topLevelItemCount();
// Limit the number of items
while(itemCnt > 2000) {
delete _ui->_treeWidget->takeTopLevelItem(itemCnt - 1);
itemCnt--;
}
// The issue list is a state, clear it and let the next sync fill it
// with ignored files and propagation errors.
itemCnt = _issueItemView->topLevelItemCount();
int itemCnt = _issueItemView->topLevelItemCount();
for( int cnt = itemCnt-1; cnt >=0 ; cnt-- ) {
QTreeWidgetItem *item = _issueItemView->topLevelItem(cnt);
QString itemFolder = item->data(2, Qt::UserRole).toString();
@@ -239,6 +231,12 @@ void ProtocolWidget::slotItemCompleted(const QString &folder, const SyncFileItem
_issueItemView->insertTopLevelItem(0, line);
emit issueItemCountUpdated(_issueItemView->topLevelItemCount());
} else {
// Limit the number of items
int itemCnt = _ui->_treeWidget->topLevelItemCount();
while(itemCnt > 2000) {
delete _ui->_treeWidget->takeTopLevelItem(itemCnt - 1);
itemCnt--;
}
_ui->_treeWidget->insertTopLevelItem(0, line);
}
}
+1 -1
Ver Arquivo
@@ -222,7 +222,7 @@ void SelectiveSyncTreeView::slotUpdateDirectories(QStringList list)
}
}
Utility::sortFilenames(list);
list.sort();
foreach (QString path, list) {
auto size = job ? job->_sizes.value(path) : 0;
path.remove(pathToRemove);
-26
Ver Arquivo
@@ -16,7 +16,6 @@
#include "ui_sharelinkwidget.h"
#include "account.h"
#include "capabilities.h"
#include "creds/abstractcredentials.h"
#include "share.h"
@@ -24,7 +23,6 @@
#include <QBuffer>
#include <QClipboard>
#include <QFileInfo>
#include <QDesktopServices>
namespace OCC {
@@ -55,10 +53,6 @@ ShareLinkWidget::ShareLinkWidget(AccountPtr account,
_ui->pushButton_copy->setEnabled(false);
connect(_ui->pushButton_copy, SIGNAL(clicked(bool)), SLOT(slotPushButtonCopyLinkPressed()));
_ui->pushButton_mail->setIcon(QIcon::fromTheme("mail-send"));
_ui->pushButton_mail->setEnabled(false);
connect(_ui->pushButton_mail, SIGNAL(clicked(bool)), SLOT(slotPushButtonMailLinkPressed()));
// the following progress indicator widgets are added to layouts which makes them
// automatically deleted once the dialog dies.
_pi_link = new QProgressIndicator();
@@ -230,7 +224,6 @@ void ShareLinkWidget::slotSharesFetched(const QList<QSharedPointer<Share>> &shar
if (share->getShareType() == Share::TypeLink) {
_share = qSharedPointerDynamicCast<LinkShare>(share);
_ui->pushButton_copy->show();
_ui->pushButton_mail->show();
_ui->widget_shareLink->show();
_ui->checkBox_shareLink->setChecked(true);
@@ -275,7 +268,6 @@ void ShareLinkWidget::slotSharesFetched(const QList<QSharedPointer<Share>> &shar
}
setShareLink(_share->getLink().toString());
_ui->pushButton_mail->setEnabled(true);
_ui->pushButton_copy->setEnabled(true);
// Connect all shares signals to gui slots
@@ -332,7 +324,6 @@ void ShareLinkWidget::setShareLink( const QString& url )
if( realUrl.isValid() ) {
_shareUrl = url;
_ui->pushButton_copy->setEnabled(true);
_ui->pushButton_mail->setEnabled(true);
} else {
_shareUrl.clear();
_ui->_labelShareLink->setText(QString::null);
@@ -348,7 +339,6 @@ void ShareLinkWidget::slotDeleteShareFetched()
_ui->lineEdit_password->clear();
_ui->_labelShareLink->clear();
_ui->pushButton_copy->setEnabled(false);
_ui->pushButton_mail->setEnabled(false);
_ui->widget_shareLink->hide();
_ui->lineEdit_password->hide();
_ui->pushButton_setPassword->setEnabled(false);
@@ -378,7 +368,6 @@ void ShareLinkWidget::slotCheckBoxShareLinkClicked()
_ui->checkBox_editing->setEnabled(false);
_ui->lineEdit_password->setFocus();
_ui->pushButton_copy->hide();
_ui->pushButton_mail->hide();
_ui->widget_shareLink->show();
slotCheckBoxPasswordClicked();
@@ -424,7 +413,6 @@ void ShareLinkWidget::slotCreateShareRequiresPassword(const QString& message)
_ui->lineEdit_password->setEnabled(true);
_ui->lineEdit_password->setFocus();
_ui->pushButton_copy->hide();
_ui->pushButton_mail->hide();
_ui->widget_shareLink->show();
_ui->checkBox_expire->setEnabled(false);
_ui->checkBox_editing->setEnabled(false);
@@ -485,20 +473,6 @@ void ShareLinkWidget::slotPushButtonCopyLinkPressed()
#endif
}
void ShareLinkWidget::slotPushButtonMailLinkPressed()
{
QString fileName = _sharePath.mid(_sharePath.lastIndexOf('/') + 1);
QDesktopServices::openUrl(QUrl(QString(
"mailto: "
"?subject=%1 has shared %2 with you"
"&body=%3").arg(
_account->credentials()->user(),
fileName,
_shareUrl),
QUrl::TolerantMode));
}
void ShareLinkWidget::slotCheckBoxEditingClicked()
{
ShareLinkWidget::setPublicUpload(_ui->checkBox_editing->checkState() == Qt::Checked);
-1
Ver Arquivo
@@ -68,7 +68,6 @@ private slots:
void slotPasswordReturnPressed();
void slotPasswordChanged(const QString& newText);
void slotPushButtonCopyLinkPressed();
void slotPushButtonMailLinkPressed();
void slotCheckBoxEditingClicked();
void slotPublicUploadSet();
-7
Ver Arquivo
@@ -195,13 +195,6 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_mail">
<property name="text">
<string>&amp;Mail link</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_copy">
<property name="text">
+8 -4
Ver Arquivo
@@ -248,10 +248,12 @@ void ShareUserGroupWidget::slotCompleterActivated(const QModelIndex & index)
layout->addWidget(indicator);
/*
* Don't send the reshare permissions for federataed shares
* Don't send the reshare permissions for federated shares for servers <9.1
* https://github.com/owncloud/core/issues/22122#issuecomment-185637344
* https://github.com/owncloud/client/issues/4996
*/
if (sharee->type() == Sharee::Federated) {
if (sharee->type() == Sharee::Federated
&& _account->serverVersionInt() < 0x090100) {
int permissions = SharePermissionRead | SharePermissionUpdate;
if (!_isFile) {
permissions |= SharePermissionCreate | SharePermissionDelete;
@@ -335,10 +337,12 @@ ShareWidget::ShareWidget(QSharedPointer<Share> share,
connect(_ui->permissionsEdit, SIGNAL(clicked(bool)), SLOT(slotEditPermissionsChanged()));
/*
* We don't show permssion share for federated shares
* We don't show permssion share for federated shares with server <9.1
* https://github.com/owncloud/core/issues/22122#issuecomment-185637344
* https://github.com/owncloud/client/issues/4996
*/
if (share->getShareType() == Share::TypeRemote) {
if (share->getShareType() == Share::TypeRemote
&& share->account()->serverVersionInt() < 0x090100) {
_ui->permissionShare->setVisible(false);
_ui->permissionToolButton->setVisible(false);
}
+1 -1
Ver Arquivo
@@ -74,7 +74,7 @@ SocketApi::SocketApi(QObject* parent)
if (Utility::isWindows()) {
socketPath = QLatin1String("\\\\.\\pipe\\")
+ QLatin1String("ownCloud") + '\\'
+ QLatin1String("ownCloud-")
+ QString::fromLocal8Bit(qgetenv("USERNAME"));
// TODO: once the windows extension supports multiple
// client connections, switch back to the theme name
+28 -25
Ver Arquivo
@@ -38,8 +38,6 @@ namespace OCC {
Account::Account(QObject *parent)
: QObject(parent)
, _capabilities(QVariantMap())
, _am(0)
, _credentials(0)
, _davPath( Theme::instance()->webDavPath() )
, _wasMigrated(false)
{
@@ -55,8 +53,6 @@ AccountPtr Account::create()
Account::~Account()
{
delete _credentials;
delete _am;
}
QString Account::davPath() const
@@ -117,14 +113,14 @@ bool Account::changed(AccountPtr other, bool ignoreUrlProtocol) const
changes = (_url == other->_url);
}
changes |= _credentials->changed(other->_credentials);
changes |= _credentials->changed(other->credentials());
return changes;
}
AbstractCredentials *Account::credentials() const
{
return _credentials;
return _credentials.data();
}
void Account::setCredentials(AbstractCredentials *cred)
@@ -135,29 +131,27 @@ void Account::setCredentials(AbstractCredentials *cred)
jar = _am->cookieJar();
jar->setParent(0);
_am->deleteLater();
}
if (_credentials) {
credentials()->deleteLater();
_am = QSharedPointer<QNetworkAccessManager>();
}
// The order for these two is important! Reading the credential's
// settings accesses the account as well as account->_credentials
_credentials = cred;
// settings accesses the account as well as account->_credentials,
// so deleteLater must be used.
_credentials = QSharedPointer<AbstractCredentials>(cred, &QObject::deleteLater);
cred->setAccount(this);
_am = _credentials->getQNAM();
_am = QSharedPointer<QNetworkAccessManager>(_credentials->getQNAM(), &QObject::deleteLater);
if (jar) {
_am->setCookieJar(jar);
}
connect(_am, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
connect(_am.data(), SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
SLOT(slotHandleSslErrors(QNetworkReply*,QList<QSslError>)));
connect(_am, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
connect(_am.data(), SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
connect(_credentials, SIGNAL(fetched()),
connect(_credentials.data(), SIGNAL(fetched()),
SLOT(slotCredentialsFetched()));
connect(_credentials, SIGNAL(asked()),
connect(_credentials.data(), SIGNAL(asked()),
SLOT(slotCredentialsAsked()));
}
@@ -196,18 +190,21 @@ void Account::resetNetworkAccessManager()
qDebug() << "Resetting QNAM";
QNetworkCookieJar* jar = _am->cookieJar();
_am->deleteLater();
_am = _credentials->getQNAM();
// Use a QSharedPointer to allow locking the life of the QNAM on the stack.
// Make it call deleteLater to make sure that we can return to any QNAM stack frames safely.
_am = QSharedPointer<QNetworkAccessManager>(_credentials->getQNAM(), &QObject::deleteLater);
_am->setCookieJar(jar); // takes ownership of the old cookie jar
connect(_am, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
connect(_am.data(), SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
SLOT(slotHandleSslErrors(QNetworkReply*,QList<QSslError>)));
connect(_am, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
connect(_am.data(), SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
}
QNetworkAccessManager *Account::networkAccessManager()
{
return _am;
return _am.data();
}
QNetworkReply *Account::headRequest(const QString &relPath)
@@ -430,6 +427,12 @@ void Account::slotHandleSslErrors(QNetworkReply *reply , QList<QSslError> errors
return;
}
// SslDialogErrorHandler::handleErrors will run an event loop that might execute
// the deleteLater() of the QNAM before we have the chance of unwinding our stack.
// Keep a ref here on our stackframe to make sure that it doesn't get deleted before
// handleErrors returns.
QSharedPointer<QNetworkAccessManager> qnamLock = _am;
if (_sslErrorHandler->handleErrors(errors, reply->sslConfiguration(), &approvedCerts, sharedFromThis())) {
QSslSocket::addDefaultCaCertificates(approvedCerts);
addApprovedCerts(approvedCerts);
@@ -459,12 +462,12 @@ void Account::slotHandleSslErrors(QNetworkReply *reply , QList<QSslError> errors
void Account::slotCredentialsFetched()
{
emit credentialsFetched(_credentials);
emit credentialsFetched(_credentials.data());
}
void Account::slotCredentialsAsked()
{
emit credentialsAsked(_credentials);
emit credentialsAsked(_credentials.data());
}
void Account::handleInvalidCredentials()
+2 -2
Ver Arquivo
@@ -214,8 +214,8 @@ private:
QString _serverVersion;
QScopedPointer<AbstractSslErrorHandler> _sslErrorHandler;
QuotaInfo *_quotaInfo;
QNetworkAccessManager *_am;
AbstractCredentials* _credentials;
QSharedPointer<QNetworkAccessManager> _am;
QSharedPointer<AbstractCredentials> _credentials;
/// Certificates that were explicitly rejected by the user
QList<QSslCertificate> _rejectedCertificates;
+2 -1
Ver Arquivo
@@ -73,7 +73,8 @@ bool Capabilities::shareResharing() const
bool Capabilities::notificationsAvailable() const
{
return _capabilities.contains("notifications");
// We require the OCS style API in 9.x, can't deal with the REST one only found in 8.2
return _capabilities.contains("notifications") && _capabilities["notifications"].toMap().contains("ocs-endpoints");
}
bool Capabilities::isValid() const
+1 -1
Ver Arquivo
@@ -42,7 +42,7 @@ ExcludedFiles& ExcludedFiles::instance()
void ExcludedFiles::addExcludeFilePath(const QString& path)
{
_excludeFiles.append(path);
_excludeFiles.insert(path);
}
bool ExcludedFiles::reloadExcludes()
+3 -2
Ver Arquivo
@@ -16,7 +16,8 @@
#include "owncloudlib.h"
#include <QObject>
#include <QStringList>
#include <QSet>
#include <QString>
extern "C" {
#include "std/c_string.h"
@@ -66,7 +67,7 @@ private:
// This is a pointer to the csync exclude list, its is owned by this class
// but the pointer can be in a csync_context so that it can itself also query the list.
c_strlist_t** _excludesPtr;
QStringList _excludeFiles;
QSet<QString> _excludeFiles;
};
} // namespace OCC
+8 -8
Ver Arquivo
@@ -496,16 +496,16 @@ QString FileSystem::fileSystemForPath(const QString & path)
}
#endif
#define BUFSIZE 1024*1024*10
#define BUFSIZE qint64(500*1024) // 500 KiB
static QByteArray readToCrypto( const QString& filename, QCryptographicHash::Algorithm algo )
{
const qint64 bufSize = BUFSIZE;
QByteArray buf(bufSize,0);
QFile file(filename);
const qint64 bufSize = qMin(BUFSIZE, file.size() + 1);
QByteArray buf(bufSize, Qt::Uninitialized);
QByteArray arr;
QCryptographicHash crypto( algo );
QFile file(filename);
if (file.open(QIODevice::ReadOnly)) {
qint64 size;
while (!file.atEnd()) {
@@ -532,11 +532,11 @@ QByteArray FileSystem::calcSha1( const QString& filename )
#ifdef ZLIB_FOUND
QByteArray FileSystem::calcAdler32( const QString& filename )
{
unsigned int adler = adler32(0L, Z_NULL, 0);
const qint64 bufSize = BUFSIZE;
QByteArray buf(bufSize, 0);
QFile file(filename);
const qint64 bufSize = qMin(BUFSIZE, file.size() + 1);
QByteArray buf(bufSize, Qt::Uninitialized);
unsigned int adler = adler32(0L, Z_NULL, 0);
if (file.open(QIODevice::ReadOnly)) {
qint64 size;
while (!file.atEnd()) {
+21
Ver Arquivo
@@ -542,6 +542,27 @@ void OwncloudPropagator::scheduleNextJob()
}
}
void OwncloudPropagator::addTouchedFile(const QString& fn)
{
QString file = QDir::cleanPath(fn);
QElapsedTimer timer;
timer.start();
QMutexLocker lock(&_touchedFilesMutex);
_touchedFiles.insert(file, timer);
}
qint64 OwncloudPropagator::timeSinceFileTouched(const QString& fn) const
{
QMutexLocker lock(&_touchedFilesMutex);
if (! _touchedFiles.contains(fn)) {
return -1;
}
return _touchedFiles[fn].elapsed();
}
AccountPtr OwncloudPropagator::account() const
{
return _account;
+16 -10
Ver Arquivo
@@ -330,6 +330,18 @@ public:
/** returns the size of chunks in bytes */
static quint64 chunkSize();
/** Records that a file was touched by a job.
*
* Thread-safe.
*/
void addTouchedFile(const QString& fn);
/** Get the ms since a file was touched, or -1 if it wasn't.
*
* Thread-safe.
*/
qint64 timeSinceFileTouched(const QString& fn) const;
AccountPtr account() const;
enum DiskSpaceResult
@@ -365,24 +377,18 @@ signals:
/** Emitted when propagation has problems with a locked file. */
void seenLockedFile(const QString &fileName);
/** Emitted when propagation touches a file.
*
* Used to track our own file modifications such that notifications
* from the file watcher about these can be ignored.
*/
void touchedFile(const QString &fileName);
private:
AccountPtr _account;
/** Stores the time since a job touched a file. */
QHash<QString, QElapsedTimer> _touchedFiles;
mutable QMutex _touchedFilesMutex;
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
// access to signals which are protected in Qt4
friend class PropagateDownloadFileQNAM;
friend class PropagateUploadFileQNAM;
friend class PropagateLocalMkdir;
friend class PropagateLocalRename;
friend class PropagateRemoteMove;
#endif
};
+3 -3
Ver Arquivo
@@ -592,8 +592,8 @@ void PropagateDownloadFileQNAM::deleteExistingFolder()
QString conflictDir = FileSystem::makeConflictFileName(
existingDir, Utility::qDateTimeFromTime_t(_item->_modtime));
emit _propagator->touchedFile(existingDir);
emit _propagator->touchedFile(conflictDir);
_propagator->addTouchedFile(existingDir);
_propagator->addTouchedFile(conflictDir);
QString renameError;
if (!FileSystem::rename(existingDir, conflictDir, &renameError)) {
done(SyncFileItem::NormalError, renameError);
@@ -753,7 +753,7 @@ void PropagateDownloadFileQNAM::downloadFinished()
}
QString error;
emit _propagator->touchedFile(fn);
_propagator->addTouchedFile(fn);
// The fileChanged() check is done above to generate better error messages.
if (!FileSystem::uncheckedRenameReplace(_tmpFile.fileName(), fn, &error)) {
qDebug() << Q_FUNC_INFO << QString("Rename failed: %1 => %2").arg(_tmpFile.fileName()).arg(fn);
+2 -2
Ver Arquivo
@@ -80,8 +80,8 @@ void PropagateRemoteMove::start()
QString versionString = _propagator->account()->serverVersion();
if (versionString.contains('.') && versionString.split('.')[0].toInt() < 7) {
QString originalFile(_propagator->getFilePath(QLatin1String("Shared")));
emit _propagator->touchedFile(originalFile);
emit _propagator->touchedFile(targetFile);
_propagator->addTouchedFile(originalFile);
_propagator->addTouchedFile(targetFile);
QString renameError;
if( FileSystem::rename(targetFile, originalFile, &renameError) ) {
done(SyncFileItem::NormalError, tr("This folder must not be renamed. It is renamed back to its original name."));
+9 -1
Ver Arquivo
@@ -97,7 +97,9 @@ void PUTFileJob::start() {
}
void PUTFileJob::slotTimeout() {
qDebug() << "Timeout" << reply()->request().url();
qDebug() << "Timeout" << (reply() ? reply()->request().url() : path());
if (!reply())
return;
_errorString = tr("Connection Timeout");
reply()->abort();
}
@@ -232,6 +234,8 @@ void PropagateUploadFileQNAM::slotComputeContentChecksum()
connect(computeChecksum, SIGNAL(done(QByteArray,QByteArray)),
SLOT(slotComputeTransmissionChecksum(QByteArray,QByteArray)));
connect(computeChecksum, SIGNAL(done(QByteArray,QByteArray)),
computeChecksum, SLOT(deleteLater()));
computeChecksum->start(filePath);
}
@@ -266,6 +270,8 @@ void PropagateUploadFileQNAM::slotComputeTransmissionChecksum(const QByteArray&
connect(computeChecksum, SIGNAL(done(QByteArray,QByteArray)),
SLOT(slotStartUpload(QByteArray,QByteArray)));
connect(computeChecksum, SIGNAL(done(QByteArray,QByteArray)),
computeChecksum, SLOT(deleteLater()));
const QString filePath = _propagator->getFilePath(_item->_file);
computeChecksum->start(filePath);
}
@@ -773,6 +779,8 @@ void PropagateUploadFileQNAM::slotPutFinished()
<< _stopWatch.durationOfLap(QLatin1String("ContentChecksum"))
<< _stopWatch.durationOfLap(QLatin1String("TransmissionChecksum"))
<< _item->_requestDuration;
// The job might stay alive for the whole sync, release this tiny bit of memory.
_stopWatch.reset();
finalize(*_item);
}
+3 -3
Ver Arquivo
@@ -163,7 +163,7 @@ void PropagateLocalMkdir::start()
done( SyncFileItem::NormalError, tr("Attention, possible case sensitivity clash with %1").arg(newDirStr) );
return;
}
emit _propagator->touchedFile(newDirStr);
_propagator->addTouchedFile(newDirStr);
QDir localDir(_propagator->_localDir);
if (!localDir.mkpath(_item->_file)) {
done( SyncFileItem::NormalError, tr("could not create folder %1").arg(newDirStr) );
@@ -217,8 +217,8 @@ void PropagateLocalRename::start()
return;
}
emit _propagator->touchedFile(existingFile);
emit _propagator->touchedFile(targetFile);
_propagator->addTouchedFile(existingFile);
_propagator->addTouchedFile(targetFile);
QString renameError;
if (!FileSystem::rename(existingFile, targetFile, &renameError)) {
done(SyncFileItem::NormalError, renameError);
+11 -34
Ver Arquivo
@@ -95,20 +95,16 @@ SyncEngine::SyncEngine(AccountPtr account, const QString& localPath,
_excludedFiles.reset(new ExcludedFiles(&_csync_ctx->excludes));
_syncFileStatusTracker.reset(new SyncFileStatusTracker(this));
_clearTouchedFilesTimer.setSingleShot(true);
_clearTouchedFilesTimer.setInterval(30*1000);
connect(&_clearTouchedFilesTimer, SIGNAL(timeout()), SLOT(slotClearTouchedFiles()));
_thread.setObjectName("SyncEngine_Thread");
}
SyncEngine::~SyncEngine()
{
abort();
_excludedFiles.reset();
csync_destroy(_csync_ctx);
_thread.quit();
_thread.wait();
_excludedFiles.reset();
csync_destroy(_csync_ctx);
}
//Convert an error code from csync to a user readable string.
@@ -437,9 +433,6 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
case CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS:
item->_errorString = tr("Filename contains invalid characters that can not be synced cross platform.");
break;
case CSYNC_STATUS_INDIVIDUAL_TRAILING_SPACE:
item->_errorString = tr("Filename contains trailing spaces.");
break;
case CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME:
item->_errorString = tr("Filename is too long.");
break;
@@ -688,7 +681,6 @@ void SyncEngine::startSync()
s_anySyncRunning = true;
_syncRunning = true;
_anotherSyncNeeded = false;
_clearTouchedFilesTimer.stop();
_progressInfo->reset();
@@ -855,6 +847,8 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
_hasNoneFiles = false;
_hasRemoveFile = false;
_hasForwardInTimeFiles = false;
_backInTimeFiles = 0;
bool walkOk = true;
_seenFiles.clear();
_temporarilyUnavailablePaths.clear();
@@ -953,7 +947,6 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
this, SLOT(slotProgress(const SyncFileItem &,quint64)));
connect(_propagator.data(), SIGNAL(finished()), this, SLOT(slotFinished()), Qt::QueuedConnection);
connect(_propagator.data(), SIGNAL(seenLockedFile(QString)), SIGNAL(seenLockedFile(QString)));
connect(_propagator.data(), SIGNAL(touchedFile(QString)), SLOT(slotAddTouchedFile(QString)));
// apply the network limits to the propagator
setNetworkLimits(_uploadLimit, _downloadLimit);
@@ -1050,8 +1043,6 @@ void SyncEngine::finalize(bool success)
// Delete the propagator only after emitting the signal.
_propagator.clear();
_clearTouchedFilesTimer.start();
}
void SyncEngine::slotProgress(const SyncFileItem& item, quint64 current)
@@ -1373,28 +1364,14 @@ SyncFileItem* SyncEngine::findSyncItem(const QString &fileName) const
return 0;
}
void SyncEngine::slotAddTouchedFile(const QString& fn)
{
QString file = QDir::cleanPath(fn);
QElapsedTimer timer;
timer.start();
_touchedFiles.insert(file, timer);
}
void SyncEngine::slotClearTouchedFiles()
{
_touchedFiles.clear();
}
qint64 SyncEngine::timeSinceFileTouched(const QString& fn) const
{
if (! _touchedFiles.contains(fn)) {
return -1;
// This copy is essential for thread safety.
QSharedPointer<OwncloudPropagator> prop = _propagator;
if (prop) {
return prop->timeSinceFileTouched(fn);
}
return _touchedFiles[fn].elapsed();
return -1;
}
AccountPtr SyncEngine::account() const
@@ -1404,13 +1381,13 @@ AccountPtr SyncEngine::account() const
void SyncEngine::abort()
{
// Sets a flag for the update phase
csync_request_abort(_csync_ctx);
qDebug() << Q_FUNC_INFO << _discoveryMainThread;
// Aborts the discovery phase job
if (_discoveryMainThread) {
_discoveryMainThread->abort();
}
// Sets a flag for the update phase
csync_request_abort(_csync_ctx);
// For the propagator
if(_propagator) {
_propagator->abort();
-12
Ver Arquivo
@@ -157,12 +157,6 @@ private slots:
void slotDiscoveryJobFinished(int updateResult);
void slotCleanPollsJobAborted(const QString &error);
/** Records that a file was touched by a job. */
void slotAddTouchedFile(const QString& fn);
/** Wipes the _touchedFiles hash */
void slotClearTouchedFiles();
private:
void handleSyncError(CSYNC *ctx, const char *state);
@@ -262,12 +256,6 @@ private:
CSyncChecksumHook _checksum_hook;
bool _anotherSyncNeeded;
/** Stores the time since a job touched a file. */
QHash<QString, QElapsedTimer> _touchedFiles;
/** For clearing the _touchedFiles variable after sync finished */
QTimer _clearTouchedFilesTimer;
};
}
+9 -8
Ver Arquivo
@@ -76,7 +76,6 @@ SyncFileStatusTracker::SyncFileStatusTracker(SyncEngine *syncEngine)
SLOT(slotAboutToPropagate(SyncFileItemVector&)));
connect(syncEngine, SIGNAL(itemCompleted(const SyncFileItem&, const PropagatorJob&)),
SLOT(slotItemCompleted(const SyncFileItem&)));
connect(syncEngine, SIGNAL(started()), SLOT(slotClearDirtyPaths()));
connect(syncEngine, SIGNAL(started()), SLOT(slotSyncEngineRunningChanged()));
connect(syncEngine, SIGNAL(finished(bool)), SLOT(slotSyncEngineRunningChanged()));
}
@@ -156,9 +155,18 @@ void SyncFileStatusTracker::slotAboutToPropagate(SyncFileItemVector& items)
} else if (showWarningInSocketApi(*item)) {
_syncProblems[item->_file] = SyncFileStatus::StatusWarning;
}
_dirtyPaths.remove(item->destination());
emit fileStatusChanged(getSystemDestination(item->destination()), syncFileItemStatus(*item));
}
// Some metadata status won't trigger files to be synced, make sure that we
// push the OK status for dirty files that don't need to be propagated.
// Swap into a copy since fileStatus() reads _dirtyPaths to determine the status
QSet<QString> oldDirtyPaths;
std::swap(_dirtyPaths, oldDirtyPaths);
for (auto it = oldDirtyPaths.begin(); it != oldDirtyPaths.end(); ++it)
emit fileStatusChanged(getSystemDestination(*it), fileStatus(*it));
// Make sure to push any status that might have been resolved indirectly since the last sync
// (like an error file being deleted from disk)
for (auto it = _syncProblems.begin(); it != _syncProblems.end(); ++it)
@@ -193,13 +201,6 @@ void SyncFileStatusTracker::slotSyncEngineRunningChanged()
emit fileStatusChanged(_syncEngine->localPath(), syncFileItemStatus(rootSyncFileItem()));
}
void SyncFileStatusTracker::slotClearDirtyPaths()
{
// We just assume that during a sync all dirty statuses will be resolved
// one way or the other.
_dirtyPaths.clear();
}
SyncFileStatus SyncFileStatusTracker::syncFileItemStatus(const SyncFileItem& item)
{
// Hack to know if the item was taken from the sync engine (Sync), or from the database (UpToDate)
-1
Ver Arquivo
@@ -47,7 +47,6 @@ private slots:
void slotAboutToPropagate(SyncFileItemVector& items);
void slotItemCompleted(const SyncFileItem& item);
void slotSyncEngineRunningChanged();
void slotClearDirtyPaths();
private:
SyncFileStatus syncFileItemStatus(const SyncFileItem& item);
-18
Ver Arquivo
@@ -35,10 +35,6 @@
#else
#include <QStandardPaths>
#endif
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
#include <QCollator>
#endif
#ifdef Q_OS_UNIX
#include <sys/statvfs.h>
@@ -550,18 +546,4 @@ quint64 Utility::StopWatch::durationOfLap( const QString& lapName ) const
return _lapTimes.value(lapName, 0);
}
void Utility::sortFilenames(QStringList& fileNames)
{
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
QCollator collator;
collator.setNumericMode(true);
collator.setCaseSensitivity(Qt::CaseInsensitive);
qSort(fileNames.begin(), fileNames.end(), collator);
#elif QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
fileNames.sort(Qt::CaseInsensitive);
#else
fileNames.sort();
#endif
}
} // namespace OCC
+2 -7
Ver Arquivo
@@ -20,7 +20,7 @@
#include <QByteArray>
#include <QDateTime>
#include <QElapsedTimer>
#include <QHash>
#include <QMap>
namespace OCC {
@@ -121,7 +121,7 @@ namespace Utility
class OWNCLOUDSYNC_EXPORT StopWatch {
private:
QHash<QString, quint64> _lapTimes;
QMap<QString, quint64> _lapTimes;
QDateTime _startTime;
QElapsedTimer _timer;
public:
@@ -136,11 +136,6 @@ namespace Utility
quint64 durationOfLap( const QString& lapName ) const;
};
/**
* @brief Sort a QStringList in a way that's appropriate for filenames
*/
OWNCLOUDSYNC_EXPORT void sortFilenames(QStringList& fileNames);
}
/** @} */ // \addtogroup
+7 -1
Ver Arquivo
@@ -151,7 +151,13 @@ using namespace OCC;
};
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
QTEST_MAIN(TestChecksumValidator)
// Qt4 does not have QTEST_GUILESS_MAIN, so we simulate it.
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
TestChecksumValidator tc;
return QTest::qExec(&tc, argc, argv);
}
#else
QTEST_GUILESS_MAIN(TestChecksumValidator)
#endif
+1
Ver Arquivo
@@ -26,6 +26,7 @@ private slots:
bool excludeHidden = true;
bool keepHidden = false;
bool x = excluded.isExcluded("/a/b", "/a", keepHidden);
QVERIFY(!excluded.isExcluded("/a/b", "/a", keepHidden));
QVERIFY(!excluded.isExcluded("/a/b~", "/a", keepHidden));
QVERIFY(!excluded.isExcluded("/a/.b", "/a", keepHidden));
+7 -1
Ver Arquivo
@@ -171,7 +171,13 @@ private slots:
};
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
QTEST_MAIN(TestFolderWatcher)
// Qt4 does not have QTEST_GUILESS_MAIN, so we simulate it.
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
TestFolderWatcher tc;
return QTest::qExec(&tc, argc, argv);
}
#else
QTEST_GUILESS_MAIN(TestFolderWatcher)
#endif
+7 -1
Ver Arquivo
@@ -442,7 +442,13 @@ private slots:
};
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
QTEST_MAIN(TestXmlParse)
// Qt4 does not have QTEST_GUILESS_MAIN, so we simulate it.
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
TestXmlParse tc;
return QTest::qExec(&tc, argc, argv);
}
#else
QTEST_GUILESS_MAIN(TestXmlParse)
#endif
+179 -171
Ver Arquivo
@@ -110,8 +110,8 @@
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="180"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<location filename="../src/gui/accountsettings.cpp" line="684"/>
<location filename="../src/gui/accountsettings.cpp" line="352"/>
<location filename="../src/gui/accountsettings.cpp" line="690"/>
<source>Cancel</source>
<translation>Cancel·la</translation>
</message>
@@ -141,148 +141,148 @@
<translation>Compte</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="215"/>
<location filename="../src/gui/accountsettings.cpp" line="221"/>
<source>Choose what to sync</source>
<translation>Trieu què sincronitzar</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="223"/>
<location filename="../src/gui/accountsettings.cpp" line="229"/>
<source>Remove folder sync connection</source>
<translation>Elimina la connexió de la carpeta sincronitzada</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="288"/>
<location filename="../src/gui/accountsettings.cpp" line="294"/>
<source>Folder creation failed</source>
<translation>Ha fallat la creació de la carpeta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="289"/>
<location filename="../src/gui/accountsettings.cpp" line="295"/>
<source>&lt;p&gt;Could not create local folder &lt;i&gt;%1&lt;/i&gt;.</source>
<translation>&lt;p&gt;No s&apos;ha pogut crear la carpeta local &lt;i&gt;%1&lt;/i&gt;.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="339"/>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<source>Confirm Folder Sync Connection Removal</source>
<translation>Confirma l&apos;eliminació de la connexió de la carpeta sincronitzada</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<location filename="../src/gui/accountsettings.cpp" line="351"/>
<source>Remove Folder Sync Connection</source>
<translation>Elimina la connexió de la carpeta sincronitzada</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="427"/>
<location filename="../src/gui/accountsettings.cpp" line="433"/>
<source>Sync Running</source>
<translation>S&apos;està sincronitzant</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="428"/>
<location filename="../src/gui/accountsettings.cpp" line="434"/>
<source>The syncing operation is running.&lt;br/&gt;Do you want to terminate it?</source>
<translation>S&apos;està sincronitzant.&lt;br/&gt;Voleu parar-la?</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="495"/>
<location filename="../src/gui/accountsettings.cpp" line="501"/>
<source>%1 in use</source>
<translation>%1 en ús</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="515"/>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<source>%1 as &lt;i&gt;%2&lt;/i&gt;</source>
<translation>%1 com a &lt;i&gt;%2&lt;/i&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<source>The server version %1 is old and unsupported! Proceed at your own risk.</source>
<translation type="unfinished"/>
<translation>La versió del servidor %1 és antiga i fora de suport! Continua sota la teva responsabilitat.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="523"/>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<source>Connected to %1.</source>
<translation>Connectat a %1</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="525"/>
<location filename="../src/gui/accountsettings.cpp" line="531"/>
<source>Server %1 is temporarily unavailable.</source>
<translation>El servidor %1 no està disponible temporalment</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<location filename="../src/gui/accountsettings.cpp" line="533"/>
<source>Signed out from %1.</source>
<translation>S&apos;ha desconnectat de %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<source>No connection to %1 at %2.</source>
<translation>No hi ha connexió amb %1 a %2.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="552"/>
<location filename="../src/gui/accountsettings.cpp" line="558"/>
<source>Log in</source>
<translation>Inici de sessió</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="636"/>
<location filename="../src/gui/accountsettings.cpp" line="642"/>
<source>There are new folders that were not synchronized because they are too big: </source>
<translation>Hi ha carpetes noves que no s&apos;han sincronitzat perquè són massa grans:</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="676"/>
<location filename="../src/gui/accountsettings.cpp" line="682"/>
<source>Confirm Account Removal</source>
<translation>Confirmeu l&apos;eliminació del compte</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="677"/>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<source>&lt;p&gt;Do you really want to remove the connection to the account &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Segur que voleu eliminar la connexió al compte &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Nota:&lt;/b&gt; això &lt;b&gt;no&lt;/b&gt; esborrarà cap fitxer.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<location filename="../src/gui/accountsettings.cpp" line="689"/>
<source>Remove connection</source>
<translation>Elimina la connexió</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="211"/>
<location filename="../src/gui/accountsettings.cpp" line="217"/>
<source>Open folder</source>
<translation>Obre la carpeta</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="145"/>
<location filename="../src/gui/accountsettings.cpp" line="554"/>
<location filename="../src/gui/accountsettings.cpp" line="560"/>
<source>Log out</source>
<translation>Surt</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Resume sync</source>
<translation>Continua la sincronització</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Pause sync</source>
<translation>Pausa la sincronització</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="340"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<source>&lt;p&gt;Do you really want to stop syncing the folder &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Segur que voleu aturar la sincronització de la carpeta &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Nota:&lt;/b&gt; això &lt;b&gt;no&lt;/b&gt; esborrarà cap fitxer.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="482"/>
<location filename="../src/gui/accountsettings.cpp" line="488"/>
<source>%1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>%1 (%3%) de %2 en ús. Algunes carpetes, incloent les carpetes muntades a través de xarxa o les compartides, poden tenir límits diferents.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="483"/>
<location filename="../src/gui/accountsettings.cpp" line="489"/>
<source>%1 of %2 in use</source>
<translation>%1 de %2 en ús</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="492"/>
<location filename="../src/gui/accountsettings.cpp" line="498"/>
<source>Currently there is no storage usage information available.</source>
<translation>Actualment no hi ha informació disponible de l&apos;ús d&apos;emmagatzemament.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<location filename="../src/gui/accountsettings.cpp" line="541"/>
<source>No %1 connection configured.</source>
<translation>La connexió %1 no està configurada.</translation>
</message>
@@ -385,12 +385,12 @@
<message>
<location filename="../src/gui/activitywidget.cpp" line="600"/>
<source>The sync activity list has been copied to the clipboard.</source>
<translation type="unfinished"/>
<translation>La llista d&apos;activitat de sincronització s&apos;ha copiat al porta-retalls</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="603"/>
<source>The list of unsynched items has been copied to the clipboard.</source>
<translation type="unfinished"/>
<translation>La llista d&apos;elements no sincronitzats s&apos;ha copiat al porta-retalls</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="608"/>
@@ -579,158 +579,160 @@
<context>
<name>OCC::Folder</name>
<message>
<location filename="../src/gui/folder.cpp" line="135"/>
<location filename="../src/gui/folder.cpp" line="129"/>
<source>Local folder %1 does not exist.</source>
<translation>El fitxer local %1 no existeix.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="138"/>
<location filename="../src/gui/folder.cpp" line="132"/>
<source>%1 should be a folder but is not.</source>
<translation type="unfinished"/>
<translation>%1 hauria de ser una carpeta, però no ho és.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="141"/>
<location filename="../src/gui/folder.cpp" line="135"/>
<source>%1 is not readable.</source>
<translation>No es pot llegir %1.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="387"/>
<location filename="../src/gui/folder.cpp" line="381"/>
<source>%1: %2</source>
<extracomment>this displays an error string (%2) for a file %1</extracomment>
<translation>%1: %2</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="497"/>
<location filename="../src/gui/folder.cpp" line="491"/>
<source>%1 has been removed.</source>
<comment>%1 names a file.</comment>
<translation>S&apos;ha esborrat &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="504"/>
<location filename="../src/gui/folder.cpp" line="498"/>
<source>%1 has been downloaded.</source>
<comment>%1 names a file.</comment>
<translation>S&apos;ha descarregat %1</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="511"/>
<location filename="../src/gui/folder.cpp" line="505"/>
<source>%1 has been updated.</source>
<comment>%1 names a file.</comment>
<translation>S&apos;ha actualitzat %1</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="518"/>
<location filename="../src/gui/folder.cpp" line="512"/>
<source>%1 has been renamed to %2.</source>
<comment>%1 and %2 name files.</comment>
<translation>%1 s&apos;ha reanomenat a %2.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="525"/>
<location filename="../src/gui/folder.cpp" line="519"/>
<source>%1 has been moved to %2.</source>
<translation>%1 s&apos;ha mogut a %2.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="495"/>
<location filename="../src/gui/folder.cpp" line="489"/>
<source>%1 and %n other file(s) have been removed.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 i %n altre fitxer s&apos;ha esborrat.</numerusform><numerusform>%1 i %n altres fitxers s&apos;han esborrat.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="502"/>
<location filename="../src/gui/folder.cpp" line="496"/>
<source>%1 and %n other file(s) have been downloaded.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 i %n altre fitxer s&apos;han descarregat.</numerusform><numerusform>%1 i %n altres fitxers s&apos;han descarregat.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="509"/>
<location filename="../src/gui/folder.cpp" line="503"/>
<source>%1 and %n other file(s) have been updated.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 i %n altre fitxer s&apos;han actualitzat.</numerusform><numerusform>%1 i %n altres fitxers s&apos;han actualitzat.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="516"/>
<location filename="../src/gui/folder.cpp" line="510"/>
<source>%1 has been renamed to %2 and %n other file(s) have been renamed.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 s&apos;ha reanomenat a %2 i %n altre fitxer s&apos;ha reanomenat.</numerusform><numerusform>%1 s&apos;ha reanomenat a %2 i %n altres fitxers s&apos;han reanomenat.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="523"/>
<location filename="../src/gui/folder.cpp" line="517"/>
<source>%1 has been moved to %2 and %n other file(s) have been moved.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 s&apos;ha mogut a %2 i %n altre fitxer s&apos;ha mogut.</numerusform><numerusform>%1 s&apos;ha mogut a %2 i %n altres fitxers s&apos;han mogut.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="530"/>
<location filename="../src/gui/folder.cpp" line="524"/>
<source>%1 has and %n other file(s) have sync conflicts.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 i %n altre fitxer tenen conflictes de sincronització</numerusform><numerusform>%1 i %n altres fitxers tenen conflictes de sincronització</numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="532"/>
<location filename="../src/gui/folder.cpp" line="526"/>
<source>%1 has a sync conflict. Please check the conflict file!</source>
<translation type="unfinished"/>
<translation>%1 conflictes de sincronització. Comproveu el fitxer conflictiu!</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="537"/>
<location filename="../src/gui/folder.cpp" line="531"/>
<source>%1 and %n other file(s) could not be synced due to errors. See the log for details.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%1 i %n altre fitxer no s&apos;han sincronitzat per errors.
Consulteu el registre per obtenir més informació.</numerusform><numerusform>%1 i %n altres fitxers no s&apos;han sincronitzat per errors.
Consulteu el registre per obtenir més informació.</numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="539"/>
<location filename="../src/gui/folder.cpp" line="533"/>
<source>%1 could not be synced due to an error. See the log for details.</source>
<translation>%1 no s&apos;ha pogut sincronitzar degut a un error. Mireu el registre per més detalls.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="545"/>
<location filename="../src/gui/folder.cpp" line="539"/>
<source>Sync Activity</source>
<translation>Activitat de sincronització</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="751"/>
<location filename="../src/gui/folder.cpp" line="747"/>
<source>Could not read system exclude file</source>
<translation>No s&apos;ha pogut llegir el fitxer d&apos;exclusió del sistema</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="962"/>
<location filename="../src/gui/folder.cpp" line="958"/>
<source>A new folder larger than %1 MB has been added: %2.
Please go in the settings to select it if you wish to download it.</source>
<translation>S&apos;ha afegit una carpeta nova de més de %1 MB: %2.
Aneu a arranjament per seleccionar-la si voleu descarregar-la.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="980"/>
<location filename="../src/gui/folder.cpp" line="976"/>
<source>This sync would remove all the files in the sync folder '%1'.
This might be because the folder was silently reconfigured, or that all the files were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="984"/>
<location filename="../src/gui/folder.cpp" line="980"/>
<source>Remove All Files?</source>
<translation>Esborra tots els fitxers?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="986"/>
<location filename="../src/gui/folder.cpp" line="982"/>
<source>Remove all files</source>
<translation>Esborra tots els fitxers</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="987"/>
<location filename="../src/gui/folder.cpp" line="983"/>
<source>Keep files</source>
<translation>Mantén els fitxers</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1005"/>
<location filename="../src/gui/folder.cpp" line="1001"/>
<source>This sync would reset the files to an erlier time in the sync folder '%1'.
This might be because a backup was restored on the server.
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1010"/>
<location filename="../src/gui/folder.cpp" line="1006"/>
<source>Backup detected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1012"/>
<location filename="../src/gui/folder.cpp" line="1008"/>
<source>Normal Synchronisation</source>
<translation type="unfinished"/>
<translation>Sincronització normal</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1013"/>
<location filename="../src/gui/folder.cpp" line="1009"/>
<source>Keep Local Files as Conflict</source>
<translation type="unfinished"/>
</message>
@@ -748,102 +750,102 @@ Continuing the sync as normal will cause all your files to be overwritten by an
<translation>S&apos;ha trobat un diari de sincronització antic &apos;%1&apos;, però no s&apos;ha pogut eliminar. Assegureu-vos que no hi ha cap aplicació que actualment en faci ús.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="926"/>
<location filename="../src/gui/folderman.cpp" line="927"/>
<source> (backup)</source>
<translation>(copia de seguretat)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="931"/>
<location filename="../src/gui/folderman.cpp" line="932"/>
<source> (backup %1)</source>
<translation>(copia de seguretat %1)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1138"/>
<location filename="../src/gui/folderman.cpp" line="1139"/>
<source>Undefined State.</source>
<translation>Estat indefinit.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1141"/>
<location filename="../src/gui/folderman.cpp" line="1142"/>
<source>Waiting to start syncing.</source>
<translation>S&apos;està esperant per començar a sincronitzar.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1144"/>
<location filename="../src/gui/folderman.cpp" line="1145"/>
<source>Preparing for sync.</source>
<translation>S&apos;està preparant per la sincronització.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1147"/>
<location filename="../src/gui/folderman.cpp" line="1148"/>
<source>Sync is running.</source>
<translation>S&apos;està sincronitzant.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1150"/>
<location filename="../src/gui/folderman.cpp" line="1151"/>
<source>Last Sync was successful.</source>
<translation>La darrera sincronització va ser correcta.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1155"/>
<location filename="../src/gui/folderman.cpp" line="1156"/>
<source>Last Sync was successful, but with warnings on individual files.</source>
<translation>La última sincronització ha estat un èxit, però amb avisos en fitxers individuals.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1158"/>
<location filename="../src/gui/folderman.cpp" line="1159"/>
<source>Setup Error.</source>
<translation>Error de configuració.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1161"/>
<location filename="../src/gui/folderman.cpp" line="1162"/>
<source>User Abort.</source>
<translation>Cancel·la usuari.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1164"/>
<location filename="../src/gui/folderman.cpp" line="1165"/>
<source>Sync is paused.</source>
<translation>La sincronització està en pausa.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1170"/>
<location filename="../src/gui/folderman.cpp" line="1171"/>
<source>%1 (Sync is paused)</source>
<translation>%1 (Sync està pausat)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1178"/>
<location filename="../src/gui/folderman.cpp" line="1179"/>
<source>No valid folder selected!</source>
<translation>No s&apos;ha seleccionat cap directori vàlid!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1189"/>
<location filename="../src/gui/folderman.cpp" line="1190"/>
<source>The selected path is not a folder!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1193"/>
<location filename="../src/gui/folderman.cpp" line="1194"/>
<source>You have no permission to write to the selected folder!</source>
<translation>No teniu permisos per escriure en la carpeta seleccionada!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1208"/>
<location filename="../src/gui/folderman.cpp" line="1209"/>
<source>The local folder %1 is already used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1213"/>
<location filename="../src/gui/folderman.cpp" line="1214"/>
<source>The local folder %1 already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1220"/>
<location filename="../src/gui/folderman.cpp" line="1221"/>
<source>The local folder %1 is a symbolic link. The link target already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1227"/>
<location filename="../src/gui/folderman.cpp" line="1228"/>
<source>The local folder %1 is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1233"/>
<location filename="../src/gui/folderman.cpp" line="1234"/>
<source>The local folder %1 is a symbolic link. The link target is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"/>
</message>
@@ -1681,7 +1683,7 @@ privilegis addicionals durant el procés.</translation>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.cpp" line="51"/>
<source>&amp;Email</source>
<translation type="unfinished"/>
<translation>Correu &amp;electrònic</translation>
</message>
<message>
<location filename="../src/gui/wizard/owncloudhttpcredspage.cpp" line="61"/>
@@ -1898,7 +1900,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="101"/>
<location filename="../src/libsync/propagateupload.cpp" line="103"/>
<source>Connection Timeout</source>
<translation>Temps de connexió excedit</translation>
</message>
@@ -1906,7 +1908,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="158"/>
<location filename="../src/libsync/propagateupload.cpp" line="160"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"/>
</message>
@@ -2000,7 +2002,7 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="169"/>
<source>could not create folder %1</source>
<translation type="unfinished"/>
<translation>no s&apos;ha pogut crear la carpeta %1</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="181"/>
@@ -2018,7 +2020,7 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="98"/>
<source>Could not remove folder &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>No s&apos;ha pogut eliminar la carpeta &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/libsync/propagatorjobs.cpp" line="116"/>
@@ -2096,48 +2098,48 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="291"/>
<location filename="../src/libsync/propagateupload.cpp" line="297"/>
<source>File Removed</source>
<translation>Fitxer eliminat</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="303"/>
<location filename="../src/libsync/propagateupload.cpp" line="309"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="315"/>
<location filename="../src/libsync/propagateupload.cpp" line="704"/>
<location filename="../src/libsync/propagateupload.cpp" line="321"/>
<location filename="../src/libsync/propagateupload.cpp" line="710"/>
<source>Local file changed during sync.</source>
<translation>El fitxer local ha canviat durant la sincronització.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="631"/>
<location filename="../src/libsync/propagateupload.cpp" line="637"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="639"/>
<location filename="../src/libsync/propagateupload.cpp" line="645"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>El fitxer s&apos;ha editat localment però és part d&apos;una compartició només de lectura. S&apos;ha restaurat i la vostra edició és en el fitxer en conflicte.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="670"/>
<location filename="../src/libsync/propagateupload.cpp" line="676"/>
<source>Poll URL missing</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="693"/>
<location filename="../src/libsync/propagateupload.cpp" line="699"/>
<source>The local file was removed during sync.</source>
<translation>El fitxer local s&apos;ha eliminat durant la sincronització.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="719"/>
<location filename="../src/libsync/propagateupload.cpp" line="725"/>
<source>The server did not acknowledge the last chunk. (No e-tag was present)</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="792"/>
<location filename="../src/libsync/propagateupload.cpp" line="800"/>
<source>Error writing metadata to the database</source>
<translation>Error en escriure les metadades a la base de dades</translation>
</message>
@@ -2479,7 +2481,7 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="224"/>
<source>No results for &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>No hi ha resultats per &apos;%1&apos;</translation>
</message>
</context>
<context>
@@ -2510,17 +2512,17 @@ No és aconsellada usar-la.</translation>
<translation>...</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="300"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="302"/>
<source>create</source>
<translation>crea</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="303"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="305"/>
<source>change</source>
<translation>canvi</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="306"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="308"/>
<source>delete</source>
<translation>elimina</translation>
</message>
@@ -2541,17 +2543,22 @@ No és aconsellada usar-la.</translation>
<context>
<name>OCC::ShibbolethWebView</name>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="79"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="81"/>
<source>%1 - Authenticate</source>
<translation>%1 - Autenticat</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="91"/>
<source>SSL Chipher Debug View</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Reauthentication required</source>
<translation>Es requereix nova acreditació</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Your session has expired. You need to re-login to continue to use the client.</source>
<translation>La vostra sessió ha vençut. Heu d&apos;acreditar-vos de nou per continuar usant el client.</translation>
</message>
@@ -2855,7 +2862,7 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/libsync/syncengine.cpp" line="440"/>
<source>File/Folder is ignored because it&apos;s hidden.</source>
<translation type="unfinished"/>
<translation>El fitxer/carpeta s&apos;ha ignorat perquè és ocult.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="701"/>
@@ -2864,12 +2871,12 @@ No és aconsellada usar-la.</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1132"/>
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
<source>Not allowed because you don&apos;t have permission to add parent folder</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
<source>Not allowed because you don&apos;t have permission to add files in that folder</source>
<translation type="unfinished"/>
</message>
@@ -2921,7 +2928,7 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/libsync/syncengine.cpp" line="188"/>
<source>Access is forbidden</source>
<translation type="unfinished"/>
<translation>Accés prohibit</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="199"/>
@@ -2984,54 +2991,54 @@ No és aconsellada usar-la.</translation>
<translation>No es pot obrir el diari de sincronització</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="887"/>
<location filename="../src/libsync/syncengine.cpp" line="889"/>
<source>File name contains at least one invalid character</source>
<translation type="unfinished"/>
<translation>El nom del fitxer conté al menys un caràcter invàlid</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1091"/>
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>S&apos;ignora degut al filtre a «Trieu què sincronitzar»</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1117"/>
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
<source>Not allowed because you don&apos;t have permission to add subfolders to that folder</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1159"/>
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>No es permet pujar aquest fitxer perquè només és de lectura en el servidor, es restaura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1176"/>
<location filename="../src/libsync/syncengine.cpp" line="1196"/>
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
<source>Not allowed to remove, restoring</source>
<translation>No es permet l&apos;eliminació, es restaura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1209"/>
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
<source>Local files and share folder removed.</source>
<translation>Fitxers locals i carpeta compartida esborrats.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1265"/>
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
<source>Move not allowed, item restored</source>
<translation>No es permet moure&apos;l, l&apos;element es restaura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1276"/>
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
<source>Move not allowed because %1 is read-only</source>
<translation>No es permet moure perquè %1 només és de lectura</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the destination</source>
<translation>el destí</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the source</source>
<translation>l&apos;origen</translation>
</message>
@@ -3117,25 +3124,26 @@ No és aconsellada usar-la.</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="390"/>
<location filename="../src/gui/owncloudgui.cpp" line="526"/>
<location filename="../src/gui/owncloudgui.cpp" line="593"/>
<location filename="../src/gui/owncloudgui.cpp" line="544"/>
<location filename="../src/gui/owncloudgui.cpp" line="611"/>
<source>Log in...</source>
<translation>Inicia la sessió</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="394"/>
<location filename="../src/gui/owncloudgui.cpp" line="518"/>
<location filename="../src/gui/owncloudgui.cpp" line="595"/>
<location filename="../src/gui/owncloudgui.cpp" line="536"/>
<location filename="../src/gui/owncloudgui.cpp" line="613"/>
<source>Log out</source>
<translation>Surt</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="438"/>
<location filename="../src/gui/owncloudgui.cpp" line="415"/>
<location filename="../src/gui/owncloudgui.cpp" line="456"/>
<source>Recent Changes</source>
<translation>Canvis recents</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="638"/>
<location filename="../src/gui/owncloudgui.cpp" line="656"/>
<source>Checking for changes in &apos;%1&apos;</source>
<translation>S&apos;està comprovant els canvis a &apos;%1&apos;</translation>
</message>
@@ -3155,27 +3163,27 @@ No és aconsellada usar-la.</translation>
<translation>Obre %1 en el navegador</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="580"/>
<location filename="../src/gui/owncloudgui.cpp" line="598"/>
<source>Unknown status</source>
<translation>Estat desconegut</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="582"/>
<location filename="../src/gui/owncloudgui.cpp" line="600"/>
<source>Settings...</source>
<translation>Arranjament...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="583"/>
<location filename="../src/gui/owncloudgui.cpp" line="601"/>
<source>Details...</source>
<translation>Detalls...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="588"/>
<location filename="../src/gui/owncloudgui.cpp" line="606"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="590"/>
<location filename="../src/gui/owncloudgui.cpp" line="608"/>
<source>Quit %1</source>
<translation>Surt %1</translation>
</message>
@@ -3212,71 +3220,71 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="379"/>
<source>Unpause all folders</source>
<translation type="unfinished"/>
<translation>Reprén totes les carpetes</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="384"/>
<source>Pause all folders</source>
<translation type="unfinished"/>
<translation>Pausa totes les carpetes</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="497"/>
<location filename="../src/gui/owncloudgui.cpp" line="515"/>
<source>Unpause all synchronization</source>
<translation type="unfinished"/>
<translation>Reprèn totes les sincronitzacions</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="499"/>
<location filename="../src/gui/owncloudgui.cpp" line="517"/>
<source>Unpause synchronization</source>
<translation type="unfinished"/>
<translation>Reprèn la sincronització</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="507"/>
<location filename="../src/gui/owncloudgui.cpp" line="525"/>
<source>Pause all synchronization</source>
<translation type="unfinished"/>
<translation>Pausa totes les sincronitzacions</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="509"/>
<location filename="../src/gui/owncloudgui.cpp" line="527"/>
<source>Pause synchronization</source>
<translation type="unfinished"/>
<translation>Pausa la sincronització</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="516"/>
<location filename="../src/gui/owncloudgui.cpp" line="534"/>
<source>Log out of all accounts</source>
<translation type="unfinished"/>
<translation>Surt de tots els comptes</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="524"/>
<location filename="../src/gui/owncloudgui.cpp" line="542"/>
<source>Log in to all accounts...</source>
<translation type="unfinished"/>
<translation>Connecta a tots els comptes...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="599"/>
<location filename="../src/gui/owncloudgui.cpp" line="617"/>
<source>Crash now</source>
<comment>Only shows in debug mode to allow testing the crash handler</comment>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="616"/>
<location filename="../src/gui/owncloudgui.cpp" line="634"/>
<source>No items synced recently</source>
<translation>No hi ha elements sincronitzats recentment</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="643"/>
<location filename="../src/gui/owncloudgui.cpp" line="661"/>
<source>Syncing %1 of %2 (%3 left)</source>
<translation>Sincronitzant %1 de %2 (%3 pendents)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="648"/>
<location filename="../src/gui/owncloudgui.cpp" line="666"/>
<source>Syncing %1 (%2 left)</source>
<translation>Sincronitzant %1 (%2 pendents)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="668"/>
<location filename="../src/gui/owncloudgui.cpp" line="686"/>
<source>%1 (%2, %3)</source>
<translation>%1 (%2, %3)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="697"/>
<location filename="../src/gui/owncloudgui.cpp" line="715"/>
<source>Up to date</source>
<translation>Actualitzat</translation>
</message>
@@ -3497,7 +3505,7 @@ No és aconsellada usar-la.</translation>
<context>
<name>QApplication</name>
<message>
<location filename="../src/gui/application.cpp" line="581"/>
<location filename="../src/gui/application.cpp" line="599"/>
<source>QT_LAYOUT_DIRECTION</source>
<translation type="unfinished"/>
</message>
@@ -3507,7 +3515,7 @@ No és aconsellada usar-la.</translation>
<message>
<location filename="../src/libsync/utility.cpp" line="473"/>
<source>in the future</source>
<translation type="unfinished"/>
<translation>al futur</translation>
</message>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="469"/>
@@ -3565,32 +3573,32 @@ No és aconsellada usar-la.</translation>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="319"/>
<source>%n year(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n any</numerusform><numerusform>%n anys</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="320"/>
<source>%n month(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n mes</numerusform><numerusform>%n mesos</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="321"/>
<source>%n day(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n dia</numerusform><numerusform>%n dies</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="322"/>
<source>%n hour(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n hora</numerusform><numerusform>%n hores</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="323"/>
<source>%n minute(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n minut</numerusform><numerusform>%n minuts</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/libsync/utility.cpp" line="324"/>
<source>%n second(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>%n segon</numerusform><numerusform>%n segons</numerusform></translation>
</message>
<message>
<location filename="../src/libsync/utility.cpp" line="348"/>
+142 -136
Ver Arquivo
@@ -110,8 +110,8 @@
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="180"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<location filename="../src/gui/accountsettings.cpp" line="684"/>
<location filename="../src/gui/accountsettings.cpp" line="352"/>
<location filename="../src/gui/accountsettings.cpp" line="690"/>
<source>Cancel</source>
<translation>Zrušit</translation>
</message>
@@ -141,148 +141,148 @@
<translation>Účet</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="215"/>
<location filename="../src/gui/accountsettings.cpp" line="221"/>
<source>Choose what to sync</source>
<translation>Vybrat co sesynchronizovat</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="223"/>
<location filename="../src/gui/accountsettings.cpp" line="229"/>
<source>Remove folder sync connection</source>
<translation>Odstranit připojení synchronizace adresáře</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="288"/>
<location filename="../src/gui/accountsettings.cpp" line="294"/>
<source>Folder creation failed</source>
<translation>Vytvoření adresáře selhalo</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="289"/>
<location filename="../src/gui/accountsettings.cpp" line="295"/>
<source>&lt;p&gt;Could not create local folder &lt;i&gt;%1&lt;/i&gt;.</source>
<translation>&lt;p&gt;Nelze vytvořit místní adresář &lt;i&gt;%1&lt;/i&gt;.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="339"/>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<source>Confirm Folder Sync Connection Removal</source>
<translation>Potvrdit odstranění připojení synchronizace adresáře</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<location filename="../src/gui/accountsettings.cpp" line="351"/>
<source>Remove Folder Sync Connection</source>
<translation>Odstranit připojení synchronizace adresáře</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="427"/>
<location filename="../src/gui/accountsettings.cpp" line="433"/>
<source>Sync Running</source>
<translation>Synchronizace probíhá</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="428"/>
<location filename="../src/gui/accountsettings.cpp" line="434"/>
<source>The syncing operation is running.&lt;br/&gt;Do you want to terminate it?</source>
<translation>Operace synchronizace právě probíhá.&lt;br/&gt;Přejete si ji ukončit?</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="495"/>
<location filename="../src/gui/accountsettings.cpp" line="501"/>
<source>%1 in use</source>
<translation>%1 používaný</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="515"/>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<source>%1 as &lt;i&gt;%2&lt;/i&gt;</source>
<translation>%1 jako &lt;i&gt;%2&lt;/i&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<source>The server version %1 is old and unsupported! Proceed at your own risk.</source>
<translation>Server verze %1 je zastaralý a nepodporovaný! Pokračujte na vlastní riziko.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="523"/>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<source>Connected to %1.</source>
<translation>Připojeno k %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="525"/>
<location filename="../src/gui/accountsettings.cpp" line="531"/>
<source>Server %1 is temporarily unavailable.</source>
<translation>Server %1 je dočasně nedostupný.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<location filename="../src/gui/accountsettings.cpp" line="533"/>
<source>Signed out from %1.</source>
<translation>Odhlášeno z %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<source>No connection to %1 at %2.</source>
<translation>Bez připojení k %1 na %2.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="552"/>
<location filename="../src/gui/accountsettings.cpp" line="558"/>
<source>Log in</source>
<translation>Přihlásit</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="636"/>
<location filename="../src/gui/accountsettings.cpp" line="642"/>
<source>There are new folders that were not synchronized because they are too big: </source>
<translation>Jsou dostupné nové adresáře, které nebyly synchronizovány z důvodu jejich nadměrné velikosti:</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="676"/>
<location filename="../src/gui/accountsettings.cpp" line="682"/>
<source>Confirm Account Removal</source>
<translation>Potvrdit odstranění účtu</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="677"/>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<source>&lt;p&gt;Do you really want to remove the connection to the account &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Opravdu chcete odstranit připojení k účtu &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Poznámka:&lt;/b&gt; Toto &lt;b&gt;neodstraní&lt;/b&gt; žádné soubory.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<location filename="../src/gui/accountsettings.cpp" line="689"/>
<source>Remove connection</source>
<translation>Odstranit připojení</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="211"/>
<location filename="../src/gui/accountsettings.cpp" line="217"/>
<source>Open folder</source>
<translation>Otevřít adresář</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="145"/>
<location filename="../src/gui/accountsettings.cpp" line="554"/>
<location filename="../src/gui/accountsettings.cpp" line="560"/>
<source>Log out</source>
<translation>Odhlásit se</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Resume sync</source>
<translation>Pokračovat v synchronizaci</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Pause sync</source>
<translation>Pozastavit synchronizaci</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="340"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<source>&lt;p&gt;Do you really want to stop syncing the folder &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Opravdu chcete zastavit synchronizaci adresáře &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Poznámka:&lt;/b&gt; Toto &lt;b&gt;neodstraní&lt;/b&gt; žádné soubory.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="482"/>
<location filename="../src/gui/accountsettings.cpp" line="488"/>
<source>%1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>Používaných %1 (%3%) z %2. Některé adresáře včetně připojených síťových nebo sdílených adresářů mohou mít odlišné limity.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="483"/>
<location filename="../src/gui/accountsettings.cpp" line="489"/>
<source>%1 of %2 in use</source>
<translation>Používaných %1 z %2</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="492"/>
<location filename="../src/gui/accountsettings.cpp" line="498"/>
<source>Currently there is no storage usage information available.</source>
<translation>Momentálně nejsou k dispozici žádné informace o využití úložiště.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<location filename="../src/gui/accountsettings.cpp" line="541"/>
<source>No %1 connection configured.</source>
<translation>Žádné spojení s %1 nenastaveno.</translation>
</message>
@@ -579,119 +579,119 @@
<context>
<name>OCC::Folder</name>
<message>
<location filename="../src/gui/folder.cpp" line="135"/>
<location filename="../src/gui/folder.cpp" line="129"/>
<source>Local folder %1 does not exist.</source>
<translation>Místní adresář %1 neexistuje.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="138"/>
<location filename="../src/gui/folder.cpp" line="132"/>
<source>%1 should be a folder but is not.</source>
<translation>%1 by měl být adresář, ale není.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="141"/>
<location filename="../src/gui/folder.cpp" line="135"/>
<source>%1 is not readable.</source>
<translation>%1 není čitelný.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="387"/>
<location filename="../src/gui/folder.cpp" line="381"/>
<source>%1: %2</source>
<extracomment>this displays an error string (%2) for a file %1</extracomment>
<translation>%1: %2</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="497"/>
<location filename="../src/gui/folder.cpp" line="491"/>
<source>%1 has been removed.</source>
<comment>%1 names a file.</comment>
<translation>%1 byl odebrán.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="504"/>
<location filename="../src/gui/folder.cpp" line="498"/>
<source>%1 has been downloaded.</source>
<comment>%1 names a file.</comment>
<translation>%1 byl stažen.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="511"/>
<location filename="../src/gui/folder.cpp" line="505"/>
<source>%1 has been updated.</source>
<comment>%1 names a file.</comment>
<translation>%1 byl aktualizován.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="518"/>
<location filename="../src/gui/folder.cpp" line="512"/>
<source>%1 has been renamed to %2.</source>
<comment>%1 and %2 name files.</comment>
<translation>%1 byl přejmenován na %2.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="525"/>
<location filename="../src/gui/folder.cpp" line="519"/>
<source>%1 has been moved to %2.</source>
<translation>%1 byl přemístěn do %2.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="495"/>
<location filename="../src/gui/folder.cpp" line="489"/>
<source>%1 and %n other file(s) have been removed.</source>
<translation><numerusform>%1 soubor bude smazán.</numerusform><numerusform>%1 a %n další soubory budou smazány.</numerusform><numerusform>%1 a %n další soubory budou smazány.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="502"/>
<location filename="../src/gui/folder.cpp" line="496"/>
<source>%1 and %n other file(s) have been downloaded.</source>
<translation><numerusform>%1 soubor byl stažen.</numerusform><numerusform>%1 a %n další soubory byly staženy.</numerusform><numerusform>%1 a %n další soubory byly staženy.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="509"/>
<location filename="../src/gui/folder.cpp" line="503"/>
<source>%1 and %n other file(s) have been updated.</source>
<translation><numerusform>%1 soubor byl aktualizován.</numerusform><numerusform>%1 a %n další soubory byly aktualizovány.</numerusform><numerusform>%1 a %n další soubory byly aktualizovány.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="516"/>
<location filename="../src/gui/folder.cpp" line="510"/>
<source>%1 has been renamed to %2 and %n other file(s) have been renamed.</source>
<translation><numerusform>%1 byl přejmenován na %2.</numerusform><numerusform>%1 byl přejmenován na %2 a %n další soubory byly přejmenovány.</numerusform><numerusform>%1 byl přejmenován na %2 a %n další soubory byly přejmenovány.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="523"/>
<location filename="../src/gui/folder.cpp" line="517"/>
<source>%1 has been moved to %2 and %n other file(s) have been moved.</source>
<translation><numerusform>%1 byl přesunut do %2.</numerusform><numerusform>%1 byl přesunut do %2 a %n dalších souborů bylo přesunuto.</numerusform><numerusform>%1 byl přesunut do %2 a %n dalších souborů bylo přesunuto.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="530"/>
<location filename="../src/gui/folder.cpp" line="524"/>
<source>%1 has and %n other file(s) have sync conflicts.</source>
<translation><numerusform>%1 problém se synchronizací.</numerusform><numerusform>%1 a %n dalších souborů problém se synchronizací.</numerusform><numerusform>%1 a %n dalších souborů problém se synchronizací.</numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="532"/>
<location filename="../src/gui/folder.cpp" line="526"/>
<source>%1 has a sync conflict. Please check the conflict file!</source>
<translation>%1 problém se synchronizací. Prosím zkontrolujte chybový soubor.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="537"/>
<location filename="../src/gui/folder.cpp" line="531"/>
<source>%1 and %n other file(s) could not be synced due to errors. See the log for details.</source>
<translation><numerusform>%1 soubor nemůže být synchronizován kvůli chybám. Shlédněte log pro detaily.</numerusform><numerusform>%1 a %n dalších souborů nemohou být synchronizovány kvůli chybám. Shlédněte log pro detaily.</numerusform><numerusform>%1 a %n dalších souborů nemohou být synchronizovány kvůli chybám. Shlédněte log pro detaily.</numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="539"/>
<location filename="../src/gui/folder.cpp" line="533"/>
<source>%1 could not be synced due to an error. See the log for details.</source>
<translation>%1 nebyl kvůli chybě synchronizován. Detaily jsou k nalezení v logu.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="545"/>
<location filename="../src/gui/folder.cpp" line="539"/>
<source>Sync Activity</source>
<translation>Průběh synchronizace</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="751"/>
<location filename="../src/gui/folder.cpp" line="747"/>
<source>Could not read system exclude file</source>
<translation>Nezdařilo se přečtení systémového exclude souboru</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="962"/>
<location filename="../src/gui/folder.cpp" line="958"/>
<source>A new folder larger than %1 MB has been added: %2.
Please go in the settings to select it if you wish to download it.</source>
<translation>Byl přidán nový adresář %2 větší než %1 MB.
Pokud ho chcete stáhnout, přejděte prosím do nastavení a označte ho.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="980"/>
<location filename="../src/gui/folder.cpp" line="976"/>
<source>This sync would remove all the files in the sync folder '%1'.
This might be because the folder was silently reconfigured, or that all the files were manually removed.
Are you sure you want to perform this operation?</source>
@@ -700,22 +700,22 @@ Toto může být způsobeno změnou v nastavení synchronizace adresáře nebo t
Opravdu chcete provést tuto akci?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="984"/>
<location filename="../src/gui/folder.cpp" line="980"/>
<source>Remove All Files?</source>
<translation>Odstranit všechny soubory?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="986"/>
<location filename="../src/gui/folder.cpp" line="982"/>
<source>Remove all files</source>
<translation>Odstranit všechny soubory</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="987"/>
<location filename="../src/gui/folder.cpp" line="983"/>
<source>Keep files</source>
<translation>Ponechat soubory</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1005"/>
<location filename="../src/gui/folder.cpp" line="1001"/>
<source>This sync would reset the files to an erlier time in the sync folder '%1'.
This might be because a backup was restored on the server.
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
@@ -724,17 +724,17 @@ Toto může být způsobeno obnovením zálohy na straně serveru.
Pokračováním v synchronizaci způsobí přepsání všech vašich souborů staršími soubory z dřívějšího stavu. Přejete si ponechat své místní nejaktuálnější soubory jako konfliktní soubory?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1010"/>
<location filename="../src/gui/folder.cpp" line="1006"/>
<source>Backup detected</source>
<translation>Záloha nalezena</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1012"/>
<location filename="../src/gui/folder.cpp" line="1008"/>
<source>Normal Synchronisation</source>
<translation>Normální synchronizace</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1013"/>
<location filename="../src/gui/folder.cpp" line="1009"/>
<source>Keep Local Files as Conflict</source>
<translation>Ponechat místní soubory jako konflikt</translation>
</message>
@@ -752,102 +752,102 @@ Pokračováním v synchronizaci způsobí přepsání všech vašich souborů st
<translation>Byl nalezen starý záznam synchronizace &apos;%1&apos;, ale nebylo možné jej odebrat. Ujistěte se, že není aktuálně používán jinou aplikací.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="926"/>
<location filename="../src/gui/folderman.cpp" line="927"/>
<source> (backup)</source>
<translation> (záloha)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="931"/>
<location filename="../src/gui/folderman.cpp" line="932"/>
<source> (backup %1)</source>
<translation> (záloha %1)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1138"/>
<location filename="../src/gui/folderman.cpp" line="1139"/>
<source>Undefined State.</source>
<translation>Nedefinovaný stav.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1141"/>
<location filename="../src/gui/folderman.cpp" line="1142"/>
<source>Waiting to start syncing.</source>
<translation>Čeká na spuštění synchronizace.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1144"/>
<location filename="../src/gui/folderman.cpp" line="1145"/>
<source>Preparing for sync.</source>
<translation>Příprava na synchronizaci.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1147"/>
<location filename="../src/gui/folderman.cpp" line="1148"/>
<source>Sync is running.</source>
<translation>Synchronizace probíhá.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1150"/>
<location filename="../src/gui/folderman.cpp" line="1151"/>
<source>Last Sync was successful.</source>
<translation>Poslední synchronizace byla úspěšná.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1155"/>
<location filename="../src/gui/folderman.cpp" line="1156"/>
<source>Last Sync was successful, but with warnings on individual files.</source>
<translation>Poslední synchronizace byla úspěšná, ale s varováním u některých souborů</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1158"/>
<location filename="../src/gui/folderman.cpp" line="1159"/>
<source>Setup Error.</source>
<translation>Chyba nastavení.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1161"/>
<location filename="../src/gui/folderman.cpp" line="1162"/>
<source>User Abort.</source>
<translation>Zrušení uživatelem.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1164"/>
<location filename="../src/gui/folderman.cpp" line="1165"/>
<source>Sync is paused.</source>
<translation>Synchronizace pozastavena.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1170"/>
<location filename="../src/gui/folderman.cpp" line="1171"/>
<source>%1 (Sync is paused)</source>
<translation>%1 (Synchronizace je pozastavena)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1178"/>
<location filename="../src/gui/folderman.cpp" line="1179"/>
<source>No valid folder selected!</source>
<translation>Nebyl vybrán platný adresář!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1189"/>
<location filename="../src/gui/folderman.cpp" line="1190"/>
<source>The selected path is not a folder!</source>
<translation>Vybraná cesta nevede do adresáře!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1193"/>
<location filename="../src/gui/folderman.cpp" line="1194"/>
<source>You have no permission to write to the selected folder!</source>
<translation>Nemáte oprávnění pro zápis do zvoleného adresáře!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1208"/>
<location filename="../src/gui/folderman.cpp" line="1209"/>
<source>The local folder %1 is already used in a folder sync connection. Please pick another one!</source>
<translation>Místní adresář %1 je již použit pro synchronizaci odesílání. Zvolte prosím jiný!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1213"/>
<location filename="../src/gui/folderman.cpp" line="1214"/>
<source>The local folder %1 already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation>Místní adresář %1 již obsahuje podadresář použitý pro synchronizaci odesílání. Zvolte prosím jiný!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1220"/>
<location filename="../src/gui/folderman.cpp" line="1221"/>
<source>The local folder %1 is a symbolic link. The link target already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation>Místní adresář %1 je symbolickým obsahem. Cíl odkazu již obsahuje adresář použitý pro synchronizaci adresáře. Vyberte prosím jiný!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1227"/>
<location filename="../src/gui/folderman.cpp" line="1228"/>
<source>The local folder %1 is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation>Místní adresář %1 je již obsažen ve adresáři použitém pro synchronizaci. Vyberte prosím jiný!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1233"/>
<location filename="../src/gui/folderman.cpp" line="1234"/>
<source>The local folder %1 is a symbolic link. The link target is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation>Místní adresář %1 je symbolickým obsahem. Cíl odkazu je již obsažen v adresáři použitém pro synchronizaci. Vyberte prosím jiný!</translation>
</message>
@@ -1902,7 +1902,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="101"/>
<location filename="../src/libsync/propagateupload.cpp" line="103"/>
<source>Connection Timeout</source>
<translation>Čas spojení vypršel</translation>
</message>
@@ -1910,7 +1910,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="158"/>
<location filename="../src/libsync/propagateupload.cpp" line="160"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Neplatná JSON odpověď z adresy URL</translation>
</message>
@@ -2100,48 +2100,48 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="291"/>
<location filename="../src/libsync/propagateupload.cpp" line="297"/>
<source>File Removed</source>
<translation>Soubor odebrán</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="303"/>
<location filename="../src/libsync/propagateupload.cpp" line="309"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Místní soubor se během synchronizace změnil. </translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="315"/>
<location filename="../src/libsync/propagateupload.cpp" line="704"/>
<location filename="../src/libsync/propagateupload.cpp" line="321"/>
<location filename="../src/libsync/propagateupload.cpp" line="710"/>
<source>Local file changed during sync.</source>
<translation>Místní soubor byl změněn během synchronizace.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="631"/>
<location filename="../src/libsync/propagateupload.cpp" line="637"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Vynucené ukončení procesu při resetu HTTP připojení s Qt &lt; 5.4.2.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="639"/>
<location filename="../src/libsync/propagateupload.cpp" line="645"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Soubor zde byl editován, ale je součástí sdílení pouze pro čtení. Původní soubor byl obnoven a editovaná verze je uložena v konfliktním souboru.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="670"/>
<location filename="../src/libsync/propagateupload.cpp" line="676"/>
<source>Poll URL missing</source>
<translation>Chybí adresa URL</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="693"/>
<location filename="../src/libsync/propagateupload.cpp" line="699"/>
<source>The local file was removed during sync.</source>
<translation>Místní soubor byl odstraněn během synchronizace.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="719"/>
<location filename="../src/libsync/propagateupload.cpp" line="725"/>
<source>The server did not acknowledge the last chunk. (No e-tag was present)</source>
<translation>Server nepotvrdil poslední část dat. (Nebyl nalezen e-tag)</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="792"/>
<location filename="../src/libsync/propagateupload.cpp" line="800"/>
<source>Error writing metadata to the database</source>
<translation>Chyba zápisu metadat do databáze</translation>
</message>
@@ -2514,17 +2514,17 @@ Nedoporučuje se jí používat.</translation>
<translation>...</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="300"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="302"/>
<source>create</source>
<translation>vytvořit</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="303"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="305"/>
<source>change</source>
<translation>změnit</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="306"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="308"/>
<source>delete</source>
<translation>smazat</translation>
</message>
@@ -2545,17 +2545,22 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>OCC::ShibbolethWebView</name>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="79"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="81"/>
<source>%1 - Authenticate</source>
<translation>%1 - ověření</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="91"/>
<source>SSL Chipher Debug View</source>
<translation>Ladící zobrazení šifry SSL</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Reauthentication required</source>
<translation>Vyžadováno opětovné ověření</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Your session has expired. You need to re-login to continue to use the client.</source>
<translation>Vaše sezení vypršelo. Chcete-li pokračovat v práci, musíte se znovu přihlásit.</translation>
</message>
@@ -2868,12 +2873,12 @@ Nedoporučuje se jí používat.</translation>
<translation>Je dostupných pouze %1, pro spuštění je potřeba alespoň %2</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1132"/>
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
<source>Not allowed because you don&apos;t have permission to add parent folder</source>
<translation>Není povoleno, protože nemáte oprávnění vytvořit nadřazený adresář</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
<source>Not allowed because you don&apos;t have permission to add files in that folder</source>
<translation>Není povoleno, protože nemáte oprávnění přidávat soubory do tohoto adresáře</translation>
</message>
@@ -2988,54 +2993,54 @@ Nedoporučuje se jí používat.</translation>
<translation>Nelze otevřít synchronizační žurnál</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="887"/>
<location filename="../src/libsync/syncengine.cpp" line="889"/>
<source>File name contains at least one invalid character</source>
<translation>Jméno souboru obsahuje aelspoň jeden neplatný znak</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1091"/>
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorováno podle nastavení &quot;vybrat co synchronizovat&quot;</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1117"/>
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
<source>Not allowed because you don&apos;t have permission to add subfolders to that folder</source>
<translation>Není povoleno, protože nemáte oprávnění přidávat podadresáře do tohoto adresáře</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1159"/>
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Není povoleno nahrát tento soubor, protože je na serveru uložen pouze pro čtení, obnovuji</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1176"/>
<location filename="../src/libsync/syncengine.cpp" line="1196"/>
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
<source>Not allowed to remove, restoring</source>
<translation>Odstranění není povoleno, obnovuji</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1209"/>
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
<source>Local files and share folder removed.</source>
<translation>Místní soubory a sdílený adresář byly odstraněny.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1265"/>
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
<source>Move not allowed, item restored</source>
<translation>Přesun není povolen, položka obnovena</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1276"/>
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Přesun není povolen, protože %1 je pouze pro čtení</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the destination</source>
<translation>cílové umístění</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the source</source>
<translation>zdroj</translation>
</message>
@@ -3121,25 +3126,26 @@ Nedoporučuje se jí používat.</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="390"/>
<location filename="../src/gui/owncloudgui.cpp" line="526"/>
<location filename="../src/gui/owncloudgui.cpp" line="593"/>
<location filename="../src/gui/owncloudgui.cpp" line="544"/>
<location filename="../src/gui/owncloudgui.cpp" line="611"/>
<source>Log in...</source>
<translation>Přihlásit...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="394"/>
<location filename="../src/gui/owncloudgui.cpp" line="518"/>
<location filename="../src/gui/owncloudgui.cpp" line="595"/>
<location filename="../src/gui/owncloudgui.cpp" line="536"/>
<location filename="../src/gui/owncloudgui.cpp" line="613"/>
<source>Log out</source>
<translation>Odhlásit se</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="438"/>
<location filename="../src/gui/owncloudgui.cpp" line="415"/>
<location filename="../src/gui/owncloudgui.cpp" line="456"/>
<source>Recent Changes</source>
<translation>Poslední změny</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="638"/>
<location filename="../src/gui/owncloudgui.cpp" line="656"/>
<source>Checking for changes in &apos;%1&apos;</source>
<translation>Kontrola změn v &apos;%1&apos;</translation>
</message>
@@ -3159,27 +3165,27 @@ Nedoporučuje se jí používat.</translation>
<translation>Otevřít %1 v prohlížeči</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="580"/>
<location filename="../src/gui/owncloudgui.cpp" line="598"/>
<source>Unknown status</source>
<translation>Neznámý stav</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="582"/>
<location filename="../src/gui/owncloudgui.cpp" line="600"/>
<source>Settings...</source>
<translation>Nastavení...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="583"/>
<location filename="../src/gui/owncloudgui.cpp" line="601"/>
<source>Details...</source>
<translation>Podrobnosti...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="588"/>
<location filename="../src/gui/owncloudgui.cpp" line="606"/>
<source>Help</source>
<translation>Nápověda</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="590"/>
<location filename="../src/gui/owncloudgui.cpp" line="608"/>
<source>Quit %1</source>
<translation>Ukončit %1</translation>
</message>
@@ -3224,63 +3230,63 @@ Nedoporučuje se jí používat.</translation>
<translation>Pozastavit všechny adresáře</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="497"/>
<location filename="../src/gui/owncloudgui.cpp" line="515"/>
<source>Unpause all synchronization</source>
<translation>Spustit veškerou synchronizaci</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="499"/>
<location filename="../src/gui/owncloudgui.cpp" line="517"/>
<source>Unpause synchronization</source>
<translation>Spustit synchronizaci</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="507"/>
<location filename="../src/gui/owncloudgui.cpp" line="525"/>
<source>Pause all synchronization</source>
<translation>Pozastavit veškerou synchronizaci</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="509"/>
<location filename="../src/gui/owncloudgui.cpp" line="527"/>
<source>Pause synchronization</source>
<translation>Pozastavit synchronizaci</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="516"/>
<location filename="../src/gui/owncloudgui.cpp" line="534"/>
<source>Log out of all accounts</source>
<translation>Odhlásit ze všech úč</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="524"/>
<location filename="../src/gui/owncloudgui.cpp" line="542"/>
<source>Log in to all accounts...</source>
<translation>Přihlásit ke všem účtům...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="599"/>
<location filename="../src/gui/owncloudgui.cpp" line="617"/>
<source>Crash now</source>
<comment>Only shows in debug mode to allow testing the crash handler</comment>
<translation>Selhání</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="616"/>
<location filename="../src/gui/owncloudgui.cpp" line="634"/>
<source>No items synced recently</source>
<translation>Žádné položky nebyly nedávno synchronizovány</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="643"/>
<location filename="../src/gui/owncloudgui.cpp" line="661"/>
<source>Syncing %1 of %2 (%3 left)</source>
<translation>Synchronizuji %1 ze %2 (zbývá %3)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="648"/>
<location filename="../src/gui/owncloudgui.cpp" line="666"/>
<source>Syncing %1 (%2 left)</source>
<translation>Synchronizuji %1 (zbývá %2)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="668"/>
<location filename="../src/gui/owncloudgui.cpp" line="686"/>
<source>%1 (%2, %3)</source>
<translation>%1 (%2, %3)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="697"/>
<location filename="../src/gui/owncloudgui.cpp" line="715"/>
<source>Up to date</source>
<translation>Aktuální</translation>
</message>
@@ -3501,7 +3507,7 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>QApplication</name>
<message>
<location filename="../src/gui/application.cpp" line="581"/>
<location filename="../src/gui/application.cpp" line="599"/>
<source>QT_LAYOUT_DIRECTION</source>
<translation>QT_LAYOUT_DIRECTION</translation>
</message>
+142 -136
Ver Arquivo
@@ -110,8 +110,8 @@
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="180"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<location filename="../src/gui/accountsettings.cpp" line="684"/>
<location filename="../src/gui/accountsettings.cpp" line="352"/>
<location filename="../src/gui/accountsettings.cpp" line="690"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
@@ -141,148 +141,148 @@
<translation>Benutzerkonto</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="215"/>
<location filename="../src/gui/accountsettings.cpp" line="221"/>
<source>Choose what to sync</source>
<translation>Zu synchronisierende Elemente auswählen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="223"/>
<location filename="../src/gui/accountsettings.cpp" line="229"/>
<source>Remove folder sync connection</source>
<translation>Ordner Synchronisation entfernen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="288"/>
<location filename="../src/gui/accountsettings.cpp" line="294"/>
<source>Folder creation failed</source>
<translation>Ordner anlegen fehlgeschlagen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="289"/>
<location filename="../src/gui/accountsettings.cpp" line="295"/>
<source>&lt;p&gt;Could not create local folder &lt;i&gt;%1&lt;/i&gt;.</source>
<translation>&lt;p&gt;Konnte lokalen Ordner &lt;i&gt;%1&lt;/i&gt; nicht anlegen.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="339"/>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<source>Confirm Folder Sync Connection Removal</source>
<translation>Bestätigen Sie die Löschung der Ordner Sychronisation</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<location filename="../src/gui/accountsettings.cpp" line="351"/>
<source>Remove Folder Sync Connection</source>
<translation>Ordner Synchronisation entfernen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="427"/>
<location filename="../src/gui/accountsettings.cpp" line="433"/>
<source>Sync Running</source>
<translation>Synchronisation läuft</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="428"/>
<location filename="../src/gui/accountsettings.cpp" line="434"/>
<source>The syncing operation is running.&lt;br/&gt;Do you want to terminate it?</source>
<translation>Die Synchronisation läuft gerade.&lt;br/&gt;Wollen Sie sie beenden?</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="495"/>
<location filename="../src/gui/accountsettings.cpp" line="501"/>
<source>%1 in use</source>
<translation>%1 wird verwendet</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="515"/>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<source>%1 as &lt;i&gt;%2&lt;/i&gt;</source>
<translation>%1 als &lt;i&gt;%2&lt;/i&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<source>The server version %1 is old and unsupported! Proceed at your own risk.</source>
<translation>Die Serververision %1 ist al und nicht unterstützt! Fortfahren auf eigenes Risiko.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="523"/>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<source>Connected to %1.</source>
<translation>Verbunden mit %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="525"/>
<location filename="../src/gui/accountsettings.cpp" line="531"/>
<source>Server %1 is temporarily unavailable.</source>
<translation>Server %1 ist derzeit nicht verfügbar.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<location filename="../src/gui/accountsettings.cpp" line="533"/>
<source>Signed out from %1.</source>
<translation>Abgemeldet von %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<source>No connection to %1 at %2.</source>
<translation>Keine Verbindung zu %1 auf %2</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="552"/>
<location filename="../src/gui/accountsettings.cpp" line="558"/>
<source>Log in</source>
<translation>Einloggen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="636"/>
<location filename="../src/gui/accountsettings.cpp" line="642"/>
<source>There are new folders that were not synchronized because they are too big: </source>
<translation>Einige neue Ordner konnten nicht synchronisiert werden, da sie zu groß sind:</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="676"/>
<location filename="../src/gui/accountsettings.cpp" line="682"/>
<source>Confirm Account Removal</source>
<translation>Konto wirklich entfernen?</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="677"/>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<source>&lt;p&gt;Do you really want to remove the connection to the account &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Wollen Sie wirklich die Verbindung zum Konto &lt;i&gt;%1&lt;/i&gt; lösen?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Anmerkung:&lt;/b&gt; Dieser Vorgang wird &lt;b&gt;keine&lt;/b&gt; Dateien löschen.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<location filename="../src/gui/accountsettings.cpp" line="689"/>
<source>Remove connection</source>
<translation>Verbindung entfernen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="211"/>
<location filename="../src/gui/accountsettings.cpp" line="217"/>
<source>Open folder</source>
<translation>Ordner öffnen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="145"/>
<location filename="../src/gui/accountsettings.cpp" line="554"/>
<location filename="../src/gui/accountsettings.cpp" line="560"/>
<source>Log out</source>
<translation>Abmelden</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Resume sync</source>
<translation>Synchronisation fortsetzen</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Pause sync</source>
<translation>Synchronisation pausieren</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="340"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<source>&lt;p&gt;Do you really want to stop syncing the folder &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Möchten Sie wirklich die Synchronisation des Ordners &lt;i&gt;%1&lt;/i&gt; stoppen?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Anmerkung:&lt;/b&gt; Dies wird &lt;b&gt;keine&lt;/b&gt; Dateien löschen.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="482"/>
<location filename="../src/gui/accountsettings.cpp" line="488"/>
<source>%1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>%1 (%3%) von %2 Serverkapazität verwendet. Einige Ordner, einschließlich über das Netzwerk verbundene oder freigegebene Ordner oder geteilte ordner können unterschiedliche Beschränkungen aufweisen. </translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="483"/>
<location filename="../src/gui/accountsettings.cpp" line="489"/>
<source>%1 of %2 in use</source>
<translation>%1 von %2 Serverkapazität verwendet</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="492"/>
<location filename="../src/gui/accountsettings.cpp" line="498"/>
<source>Currently there is no storage usage information available.</source>
<translation>Derzeit sind keine Speichernutzungsinformationen verfügbar.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<location filename="../src/gui/accountsettings.cpp" line="541"/>
<source>No %1 connection configured.</source>
<translation>Keine %1-Verbindung konfiguriert.</translation>
</message>
@@ -579,118 +579,118 @@
<context>
<name>OCC::Folder</name>
<message>
<location filename="../src/gui/folder.cpp" line="135"/>
<location filename="../src/gui/folder.cpp" line="129"/>
<source>Local folder %1 does not exist.</source>
<translation>Lokales Verzeichnis %1 existiert nicht.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="138"/>
<location filename="../src/gui/folder.cpp" line="132"/>
<source>%1 should be a folder but is not.</source>
<translation>%1 sollte ein Ordner sein, ist es aber nicht.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="141"/>
<location filename="../src/gui/folder.cpp" line="135"/>
<source>%1 is not readable.</source>
<translation>%1 ist nicht lesbar.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="387"/>
<location filename="../src/gui/folder.cpp" line="381"/>
<source>%1: %2</source>
<extracomment>this displays an error string (%2) for a file %1</extracomment>
<translation>%1: %2</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="497"/>
<location filename="../src/gui/folder.cpp" line="491"/>
<source>%1 has been removed.</source>
<comment>%1 names a file.</comment>
<translation>%1 wurde gelöscht.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="504"/>
<location filename="../src/gui/folder.cpp" line="498"/>
<source>%1 has been downloaded.</source>
<comment>%1 names a file.</comment>
<translation>%1 wurde heruntergeladen.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="511"/>
<location filename="../src/gui/folder.cpp" line="505"/>
<source>%1 has been updated.</source>
<comment>%1 names a file.</comment>
<translation>%1 wurde aktualisiert.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="518"/>
<location filename="../src/gui/folder.cpp" line="512"/>
<source>%1 has been renamed to %2.</source>
<comment>%1 and %2 name files.</comment>
<translation>%1 wurde in %2 umbenannt.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="525"/>
<location filename="../src/gui/folder.cpp" line="519"/>
<source>%1 has been moved to %2.</source>
<translation>%1 wurde in %2 verschoben.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="495"/>
<location filename="../src/gui/folder.cpp" line="489"/>
<source>%1 and %n other file(s) have been removed.</source>
<translation><numerusform>%1 und %n andere Datei wurde gelöscht.</numerusform><numerusform>%1 und %n andere Dateien wurden gelöscht.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="502"/>
<location filename="../src/gui/folder.cpp" line="496"/>
<source>%1 and %n other file(s) have been downloaded.</source>
<translation><numerusform>%1 und %n andere Datei wurde heruntergeladen.</numerusform><numerusform>%1 und %n andere Dateien wurden heruntergeladen.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="509"/>
<location filename="../src/gui/folder.cpp" line="503"/>
<source>%1 and %n other file(s) have been updated.</source>
<translation><numerusform>%1 und %n andere Datei wurde aktualisiert.</numerusform><numerusform>%1 und %n andere Dateien wurden aktualisiert.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="516"/>
<location filename="../src/gui/folder.cpp" line="510"/>
<source>%1 has been renamed to %2 and %n other file(s) have been renamed.</source>
<translation><numerusform>%1 wurde in %2 umbenannt und %n andere Datei wurde umbenannt.</numerusform><numerusform>%1 wurde in %2 umbenannt und %n andere Dateien wurden umbenannt.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="523"/>
<location filename="../src/gui/folder.cpp" line="517"/>
<source>%1 has been moved to %2 and %n other file(s) have been moved.</source>
<translation><numerusform>%1 wurde in %2 verschoben und %n andere Datei wurde verschoben.</numerusform><numerusform>%1 wurde in %2 verschoben und %n andere Dateien wurden verschoben.</numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="530"/>
<location filename="../src/gui/folder.cpp" line="524"/>
<source>%1 has and %n other file(s) have sync conflicts.</source>
<translation><numerusform>%1 und %n andere Datei haben Konflikte beim Abgleichen.</numerusform><numerusform>%1 und %n andere Dateien haben Konflikte beim Abgleichen.</numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="532"/>
<location filename="../src/gui/folder.cpp" line="526"/>
<source>%1 has a sync conflict. Please check the conflict file!</source>
<translation>Es gab einen Konflikt bei der Synchronisierung von %1. Bitte prüfen Sie die Konfliktdatei!</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="537"/>
<location filename="../src/gui/folder.cpp" line="531"/>
<source>%1 and %n other file(s) could not be synced due to errors. See the log for details.</source>
<translation><numerusform>%1 und %n weitere Datei konnten aufgrund von Fehlern nicht synchronisiert werden. Schauen Sie in das Protokoll für Details.</numerusform><numerusform>%1 und %n weitere Dateien konnten aufgrund von Fehlern nicht synchronisiert werden. Schauen Sie in das Protokoll für Details.</numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="539"/>
<location filename="../src/gui/folder.cpp" line="533"/>
<source>%1 could not be synced due to an error. See the log for details.</source>
<translation>%1 konnte aufgrund eines Fehlers nicht synchronisiert werden. Schauen Sie in das Protokoll für Details.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="545"/>
<location filename="../src/gui/folder.cpp" line="539"/>
<source>Sync Activity</source>
<translation>Synchronisierungsaktivität</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="751"/>
<location filename="../src/gui/folder.cpp" line="747"/>
<source>Could not read system exclude file</source>
<translation>Systemeigene Ausschlussdatei kann nicht gelesen werden</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="962"/>
<location filename="../src/gui/folder.cpp" line="958"/>
<source>A new folder larger than %1 MB has been added: %2.
Please go in the settings to select it if you wish to download it.</source>
<translation>Ein neue Order größer als %1 MB wurde hinzugefügt: %2. Bitte besuchen Sie die Einstellungen, falls sie ihn herunterladen wollen.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="980"/>
<location filename="../src/gui/folder.cpp" line="976"/>
<source>This sync would remove all the files in the sync folder '%1'.
This might be because the folder was silently reconfigured, or that all the files were manually removed.
Are you sure you want to perform this operation?</source>
@@ -699,22 +699,22 @@ Die Ursache ist, dass der Ordner entweder neu konfiguriert wurde, oder weil alle
Sind Sie sicher, dass Sie diese Operation durchführen möchten?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="984"/>
<location filename="../src/gui/folder.cpp" line="980"/>
<source>Remove All Files?</source>
<translation>Alle Dateien löschen?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="986"/>
<location filename="../src/gui/folder.cpp" line="982"/>
<source>Remove all files</source>
<translation>Lösche alle Dateien</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="987"/>
<location filename="../src/gui/folder.cpp" line="983"/>
<source>Keep files</source>
<translation>Dateien behalten</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1005"/>
<location filename="../src/gui/folder.cpp" line="1001"/>
<source>This sync would reset the files to an erlier time in the sync folder '%1'.
This might be because a backup was restored on the server.
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
@@ -723,17 +723,17 @@ Der Grund dafür ist möglicherweise, dass auf dem Server ein Backup eingespielt
Wenn diese Synchronisation fortgesetzt wird, werden Dateien eventuell von älteren Versionen überschrieben. Möchten Sie die neueren Dateien als Konflikt-Dateien behalten?</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1010"/>
<location filename="../src/gui/folder.cpp" line="1006"/>
<source>Backup detected</source>
<translation>Backup erkannt</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1012"/>
<location filename="../src/gui/folder.cpp" line="1008"/>
<source>Normal Synchronisation</source>
<translation>Normale Synchronisation</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1013"/>
<location filename="../src/gui/folder.cpp" line="1009"/>
<source>Keep Local Files as Conflict</source>
<translation>Lokale Konfliktdateien behalten</translation>
</message>
@@ -751,102 +751,102 @@ Wenn diese Synchronisation fortgesetzt wird, werden Dateien eventuell von älter
<translation>Ein altes Synchronisations-Journal &apos;%1&apos; wurde gefunden, konnte jedoch nicht entfernt werden. Bitte stellen Sie sicher, dass keine Anwendung es verwendet.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="926"/>
<location filename="../src/gui/folderman.cpp" line="927"/>
<source> (backup)</source>
<translation>(Sicherung)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="931"/>
<location filename="../src/gui/folderman.cpp" line="932"/>
<source> (backup %1)</source>
<translation>(Sicherung %1)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1138"/>
<location filename="../src/gui/folderman.cpp" line="1139"/>
<source>Undefined State.</source>
<translation>Undefinierter Zustand.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1141"/>
<location filename="../src/gui/folderman.cpp" line="1142"/>
<source>Waiting to start syncing.</source>
<translation>Wartet auf Beginn der Synchronistation</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1144"/>
<location filename="../src/gui/folderman.cpp" line="1145"/>
<source>Preparing for sync.</source>
<translation>Synchronisation wird vorbereitet.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1147"/>
<location filename="../src/gui/folderman.cpp" line="1148"/>
<source>Sync is running.</source>
<translation>Synchronisation läuft.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1150"/>
<location filename="../src/gui/folderman.cpp" line="1151"/>
<source>Last Sync was successful.</source>
<translation>Die letzte Synchronisation war erfolgreich.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1155"/>
<location filename="../src/gui/folderman.cpp" line="1156"/>
<source>Last Sync was successful, but with warnings on individual files.</source>
<translation>Letzte Synchronisation war erfolgreich, aber mit Warnungen für einzelne Dateien.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1158"/>
<location filename="../src/gui/folderman.cpp" line="1159"/>
<source>Setup Error.</source>
<translation>Installationsfehler.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1161"/>
<location filename="../src/gui/folderman.cpp" line="1162"/>
<source>User Abort.</source>
<translation>Benutzer-Abbruch</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1164"/>
<location filename="../src/gui/folderman.cpp" line="1165"/>
<source>Sync is paused.</source>
<translation>Synchronisation wurde angehalten.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1170"/>
<location filename="../src/gui/folderman.cpp" line="1171"/>
<source>%1 (Sync is paused)</source>
<translation>%1 (Synchronisation ist pausiert)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1178"/>
<location filename="../src/gui/folderman.cpp" line="1179"/>
<source>No valid folder selected!</source>
<translation>Kein gültige Ordner gewählt!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1189"/>
<location filename="../src/gui/folderman.cpp" line="1190"/>
<source>The selected path is not a folder!</source>
<translation>Der gewählte Pfad ist kein Ordner!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1193"/>
<location filename="../src/gui/folderman.cpp" line="1194"/>
<source>You have no permission to write to the selected folder!</source>
<translation>Sie haben keine Schreibberechtigung für den ausgewählten Ordner!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1208"/>
<location filename="../src/gui/folderman.cpp" line="1209"/>
<source>The local folder %1 is already used in a folder sync connection. Please pick another one!</source>
<translation>Der lokale Ordner %1 wird bereits als Synchronisationsordner benutzt. Bitte wählen Sie einen anderen!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1213"/>
<location filename="../src/gui/folderman.cpp" line="1214"/>
<source>The local folder %1 already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation>Der lokale Ordner %1 liegt innerhalb eines synchronisierten Ordners. Bitte wählen Sie einen anderen aus!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1220"/>
<location filename="../src/gui/folderman.cpp" line="1221"/>
<source>The local folder %1 is a symbolic link. The link target already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation>Der lokale Ordner %1 ist ein symbolischer Link. Das Ziel des Links beinhaltet schon einen Ordner, der in einer anderen Synchronisation liegt. Bitte wählen Sie einen anderen lokalen Ordner aus!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1227"/>
<location filename="../src/gui/folderman.cpp" line="1228"/>
<source>The local folder %1 is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation>Der lokale Ordner %1 liegt in einem Ordner, der bereits synchronisiert wird. Bitte wählen Sie einen anderen aus!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1233"/>
<location filename="../src/gui/folderman.cpp" line="1234"/>
<source>The local folder %1 is a symbolic link. The link target is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation>Der lokale Ordner %1 ist ein symbolischer Link. Das Ziel des Links liegt in einem Ordner, der schon synchronisiert wird. Bitte wählen Sie einen anderen aus!</translation>
</message>
@@ -1900,7 +1900,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="101"/>
<location filename="../src/libsync/propagateupload.cpp" line="103"/>
<source>Connection Timeout</source>
<translation>Zeitüberschreitung der Verbindung</translation>
</message>
@@ -1908,7 +1908,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="158"/>
<location filename="../src/libsync/propagateupload.cpp" line="160"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Ungültige JSON-Antwort von der Poll-URL</translation>
</message>
@@ -2098,48 +2098,48 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="291"/>
<location filename="../src/libsync/propagateupload.cpp" line="297"/>
<source>File Removed</source>
<translation>Datei gelöscht</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="303"/>
<location filename="../src/libsync/propagateupload.cpp" line="309"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Lokale Datei hat sich während der Synchronisation geändert. Die Synchronisation wird wiederaufgenommen.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="315"/>
<location filename="../src/libsync/propagateupload.cpp" line="704"/>
<location filename="../src/libsync/propagateupload.cpp" line="321"/>
<location filename="../src/libsync/propagateupload.cpp" line="710"/>
<source>Local file changed during sync.</source>
<translation>Eine lokale Datei wurde während der Synchronisation geändert.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="631"/>
<location filename="../src/libsync/propagateupload.cpp" line="637"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Auftragsabbruch beim Rücksetzen der HTTP-Verbindung mit QT &lt; 5.4.2 wird erzwungen.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="639"/>
<location filename="../src/libsync/propagateupload.cpp" line="645"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Die Datei wurde von einer Nur-Lese-Freigabe lokal bearbeitet. Die Datei wurde wiederhergestellt und Ihre Bearbeitung ist in der Konflikte-Datei.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="670"/>
<location filename="../src/libsync/propagateupload.cpp" line="676"/>
<source>Poll URL missing</source>
<translation>Poll-URL fehlt</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="693"/>
<location filename="../src/libsync/propagateupload.cpp" line="699"/>
<source>The local file was removed during sync.</source>
<translation>Die lokale Datei wurde während der Synchronisation gelöscht.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="719"/>
<location filename="../src/libsync/propagateupload.cpp" line="725"/>
<source>The server did not acknowledge the last chunk. (No e-tag was present)</source>
<translation>Der Server hat den letzten Block nicht bestätigt. (Der E-Tag war nicht vorhanden)</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="792"/>
<location filename="../src/libsync/propagateupload.cpp" line="800"/>
<source>Error writing metadata to the database</source>
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
</message>
@@ -2512,17 +2512,17 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>...</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="300"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="302"/>
<source>create</source>
<translation>erstellen</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="303"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="305"/>
<source>change</source>
<translation>Ändern</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="306"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="308"/>
<source>delete</source>
<translation>löschen</translation>
</message>
@@ -2543,17 +2543,22 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>OCC::ShibbolethWebView</name>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="79"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="81"/>
<source>%1 - Authenticate</source>
<translation>%1 - Authentifikation</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="91"/>
<source>SSL Chipher Debug View</source>
<translation>Debug-Ansicht der SSL-Chiffren</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Reauthentication required</source>
<translation>Erneute Authentifizierung erforderlich</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Your session has expired. You need to re-login to continue to use the client.</source>
<translation>Ihre Sitzung ist abgelaufen. Sie müssen sich zur weiteren Nutzung des Clients neu Anmelden.</translation>
</message>
@@ -2866,12 +2871,12 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Nur %1 sind verfügbar. Zum Beginnen werden mindestens %2 benötigt.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1132"/>
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
<source>Not allowed because you don&apos;t have permission to add parent folder</source>
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Unterordnern haben</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
<source>Not allowed because you don&apos;t have permission to add files in that folder</source>
<translation>Nicht erlaubt, da Sie keine Rechte zum Hinzufügen von Dateien in diesen Ordner haben</translation>
</message>
@@ -2986,54 +2991,54 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Synchronisationsbericht kann nicht geöffnet werden</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="887"/>
<location filename="../src/libsync/syncengine.cpp" line="889"/>
<source>File name contains at least one invalid character</source>
<translation>Der Dateiname enthält mindestens ein ungültiges Zeichen</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1091"/>
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Aufgrund der »Zu synchronisierende Elemente auswählen«-Sperrliste ignoriert</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1117"/>
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
<source>Not allowed because you don&apos;t have permission to add subfolders to that folder</source>
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Unterordnern haben</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1159"/>
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Das Hochladen dieser Datei ist nicht erlaubt, da die Datei auf dem Server schreibgeschützt ist, Wiederherstellung</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1176"/>
<location filename="../src/libsync/syncengine.cpp" line="1196"/>
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
<source>Not allowed to remove, restoring</source>
<translation>Löschen nicht erlaubt, Wiederherstellung</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1209"/>
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
<source>Local files and share folder removed.</source>
<translation>Lokale Dateien und Freigabeordner wurden entfernt.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1265"/>
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
<source>Move not allowed, item restored</source>
<translation>Verschieben nicht erlaubt, Element wiederhergestellt</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1276"/>
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Verschieben nicht erlaubt, da %1 schreibgeschützt ist</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the destination</source>
<translation>Das Ziel</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the source</source>
<translation>Die Quelle</translation>
</message>
@@ -3119,25 +3124,26 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="390"/>
<location filename="../src/gui/owncloudgui.cpp" line="526"/>
<location filename="../src/gui/owncloudgui.cpp" line="593"/>
<location filename="../src/gui/owncloudgui.cpp" line="544"/>
<location filename="../src/gui/owncloudgui.cpp" line="611"/>
<source>Log in...</source>
<translation>Einloggen...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="394"/>
<location filename="../src/gui/owncloudgui.cpp" line="518"/>
<location filename="../src/gui/owncloudgui.cpp" line="595"/>
<location filename="../src/gui/owncloudgui.cpp" line="536"/>
<location filename="../src/gui/owncloudgui.cpp" line="613"/>
<source>Log out</source>
<translation>Abmelden</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="438"/>
<location filename="../src/gui/owncloudgui.cpp" line="415"/>
<location filename="../src/gui/owncloudgui.cpp" line="456"/>
<source>Recent Changes</source>
<translation>Letzte Änderungen</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="638"/>
<location filename="../src/gui/owncloudgui.cpp" line="656"/>
<source>Checking for changes in &apos;%1&apos;</source>
<translation>Nach Änderungen suchen in &apos;%1&apos;</translation>
</message>
@@ -3157,27 +3163,27 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>%1 im Browser öffnen</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="580"/>
<location filename="../src/gui/owncloudgui.cpp" line="598"/>
<source>Unknown status</source>
<translation>Unbekannter Status</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="582"/>
<location filename="../src/gui/owncloudgui.cpp" line="600"/>
<source>Settings...</source>
<translation>Einstellungen </translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="583"/>
<location filename="../src/gui/owncloudgui.cpp" line="601"/>
<source>Details...</source>
<translation>Details </translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="588"/>
<location filename="../src/gui/owncloudgui.cpp" line="606"/>
<source>Help</source>
<translation>Hilfe</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="590"/>
<location filename="../src/gui/owncloudgui.cpp" line="608"/>
<source>Quit %1</source>
<translation>%1 beenden</translation>
</message>
@@ -3222,63 +3228,63 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Stoppe alle Ordner</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="497"/>
<location filename="../src/gui/owncloudgui.cpp" line="515"/>
<source>Unpause all synchronization</source>
<translation>Setze gesamte Synchronisation fort</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="499"/>
<location filename="../src/gui/owncloudgui.cpp" line="517"/>
<source>Unpause synchronization</source>
<translation>Setze Synchronisation fort</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="507"/>
<location filename="../src/gui/owncloudgui.cpp" line="525"/>
<source>Pause all synchronization</source>
<translation>Stoppe gesamte Synchronisation</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="509"/>
<location filename="../src/gui/owncloudgui.cpp" line="527"/>
<source>Pause synchronization</source>
<translation>Stoppe Synchronisation</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="516"/>
<location filename="../src/gui/owncloudgui.cpp" line="534"/>
<source>Log out of all accounts</source>
<translation>Bei allen Konten abmelden</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="524"/>
<location filename="../src/gui/owncloudgui.cpp" line="542"/>
<source>Log in to all accounts...</source>
<translation>Bei allen Konten anmelden...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="599"/>
<location filename="../src/gui/owncloudgui.cpp" line="617"/>
<source>Crash now</source>
<comment>Only shows in debug mode to allow testing the crash handler</comment>
<translation>Jetzt abstürzen lassen</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="616"/>
<location filename="../src/gui/owncloudgui.cpp" line="634"/>
<source>No items synced recently</source>
<translation>Keine kürzlich synchronisierten Elemente</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="643"/>
<location filename="../src/gui/owncloudgui.cpp" line="661"/>
<source>Syncing %1 of %2 (%3 left)</source>
<translation>Synchronisiere %1 von %2 (%3 übrig)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="648"/>
<location filename="../src/gui/owncloudgui.cpp" line="666"/>
<source>Syncing %1 (%2 left)</source>
<translation>Synchronisiere %1 (%2 übrig)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="668"/>
<location filename="../src/gui/owncloudgui.cpp" line="686"/>
<source>%1 (%2, %3)</source>
<translation>%1 (%2, %3)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="697"/>
<location filename="../src/gui/owncloudgui.cpp" line="715"/>
<source>Up to date</source>
<translation>Aktuell</translation>
</message>
@@ -3499,7 +3505,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>QApplication</name>
<message>
<location filename="../src/gui/application.cpp" line="581"/>
<location filename="../src/gui/application.cpp" line="599"/>
<source>QT_LAYOUT_DIRECTION</source>
<translation>QT_LAYOUT_DIRECTION</translation>
</message>
+154 -148
Ver Arquivo
@@ -68,12 +68,12 @@
<message>
<location filename="../src/gui/notificationwidget.ui" line="56"/>
<source>Lorem ipsum dolor sit amet</source>
<translation type="unfinished"/>
<translation>Ξεσκεπάζω την ψυχοφθόρα βδελυγμία</translation>
</message>
<message>
<location filename="../src/gui/notificationwidget.ui" line="69"/>
<source>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod temporm </source>
<translation type="unfinished"/>
<translation>Ξεσκεπάζω την ψυχοφθόρα βδελυγμία</translation>
</message>
<message>
<location filename="../src/gui/notificationwidget.ui" line="89"/>
@@ -110,8 +110,8 @@
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="180"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<location filename="../src/gui/accountsettings.cpp" line="684"/>
<location filename="../src/gui/accountsettings.cpp" line="352"/>
<location filename="../src/gui/accountsettings.cpp" line="690"/>
<source>Cancel</source>
<translation>Άκυρο</translation>
</message>
@@ -141,148 +141,148 @@
<translation>Λογαριασμός</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="215"/>
<location filename="../src/gui/accountsettings.cpp" line="221"/>
<source>Choose what to sync</source>
<translation>Επιλέξτε τι θα συγχρονιστεί</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="223"/>
<location filename="../src/gui/accountsettings.cpp" line="229"/>
<source>Remove folder sync connection</source>
<translation>Αφαίρεση σύνδεσης συγχρονισμού φακέλου</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="288"/>
<location filename="../src/gui/accountsettings.cpp" line="294"/>
<source>Folder creation failed</source>
<translation>Αποτυχία αφαίρεσης φακέλου</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="289"/>
<location filename="../src/gui/accountsettings.cpp" line="295"/>
<source>&lt;p&gt;Could not create local folder &lt;i&gt;%1&lt;/i&gt;.</source>
<translation>&lt;p&gt;Αδυναμία δημιουργίας τοπικού φακέλου &lt;i&gt;%1&lt;/i&gt;.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="339"/>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<source>Confirm Folder Sync Connection Removal</source>
<translation>Επιβεβαίωση αφαίρεσης σύνδεσης συγχρονισμού φακέλου</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<location filename="../src/gui/accountsettings.cpp" line="351"/>
<source>Remove Folder Sync Connection</source>
<translation>Αφαίρεση σύνδεσης συγχρονισμού φακέλου</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="427"/>
<location filename="../src/gui/accountsettings.cpp" line="433"/>
<source>Sync Running</source>
<translation>Εκτελείται Συγχρονισμός </translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="428"/>
<location filename="../src/gui/accountsettings.cpp" line="434"/>
<source>The syncing operation is running.&lt;br/&gt;Do you want to terminate it?</source>
<translation>Η λειτουργία συγχρονισμού εκτελείται.&lt;br/&gt; Θέλετε να την τερματίσετε;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="495"/>
<location filename="../src/gui/accountsettings.cpp" line="501"/>
<source>%1 in use</source>
<translation>%1 σε χρήση</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="515"/>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<source>%1 as &lt;i&gt;%2&lt;/i&gt;</source>
<translation>%1 ως &lt;i&gt;%2&lt;/i&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<source>The server version %1 is old and unsupported! Proceed at your own risk.</source>
<translation type="unfinished"/>
<translation>Η έκδοση του διακομιστή %1 είναι παλιά και δεν υποστηρίζεται! Προχωρείστε με δική σας ευθύνη.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="523"/>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<source>Connected to %1.</source>
<translation>Συνδεδεμένο με %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="525"/>
<location filename="../src/gui/accountsettings.cpp" line="531"/>
<source>Server %1 is temporarily unavailable.</source>
<translation>Ο διακομιστής %1 δεν είναι διαθέσιμος προσωρινά.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<location filename="../src/gui/accountsettings.cpp" line="533"/>
<source>Signed out from %1.</source>
<translation>Αποσυνδέθηκε από %1.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<source>No connection to %1 at %2.</source>
<translation>Δεν υπάρχει σύνδεση με το %1 στο %2.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="552"/>
<location filename="../src/gui/accountsettings.cpp" line="558"/>
<source>Log in</source>
<translation>Είσοδος</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="636"/>
<location filename="../src/gui/accountsettings.cpp" line="642"/>
<source>There are new folders that were not synchronized because they are too big: </source>
<translation>Υπάρχουν νέοι φάκελοι που δεν συγχρονίστηκαν καθώς είναι πολύ μεγάλοι:</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="676"/>
<location filename="../src/gui/accountsettings.cpp" line="682"/>
<source>Confirm Account Removal</source>
<translation>Επιβεβαίωση Αφαίρεσης Λογαριασμού</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="677"/>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<source>&lt;p&gt;Do you really want to remove the connection to the account &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Θέλετε πραγματικά να αφαιρέσετε τη σύνδεση με το λογαριασμό &lt;i&gt;%1&lt;/i&gt;;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Σημείωση:&lt;/b&gt; Αυτό &lt;b&gt;δεν&lt;/b&gt; θα διαγράψει κανένα αρχείο.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<location filename="../src/gui/accountsettings.cpp" line="689"/>
<source>Remove connection</source>
<translation>Αφαίρεση σύνδεσης</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="211"/>
<location filename="../src/gui/accountsettings.cpp" line="217"/>
<source>Open folder</source>
<translation>Άνοιγμα φακέλου</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="145"/>
<location filename="../src/gui/accountsettings.cpp" line="554"/>
<location filename="../src/gui/accountsettings.cpp" line="560"/>
<source>Log out</source>
<translation>Αποσύνδεση</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Resume sync</source>
<translation>Συνέχιση συγχρονισμού</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Pause sync</source>
<translation>Παύση συγχρονισμού</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="340"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<source>&lt;p&gt;Do you really want to stop syncing the folder &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation>&lt;p&gt;Θέλετε πραγματικά να σταματήσετε το συγχρονισμό του φακέλου &lt;i&gt;%1&lt;/i&gt;;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Σημείωση:&lt;/b&gt; Αυτό &lt;b&gt;δεν&lt;/b&gt; θα διαγράψει κανένα αρχείο.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="482"/>
<location filename="../src/gui/accountsettings.cpp" line="488"/>
<source>%1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits.</source>
<translation>%1 (%3%) από %2 σε χρήση. Μερικοί φάκελοι, συμπεριλαμβανομένων των δικτυακών ή των κοινόχρηστων μπορεί να έχουν διαφορετικά όρια.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="483"/>
<location filename="../src/gui/accountsettings.cpp" line="489"/>
<source>%1 of %2 in use</source>
<translation>%1 από %2 σε χρήση</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="492"/>
<location filename="../src/gui/accountsettings.cpp" line="498"/>
<source>Currently there is no storage usage information available.</source>
<translation>Προς το παρόν δεν υπάρχουν πληροφορίες χρήσης χώρου αποθήκευσης διαθέσιμες.</translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<location filename="../src/gui/accountsettings.cpp" line="541"/>
<source>No %1 connection configured.</source>
<translation>Δεν έχει ρυθμιστεί σύνδεση με το %1.</translation>
</message>
@@ -330,12 +330,12 @@
<message>
<location filename="../src/gui/activityitemdelegate.cpp" line="145"/>
<source>%1 on %2</source>
<translation type="unfinished"/>
<translation>%1 σε %2</translation>
</message>
<message>
<location filename="../src/gui/activityitemdelegate.cpp" line="147"/>
<source>%1 on %2 (disconnected)</source>
<translation type="unfinished"/>
<translation>%1 σε %2 (αποσυνδεδεμένο)</translation>
</message>
</context>
<context>
@@ -354,7 +354,7 @@
<message>
<location filename="../src/gui/activitywidget.cpp" line="530"/>
<source>List of ignored or erroneous files</source>
<translation type="unfinished"/>
<translation>Κατάλογος αρχείων που αγνοούνται ή περιέχουν σφάλματα</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="534"/>
@@ -375,22 +375,22 @@
<location filename="../src/gui/activitywidget.cpp" line="580"/>
<source>Not Synced (%1)</source>
<extracomment>%1 is the number of not synced files.</extracomment>
<translation type="unfinished"/>
<translation>Δεν είναι συγχρονισμένα (%1)</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="596"/>
<source>The server activity list has been copied to the clipboard.</source>
<translation type="unfinished"/>
<translation>Ο κατάλογος δραστηριοτήτων του διακομιστή έχει αντιγραφθεί στο Πρόχειρο</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="600"/>
<source>The sync activity list has been copied to the clipboard.</source>
<translation type="unfinished"/>
<translation>Ο κατάλογος της δραστηριότητας συγχρονισμού έχει αντιγραφθεί στο Πρόχειρο</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="603"/>
<source>The list of unsynched items has been copied to the clipboard.</source>
<translation type="unfinished"/>
<translation>Ο κατάλογος των μη-συγχρονισμένων αρχείων έχει αντιγραφθεί στο Πρόχειρο</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="608"/>
@@ -430,12 +430,12 @@
<message>
<location filename="../src/gui/activitywidget.cpp" line="139"/>
<source>Action Required: Notifications</source>
<translation type="unfinished"/>
<translation>Απαιτείται ενέργεια: Ειδοποιήσεις</translation>
</message>
<message>
<location filename="../src/gui/activitywidget.cpp" line="144"/>
<source>&lt;br/&gt;Account %1 does not have activities enabled.</source>
<translation type="unfinished"/>
<translation>&lt;br/&gt;Ο λογαριασμός %1 δεν έχει ενεργοποιήσει τις δραστηριότητες.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/activitywidget.cpp" line="351"/>
@@ -579,119 +579,119 @@
<context>
<name>OCC::Folder</name>
<message>
<location filename="../src/gui/folder.cpp" line="135"/>
<location filename="../src/gui/folder.cpp" line="129"/>
<source>Local folder %1 does not exist.</source>
<translation>Δεν υπάρχει ο τοπικός φάκελος %1.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="138"/>
<location filename="../src/gui/folder.cpp" line="132"/>
<source>%1 should be a folder but is not.</source>
<translation>Το %1 θα έπρεπε να είναι φάκελος αλλά δεν είναι.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="141"/>
<location filename="../src/gui/folder.cpp" line="135"/>
<source>%1 is not readable.</source>
<translation> Το %1 δεν είναι αναγνώσιμο. </translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="387"/>
<location filename="../src/gui/folder.cpp" line="381"/>
<source>%1: %2</source>
<extracomment>this displays an error string (%2) for a file %1</extracomment>
<translation>%1: %2</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="497"/>
<location filename="../src/gui/folder.cpp" line="491"/>
<source>%1 has been removed.</source>
<comment>%1 names a file.</comment>
<translation>Το %1 αφαιρέθηκε.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="504"/>
<location filename="../src/gui/folder.cpp" line="498"/>
<source>%1 has been downloaded.</source>
<comment>%1 names a file.</comment>
<translation>Το %1 έχει ληφθεί.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="511"/>
<location filename="../src/gui/folder.cpp" line="505"/>
<source>%1 has been updated.</source>
<comment>%1 names a file.</comment>
<translation>Το %1 έχει ενημερωθεί.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="518"/>
<location filename="../src/gui/folder.cpp" line="512"/>
<source>%1 has been renamed to %2.</source>
<comment>%1 and %2 name files.</comment>
<translation>Το %1 έχει μετονομαστεί σε %2.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="525"/>
<location filename="../src/gui/folder.cpp" line="519"/>
<source>%1 has been moved to %2.</source>
<translation>Το %1 έχει μετακινηθεί στο %2.</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="495"/>
<location filename="../src/gui/folder.cpp" line="489"/>
<source>%1 and %n other file(s) have been removed.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="502"/>
<location filename="../src/gui/folder.cpp" line="496"/>
<source>%1 and %n other file(s) have been downloaded.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="509"/>
<location filename="../src/gui/folder.cpp" line="503"/>
<source>%1 and %n other file(s) have been updated.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="516"/>
<location filename="../src/gui/folder.cpp" line="510"/>
<source>%1 has been renamed to %2 and %n other file(s) have been renamed.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="523"/>
<location filename="../src/gui/folder.cpp" line="517"/>
<source>%1 has been moved to %2 and %n other file(s) have been moved.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="530"/>
<location filename="../src/gui/folder.cpp" line="524"/>
<source>%1 has and %n other file(s) have sync conflicts.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="532"/>
<location filename="../src/gui/folder.cpp" line="526"/>
<source>%1 has a sync conflict. Please check the conflict file!</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="537"/>
<location filename="../src/gui/folder.cpp" line="531"/>
<source>%1 and %n other file(s) could not be synced due to errors. See the log for details.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="539"/>
<location filename="../src/gui/folder.cpp" line="533"/>
<source>%1 could not be synced due to an error. See the log for details.</source>
<translation>%1 δεν ήταν δυνατό να συγχρονιστεί εξαιτίας ενός σφάλματος. Δείτε το αρχείο καταγραφής για λεπτομέρειες.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="545"/>
<location filename="../src/gui/folder.cpp" line="539"/>
<source>Sync Activity</source>
<translation>Δραστηριότητα Συγχρονισμού</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="751"/>
<location filename="../src/gui/folder.cpp" line="747"/>
<source>Could not read system exclude file</source>
<translation>Αδυναμία ανάγνωσης αρχείου αποκλεισμού συστήματος</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="962"/>
<location filename="../src/gui/folder.cpp" line="958"/>
<source>A new folder larger than %1 MB has been added: %2.
Please go in the settings to select it if you wish to download it.</source>
<translation>Ένας νέος φάκελος μεγαλύτερος από %1 MB έχει προστεθεί: %2.
Παρακαλούμε πηγαίνετε στις ρυθμίσεις για να επιλέξετε αν επιθυμείτε να τον κατεβάσετε.</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="980"/>
<location filename="../src/gui/folder.cpp" line="976"/>
<source>This sync would remove all the files in the sync folder '%1'.
This might be because the folder was silently reconfigured, or that all the files were manually removed.
Are you sure you want to perform this operation?</source>
@@ -700,39 +700,39 @@ Are you sure you want to perform this operation?</source>
Είστε σίγουροι ότι θέλετε να εκτελέσετε αυτή τη λειτουργία;</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="984"/>
<location filename="../src/gui/folder.cpp" line="980"/>
<source>Remove All Files?</source>
<translation>Αφαίρεση Όλων των Αρχείων;</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="986"/>
<location filename="../src/gui/folder.cpp" line="982"/>
<source>Remove all files</source>
<translation>Αφαίρεση όλων των αρχείων</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="987"/>
<location filename="../src/gui/folder.cpp" line="983"/>
<source>Keep files</source>
<translation>Διατήρηση αρχείων</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1005"/>
<location filename="../src/gui/folder.cpp" line="1001"/>
<source>This sync would reset the files to an erlier time in the sync folder '%1'.
This might be because a backup was restored on the server.
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1010"/>
<location filename="../src/gui/folder.cpp" line="1006"/>
<source>Backup detected</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1012"/>
<location filename="../src/gui/folder.cpp" line="1008"/>
<source>Normal Synchronisation</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1013"/>
<location filename="../src/gui/folder.cpp" line="1009"/>
<source>Keep Local Files as Conflict</source>
<translation type="unfinished"/>
</message>
@@ -750,102 +750,102 @@ Continuing the sync as normal will cause all your files to be overwritten by an
<translation>Βρέθηκε ένα παλαιότερο αρχείο συγχρονισμού &apos;%1&apos;, αλλά δεν μπόρεσε να αφαιρεθεί. Παρακαλώ βεβαιωθείτε ότι καμμία εφαρμογή δεν το χρησιμοποιεί αυτή τη στιγμή.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="926"/>
<location filename="../src/gui/folderman.cpp" line="927"/>
<source> (backup)</source>
<translation>(αντίγραφο ασφαλείας)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="931"/>
<location filename="../src/gui/folderman.cpp" line="932"/>
<source> (backup %1)</source>
<translation>(αντίγραοφ ασφαλέιας %1)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1138"/>
<location filename="../src/gui/folderman.cpp" line="1139"/>
<source>Undefined State.</source>
<translation>Απροσδιόριστη Κατάσταση.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1141"/>
<location filename="../src/gui/folderman.cpp" line="1142"/>
<source>Waiting to start syncing.</source>
<translation>Αναμονή έναρξης συγχρονισμού.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1144"/>
<location filename="../src/gui/folderman.cpp" line="1145"/>
<source>Preparing for sync.</source>
<translation>Προετοιμασία για συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1147"/>
<location filename="../src/gui/folderman.cpp" line="1148"/>
<source>Sync is running.</source>
<translation>Ο συγχρονισμός εκτελείται.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1150"/>
<location filename="../src/gui/folderman.cpp" line="1151"/>
<source>Last Sync was successful.</source>
<translation>Ο τελευταίος συγχρονισμός ήταν επιτυχής.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1155"/>
<location filename="../src/gui/folderman.cpp" line="1156"/>
<source>Last Sync was successful, but with warnings on individual files.</source>
<translation>Ο τελευταίος συγχρονισμός ήταν επιτυχής, αλλά υπήρχαν προειδοποιήσεις σε συγκεκριμένα αρχεία.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1158"/>
<location filename="../src/gui/folderman.cpp" line="1159"/>
<source>Setup Error.</source>
<translation>Σφάλμα Ρύθμισης.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1161"/>
<location filename="../src/gui/folderman.cpp" line="1162"/>
<source>User Abort.</source>
<translation>Ματαίωση από Χρήστη.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1164"/>
<location filename="../src/gui/folderman.cpp" line="1165"/>
<source>Sync is paused.</source>
<translation>Παύση συγχρονισμού.</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1170"/>
<location filename="../src/gui/folderman.cpp" line="1171"/>
<source>%1 (Sync is paused)</source>
<translation>%1 (Παύση συγχρονισμού)</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1178"/>
<location filename="../src/gui/folderman.cpp" line="1179"/>
<source>No valid folder selected!</source>
<translation>Δεν επιλέχθηκε έγκυρος φάκελος!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1189"/>
<location filename="../src/gui/folderman.cpp" line="1190"/>
<source>The selected path is not a folder!</source>
<translation>Η επιλεγμένη διαδρομή δεν είναι φάκελος!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1193"/>
<location filename="../src/gui/folderman.cpp" line="1194"/>
<source>You have no permission to write to the selected folder!</source>
<translation>Δεν έχετε δικαιώματα εγγραφής στον επιλεγμένο φάκελο!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1208"/>
<location filename="../src/gui/folderman.cpp" line="1209"/>
<source>The local folder %1 is already used in a folder sync connection. Please pick another one!</source>
<translation>Ο τοπικός φάκελος %1 χρησιμοποιείται ήδη σε μια σύνδεση συγχρονισμού φακέλου. Παρακαλώ επιλέξτε άλλον!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1213"/>
<location filename="../src/gui/folderman.cpp" line="1214"/>
<source>The local folder %1 already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation>Ο τοπικός φάκελος %1 περιέχει ήδη ένα φάκελο που χρησιμοποιείται σε μια σύνδεση συγχρονισμού φακέλου. Παρακαλώ επιλέξτε άλλον!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1220"/>
<location filename="../src/gui/folderman.cpp" line="1221"/>
<source>The local folder %1 is a symbolic link. The link target already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation>Ο τοπικός φάκελος %1 είναι συμβολικός σύνδεσμος. Ο σύνδεσμος που παραπέμπει περιέχει ήδη ένα φάκελο που βρίσκεται σε συγχρονισμό. Παρακαλώ επιλέξτε άλλον!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1227"/>
<location filename="../src/gui/folderman.cpp" line="1228"/>
<source>The local folder %1 is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation>Ο τοπικός φάκελος %1 περιέχεται ήδη σε φάκελο που χρησιμοποιείται σε μια σύνδεση συγχρονισμού. Παρακαλώ επιλέξτε άλλον!</translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1233"/>
<location filename="../src/gui/folderman.cpp" line="1234"/>
<source>The local folder %1 is a symbolic link. The link target is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation>Ο τοπικός φάκελος %1 είναι συμβολικός σύνδεσμος. Ο σύνδεσμος που παραπέμπει περιέχεται ήδη σε φάκελο που βρίσκεται σε συγχρονισμό. Παρακαλώ επιλέξτε άλλον!</translation>
</message>
@@ -1900,7 +1900,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="101"/>
<location filename="../src/libsync/propagateupload.cpp" line="103"/>
<source>Connection Timeout</source>
<translation>Λήξη Χρόνου Αναμονής Σύνδεσης</translation>
</message>
@@ -1908,7 +1908,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="158"/>
<location filename="../src/libsync/propagateupload.cpp" line="160"/>
<source>Invalid JSON reply from the poll URL</source>
<translation>Λανθασμένη απάντηση JSON από την ιστοσελίδα poll</translation>
</message>
@@ -2098,48 +2098,48 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="291"/>
<location filename="../src/libsync/propagateupload.cpp" line="297"/>
<source>File Removed</source>
<translation>Το αρχείο αφαιρέθηκε</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="303"/>
<location filename="../src/libsync/propagateupload.cpp" line="309"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τη διάρκεια του συγχρονισμού. Θα συγχρονιστεί πάλι.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="315"/>
<location filename="../src/libsync/propagateupload.cpp" line="704"/>
<location filename="../src/libsync/propagateupload.cpp" line="321"/>
<location filename="../src/libsync/propagateupload.cpp" line="710"/>
<source>Local file changed during sync.</source>
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τον συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="631"/>
<location filename="../src/libsync/propagateupload.cpp" line="637"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation>Εξαναγκασμός ακύρωσης εργασίας στην επαναφορά σύνδεσης HTTP με Qt &lt; 5.4.2</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="639"/>
<location filename="../src/libsync/propagateupload.cpp" line="645"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation>Το αρχείο υπέστη επεξεργασία τοπικά αλλά είναι τμήμα ενός διαμοιρασμένου καταλόγου μόνο για ανάγνωση. Επαναφέρθηκε και το επεξεργασμένο βρίσκεται στο αρχείο συγκρούσεων.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="670"/>
<location filename="../src/libsync/propagateupload.cpp" line="676"/>
<source>Poll URL missing</source>
<translation>Η διεύθυνση poll URL λείπει</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="693"/>
<location filename="../src/libsync/propagateupload.cpp" line="699"/>
<source>The local file was removed during sync.</source>
<translation>Το τοπικό αρχείο αφαιρέθηκε κατά το συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="719"/>
<location filename="../src/libsync/propagateupload.cpp" line="725"/>
<source>The server did not acknowledge the last chunk. (No e-tag was present)</source>
<translation>Ο διακομιστής δεν αναγνώρισε το τελευταίο τμήμα. (Δεν υπήρχε e-tag)</translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="792"/>
<location filename="../src/libsync/propagateupload.cpp" line="800"/>
<source>Error writing metadata to the database</source>
<translation type="unfinished"/>
</message>
@@ -2512,17 +2512,17 @@ It is not advisable to use it.</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="300"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="302"/>
<source>create</source>
<translation>δημιουργία</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="303"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="305"/>
<source>change</source>
<translation>αλλαγή</translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="306"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="308"/>
<source>delete</source>
<translation>διαγραφή</translation>
</message>
@@ -2543,17 +2543,22 @@ It is not advisable to use it.</source>
<context>
<name>OCC::ShibbolethWebView</name>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="79"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="81"/>
<source>%1 - Authenticate</source>
<translation>%1 - Πιστοποίηση</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="91"/>
<source>SSL Chipher Debug View</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Reauthentication required</source>
<translation>Απαιτείται επανάληψη πιστοποίησης</translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Your session has expired. You need to re-login to continue to use the client.</source>
<translation>Η συνεδρία σας έληξε. Πρέπει να εισέλθετε ξανά για να συνεχίσετε να χρησιμοποιείτε το πρόγραμμα.</translation>
</message>
@@ -2866,12 +2871,12 @@ It is not advisable to use it.</source>
<translation>Μόνο %1 είναι διαθέσιμα, απαιτούνται τουλάχιστον %2 για την εκκίνηση</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1132"/>
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
<source>Not allowed because you don&apos;t have permission to add parent folder</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε γονικό κατάλογο</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
<source>Not allowed because you don&apos;t have permission to add files in that folder</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε αρχεία σε αυτόν τον φάκελο</translation>
</message>
@@ -2986,54 +2991,54 @@ It is not advisable to use it.</source>
<translation>Αδυναμία ανοίγματος του αρχείου συγχρονισμού</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="887"/>
<location filename="../src/libsync/syncengine.cpp" line="889"/>
<source>File name contains at least one invalid character</source>
<translation>Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1091"/>
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Αγνοήθηκε εξαιτίας της μαύρης λίστας &quot;διάλεξε τι να συγχρονιστεί&quot;</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1117"/>
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
<source>Not allowed because you don&apos;t have permission to add subfolders to that folder</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε υποφακέλους σε αυτό τον φάκελο</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1159"/>
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Δεν επιτρέπεται να μεταφορτώσετε αυτό το αρχείο επειδή είναι μόνο για ανάγνωση στο διακομιστή, αποκατάσταση σε εξέλιξη</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1176"/>
<location filename="../src/libsync/syncengine.cpp" line="1196"/>
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
<source>Not allowed to remove, restoring</source>
<translation>Δεν επιτρέπεται η αφαίρεση, αποκατάσταση σε εξέλιξη</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1209"/>
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
<source>Local files and share folder removed.</source>
<translation>Οι τοπικοί φάκελοι και ο φάκελος κοινής χρήσης αφαιρέθηκαν.</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1265"/>
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
<source>Move not allowed, item restored</source>
<translation>Η μετακίνηση δεν επιτρέπεται, το αντικείμενο αποκαταστάθηκε</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1276"/>
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Η μετακίνηση δεν επιτρέπεται επειδή το %1 είναι μόνο για ανάγνωση</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the destination</source>
<translation>ο προορισμός</translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the source</source>
<translation>η προέλευση</translation>
</message>
@@ -3119,25 +3124,26 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="390"/>
<location filename="../src/gui/owncloudgui.cpp" line="526"/>
<location filename="../src/gui/owncloudgui.cpp" line="593"/>
<location filename="../src/gui/owncloudgui.cpp" line="544"/>
<location filename="../src/gui/owncloudgui.cpp" line="611"/>
<source>Log in...</source>
<translation>Σύνδεση...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="394"/>
<location filename="../src/gui/owncloudgui.cpp" line="518"/>
<location filename="../src/gui/owncloudgui.cpp" line="595"/>
<location filename="../src/gui/owncloudgui.cpp" line="536"/>
<location filename="../src/gui/owncloudgui.cpp" line="613"/>
<source>Log out</source>
<translation>Αποσύνδεση</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="438"/>
<location filename="../src/gui/owncloudgui.cpp" line="415"/>
<location filename="../src/gui/owncloudgui.cpp" line="456"/>
<source>Recent Changes</source>
<translation>Πρόσφατες Αλλαγές</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="638"/>
<location filename="../src/gui/owncloudgui.cpp" line="656"/>
<source>Checking for changes in &apos;%1&apos;</source>
<translation>Έλεγχος αλλαγών στο &apos;%1&apos;.</translation>
</message>
@@ -3157,27 +3163,27 @@ It is not advisable to use it.</source>
<translation>Άνοιγμα %1 στον περιηγητή</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="580"/>
<location filename="../src/gui/owncloudgui.cpp" line="598"/>
<source>Unknown status</source>
<translation>Άγνωστη κατάσταση</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="582"/>
<location filename="../src/gui/owncloudgui.cpp" line="600"/>
<source>Settings...</source>
<translation>Ρυθμίσεις...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="583"/>
<location filename="../src/gui/owncloudgui.cpp" line="601"/>
<source>Details...</source>
<translation>Λεπτομέρειες...</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="588"/>
<location filename="../src/gui/owncloudgui.cpp" line="606"/>
<source>Help</source>
<translation>Βοήθεια</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="590"/>
<location filename="../src/gui/owncloudgui.cpp" line="608"/>
<source>Quit %1</source>
<translation>Κλείσιμο %1</translation>
</message>
@@ -3222,63 +3228,63 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="497"/>
<location filename="../src/gui/owncloudgui.cpp" line="515"/>
<source>Unpause all synchronization</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="499"/>
<location filename="../src/gui/owncloudgui.cpp" line="517"/>
<source>Unpause synchronization</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="507"/>
<location filename="../src/gui/owncloudgui.cpp" line="525"/>
<source>Pause all synchronization</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="509"/>
<location filename="../src/gui/owncloudgui.cpp" line="527"/>
<source>Pause synchronization</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="516"/>
<location filename="../src/gui/owncloudgui.cpp" line="534"/>
<source>Log out of all accounts</source>
<translation>Έξοδος από όλους τους λογαριασμούς</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="524"/>
<location filename="../src/gui/owncloudgui.cpp" line="542"/>
<source>Log in to all accounts...</source>
<translation>Είσοδος σε όλους τους λογαριασμούς</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="599"/>
<location filename="../src/gui/owncloudgui.cpp" line="617"/>
<source>Crash now</source>
<comment>Only shows in debug mode to allow testing the crash handler</comment>
<translation>Κατάρρευση τώρα</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="616"/>
<location filename="../src/gui/owncloudgui.cpp" line="634"/>
<source>No items synced recently</source>
<translation>Κανένα στοιχείο δεν συγχρονίστηκε πρόσφατα</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="643"/>
<location filename="../src/gui/owncloudgui.cpp" line="661"/>
<source>Syncing %1 of %2 (%3 left)</source>
<translation>Συγχρονισμός %1 από %2 (%3 απομένουν)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="648"/>
<location filename="../src/gui/owncloudgui.cpp" line="666"/>
<source>Syncing %1 (%2 left)</source>
<translation>Συγχρονισμός %1 (%2 απομένουν)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="668"/>
<location filename="../src/gui/owncloudgui.cpp" line="686"/>
<source>%1 (%2, %3)</source>
<translation>%1 (%2, %3)</translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="697"/>
<location filename="../src/gui/owncloudgui.cpp" line="715"/>
<source>Up to date</source>
<translation>Ενημερωμένο</translation>
</message>
@@ -3499,7 +3505,7 @@ It is not advisable to use it.</source>
<context>
<name>QApplication</name>
<message>
<location filename="../src/gui/application.cpp" line="581"/>
<location filename="../src/gui/application.cpp" line="599"/>
<source>QT_LAYOUT_DIRECTION</source>
<translation type="unfinished"/>
</message>
+142 -136
Ver Arquivo
@@ -112,8 +112,8 @@
</message>
<message>
<location filename="../src/gui/accountsettings.ui" line="180"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<location filename="../src/gui/accountsettings.cpp" line="684"/>
<location filename="../src/gui/accountsettings.cpp" line="352"/>
<location filename="../src/gui/accountsettings.cpp" line="690"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
@@ -143,148 +143,148 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="215"/>
<location filename="../src/gui/accountsettings.cpp" line="221"/>
<source>Choose what to sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="223"/>
<location filename="../src/gui/accountsettings.cpp" line="229"/>
<source>Remove folder sync connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="288"/>
<location filename="../src/gui/accountsettings.cpp" line="294"/>
<source>Folder creation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="289"/>
<location filename="../src/gui/accountsettings.cpp" line="295"/>
<source>&lt;p&gt;Could not create local folder &lt;i&gt;%1&lt;/i&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="339"/>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<source>Confirm Folder Sync Connection Removal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="345"/>
<location filename="../src/gui/accountsettings.cpp" line="351"/>
<source>Remove Folder Sync Connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="427"/>
<location filename="../src/gui/accountsettings.cpp" line="433"/>
<source>Sync Running</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="428"/>
<location filename="../src/gui/accountsettings.cpp" line="434"/>
<source>The syncing operation is running.&lt;br/&gt;Do you want to terminate it?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="495"/>
<location filename="../src/gui/accountsettings.cpp" line="501"/>
<source>%1 in use</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="515"/>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<source>%1 as &lt;i&gt;%2&lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="521"/>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<source>The server version %1 is old and unsupported! Proceed at your own risk.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="523"/>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<source>Connected to %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="525"/>
<location filename="../src/gui/accountsettings.cpp" line="531"/>
<source>Server %1 is temporarily unavailable.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="527"/>
<location filename="../src/gui/accountsettings.cpp" line="533"/>
<source>Signed out from %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="529"/>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<source>No connection to %1 at %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="552"/>
<location filename="../src/gui/accountsettings.cpp" line="558"/>
<source>Log in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="636"/>
<location filename="../src/gui/accountsettings.cpp" line="642"/>
<source>There are new folders that were not synchronized because they are too big: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="676"/>
<location filename="../src/gui/accountsettings.cpp" line="682"/>
<source>Confirm Account Removal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="677"/>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<source>&lt;p&gt;Do you really want to remove the connection to the account &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="683"/>
<location filename="../src/gui/accountsettings.cpp" line="689"/>
<source>Remove connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="211"/>
<location filename="../src/gui/accountsettings.cpp" line="217"/>
<source>Open folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="145"/>
<location filename="../src/gui/accountsettings.cpp" line="554"/>
<location filename="../src/gui/accountsettings.cpp" line="560"/>
<source>Log out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Resume sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="220"/>
<location filename="../src/gui/accountsettings.cpp" line="226"/>
<source>Pause sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="340"/>
<location filename="../src/gui/accountsettings.cpp" line="346"/>
<source>&lt;p&gt;Do you really want to stop syncing the folder &lt;i&gt;%1&lt;/i&gt;?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This will &lt;b&gt;not&lt;/b&gt; delete any files.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="482"/>
<location filename="../src/gui/accountsettings.cpp" line="488"/>
<source>%1 (%3%) of %2 in use. Some folders, including network mounted or shared folders, might have different limits.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="483"/>
<location filename="../src/gui/accountsettings.cpp" line="489"/>
<source>%1 of %2 in use</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="492"/>
<location filename="../src/gui/accountsettings.cpp" line="498"/>
<source>Currently there is no storage usage information available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/accountsettings.cpp" line="535"/>
<location filename="../src/gui/accountsettings.cpp" line="541"/>
<source>No %1 connection configured.</source>
<translation type="unfinished"></translation>
</message>
@@ -587,57 +587,57 @@
<context>
<name>OCC::Folder</name>
<message>
<location filename="../src/gui/folder.cpp" line="135"/>
<location filename="../src/gui/folder.cpp" line="129"/>
<source>Local folder %1 does not exist.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="138"/>
<location filename="../src/gui/folder.cpp" line="132"/>
<source>%1 should be a folder but is not.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="141"/>
<location filename="../src/gui/folder.cpp" line="135"/>
<source>%1 is not readable.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="387"/>
<location filename="../src/gui/folder.cpp" line="381"/>
<source>%1: %2</source>
<extracomment>this displays an error string (%2) for a file %1</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="497"/>
<location filename="../src/gui/folder.cpp" line="491"/>
<source>%1 has been removed.</source>
<comment>%1 names a file.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="504"/>
<location filename="../src/gui/folder.cpp" line="498"/>
<source>%1 has been downloaded.</source>
<comment>%1 names a file.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="511"/>
<location filename="../src/gui/folder.cpp" line="505"/>
<source>%1 has been updated.</source>
<comment>%1 names a file.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="518"/>
<location filename="../src/gui/folder.cpp" line="512"/>
<source>%1 has been renamed to %2.</source>
<comment>%1 and %2 name files.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="525"/>
<location filename="../src/gui/folder.cpp" line="519"/>
<source>%1 has been moved to %2.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="495"/>
<location filename="../src/gui/folder.cpp" line="489"/>
<source>%1 and %n other file(s) have been removed.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -645,7 +645,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="502"/>
<location filename="../src/gui/folder.cpp" line="496"/>
<source>%1 and %n other file(s) have been downloaded.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -653,7 +653,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="509"/>
<location filename="../src/gui/folder.cpp" line="503"/>
<source>%1 and %n other file(s) have been updated.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -661,7 +661,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="516"/>
<location filename="../src/gui/folder.cpp" line="510"/>
<source>%1 has been renamed to %2 and %n other file(s) have been renamed.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -669,7 +669,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="523"/>
<location filename="../src/gui/folder.cpp" line="517"/>
<source>%1 has been moved to %2 and %n other file(s) have been moved.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -677,7 +677,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="530"/>
<location filename="../src/gui/folder.cpp" line="524"/>
<source>%1 has and %n other file(s) have sync conflicts.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -685,12 +685,12 @@
</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="532"/>
<location filename="../src/gui/folder.cpp" line="526"/>
<source>%1 has a sync conflict. Please check the conflict file!</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../src/gui/folder.cpp" line="537"/>
<location filename="../src/gui/folder.cpp" line="531"/>
<source>%1 and %n other file(s) could not be synced due to errors. See the log for details.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -698,67 +698,67 @@
</translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="539"/>
<location filename="../src/gui/folder.cpp" line="533"/>
<source>%1 could not be synced due to an error. See the log for details.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="545"/>
<location filename="../src/gui/folder.cpp" line="539"/>
<source>Sync Activity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="751"/>
<location filename="../src/gui/folder.cpp" line="747"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="962"/>
<location filename="../src/gui/folder.cpp" line="958"/>
<source>A new folder larger than %1 MB has been added: %2.
Please go in the settings to select it if you wish to download it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="980"/>
<location filename="../src/gui/folder.cpp" line="976"/>
<source>This sync would remove all the files in the sync folder &apos;%1&apos;.
This might be because the folder was silently reconfigured, or that all the files were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="984"/>
<location filename="../src/gui/folder.cpp" line="980"/>
<source>Remove All Files?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="986"/>
<location filename="../src/gui/folder.cpp" line="982"/>
<source>Remove all files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="987"/>
<location filename="../src/gui/folder.cpp" line="983"/>
<source>Keep files</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1005"/>
<location filename="../src/gui/folder.cpp" line="1001"/>
<source>This sync would reset the files to an erlier time in the sync folder &apos;%1&apos;.
This might be because a backup was restored on the server.
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1010"/>
<location filename="../src/gui/folder.cpp" line="1006"/>
<source>Backup detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1012"/>
<location filename="../src/gui/folder.cpp" line="1008"/>
<source>Normal Synchronisation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folder.cpp" line="1013"/>
<location filename="../src/gui/folder.cpp" line="1009"/>
<source>Keep Local Files as Conflict</source>
<translation type="unfinished"></translation>
</message>
@@ -776,102 +776,102 @@ Continuing the sync as normal will cause all your files to be overwritten by an
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="926"/>
<location filename="../src/gui/folderman.cpp" line="927"/>
<source> (backup)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="931"/>
<location filename="../src/gui/folderman.cpp" line="932"/>
<source> (backup %1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1138"/>
<location filename="../src/gui/folderman.cpp" line="1139"/>
<source>Undefined State.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1141"/>
<location filename="../src/gui/folderman.cpp" line="1142"/>
<source>Waiting to start syncing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1144"/>
<location filename="../src/gui/folderman.cpp" line="1145"/>
<source>Preparing for sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1147"/>
<location filename="../src/gui/folderman.cpp" line="1148"/>
<source>Sync is running.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1150"/>
<location filename="../src/gui/folderman.cpp" line="1151"/>
<source>Last Sync was successful.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1155"/>
<location filename="../src/gui/folderman.cpp" line="1156"/>
<source>Last Sync was successful, but with warnings on individual files.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1158"/>
<location filename="../src/gui/folderman.cpp" line="1159"/>
<source>Setup Error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1161"/>
<location filename="../src/gui/folderman.cpp" line="1162"/>
<source>User Abort.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1164"/>
<location filename="../src/gui/folderman.cpp" line="1165"/>
<source>Sync is paused.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1170"/>
<location filename="../src/gui/folderman.cpp" line="1171"/>
<source>%1 (Sync is paused)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1178"/>
<location filename="../src/gui/folderman.cpp" line="1179"/>
<source>No valid folder selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1189"/>
<location filename="../src/gui/folderman.cpp" line="1190"/>
<source>The selected path is not a folder!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1193"/>
<location filename="../src/gui/folderman.cpp" line="1194"/>
<source>You have no permission to write to the selected folder!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1208"/>
<location filename="../src/gui/folderman.cpp" line="1209"/>
<source>The local folder %1 is already used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1213"/>
<location filename="../src/gui/folderman.cpp" line="1214"/>
<source>The local folder %1 already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1220"/>
<location filename="../src/gui/folderman.cpp" line="1221"/>
<source>The local folder %1 is a symbolic link. The link target already contains a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1227"/>
<location filename="../src/gui/folderman.cpp" line="1228"/>
<source>The local folder %1 is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/folderman.cpp" line="1233"/>
<location filename="../src/gui/folderman.cpp" line="1234"/>
<source>The local folder %1 is a symbolic link. The link target is already contained in a folder used in a folder sync connection. Please pick another one!</source>
<translation type="unfinished"></translation>
</message>
@@ -1921,7 +1921,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PUTFileJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="101"/>
<location filename="../src/libsync/propagateupload.cpp" line="103"/>
<source>Connection Timeout</source>
<translation type="unfinished"></translation>
</message>
@@ -1929,7 +1929,7 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PollJob</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="158"/>
<location filename="../src/libsync/propagateupload.cpp" line="160"/>
<source>Invalid JSON reply from the poll URL</source>
<translation type="unfinished"></translation>
</message>
@@ -2119,48 +2119,48 @@ It is not advisable to use it.</source>
<context>
<name>OCC::PropagateUploadFileQNAM</name>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="291"/>
<location filename="../src/libsync/propagateupload.cpp" line="297"/>
<source>File Removed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="303"/>
<location filename="../src/libsync/propagateupload.cpp" line="309"/>
<source>Local file changed during syncing. It will be resumed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="315"/>
<location filename="../src/libsync/propagateupload.cpp" line="704"/>
<location filename="../src/libsync/propagateupload.cpp" line="321"/>
<location filename="../src/libsync/propagateupload.cpp" line="710"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="631"/>
<location filename="../src/libsync/propagateupload.cpp" line="637"/>
<source>Forcing job abort on HTTP connection reset with Qt &lt; 5.4.2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="639"/>
<location filename="../src/libsync/propagateupload.cpp" line="645"/>
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="670"/>
<location filename="../src/libsync/propagateupload.cpp" line="676"/>
<source>Poll URL missing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="693"/>
<location filename="../src/libsync/propagateupload.cpp" line="699"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="719"/>
<location filename="../src/libsync/propagateupload.cpp" line="725"/>
<source>The server did not acknowledge the last chunk. (No e-tag was present)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/propagateupload.cpp" line="792"/>
<location filename="../src/libsync/propagateupload.cpp" line="800"/>
<source>Error writing metadata to the database</source>
<translation type="unfinished"></translation>
</message>
@@ -2533,17 +2533,17 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="300"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="302"/>
<source>create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="303"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="305"/>
<source>change</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/shareusergroupwidget.cpp" line="306"/>
<location filename="../src/gui/shareusergroupwidget.cpp" line="308"/>
<source>delete</source>
<translation type="unfinished"></translation>
</message>
@@ -2564,17 +2564,22 @@ It is not advisable to use it.</source>
<context>
<name>OCC::ShibbolethWebView</name>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="79"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="81"/>
<source>%1 - Authenticate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="91"/>
<source>SSL Chipher Debug View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Reauthentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="85"/>
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
<source>Your session has expired. You need to re-login to continue to use the client.</source>
<translation type="unfinished"></translation>
</message>
@@ -2885,12 +2890,12 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1132"/>
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
<source>Not allowed because you don&apos;t have permission to add parent folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
<source>Not allowed because you don&apos;t have permission to add files in that folder</source>
<translation type="unfinished"></translation>
</message>
@@ -3005,54 +3010,54 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="887"/>
<location filename="../src/libsync/syncengine.cpp" line="889"/>
<source>File name contains at least one invalid character</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1091"/>
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1117"/>
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
<source>Not allowed because you don&apos;t have permission to add subfolders to that folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1159"/>
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1176"/>
<location filename="../src/libsync/syncengine.cpp" line="1196"/>
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1209"/>
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1265"/>
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1276"/>
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the destination</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsync/syncengine.cpp" line="1277"/>
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
<source>the source</source>
<translation type="unfinished"></translation>
</message>
@@ -3138,25 +3143,26 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="390"/>
<location filename="../src/gui/owncloudgui.cpp" line="526"/>
<location filename="../src/gui/owncloudgui.cpp" line="593"/>
<location filename="../src/gui/owncloudgui.cpp" line="544"/>
<location filename="../src/gui/owncloudgui.cpp" line="611"/>
<source>Log in...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="394"/>
<location filename="../src/gui/owncloudgui.cpp" line="518"/>
<location filename="../src/gui/owncloudgui.cpp" line="595"/>
<location filename="../src/gui/owncloudgui.cpp" line="536"/>
<location filename="../src/gui/owncloudgui.cpp" line="613"/>
<source>Log out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="438"/>
<location filename="../src/gui/owncloudgui.cpp" line="415"/>
<location filename="../src/gui/owncloudgui.cpp" line="456"/>
<source>Recent Changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="638"/>
<location filename="../src/gui/owncloudgui.cpp" line="656"/>
<source>Checking for changes in &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
@@ -3176,27 +3182,27 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="580"/>
<location filename="../src/gui/owncloudgui.cpp" line="598"/>
<source>Unknown status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="582"/>
<location filename="../src/gui/owncloudgui.cpp" line="600"/>
<source>Settings...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="583"/>
<location filename="../src/gui/owncloudgui.cpp" line="601"/>
<source>Details...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="588"/>
<location filename="../src/gui/owncloudgui.cpp" line="606"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="590"/>
<location filename="../src/gui/owncloudgui.cpp" line="608"/>
<source>Quit %1</source>
<translation type="unfinished"></translation>
</message>
@@ -3241,63 +3247,63 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="497"/>
<location filename="../src/gui/owncloudgui.cpp" line="515"/>
<source>Unpause all synchronization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="499"/>
<location filename="../src/gui/owncloudgui.cpp" line="517"/>
<source>Unpause synchronization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="507"/>
<location filename="../src/gui/owncloudgui.cpp" line="525"/>
<source>Pause all synchronization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="509"/>
<location filename="../src/gui/owncloudgui.cpp" line="527"/>
<source>Pause synchronization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="516"/>
<location filename="../src/gui/owncloudgui.cpp" line="534"/>
<source>Log out of all accounts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="524"/>
<location filename="../src/gui/owncloudgui.cpp" line="542"/>
<source>Log in to all accounts...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="599"/>
<location filename="../src/gui/owncloudgui.cpp" line="617"/>
<source>Crash now</source>
<comment>Only shows in debug mode to allow testing the crash handler</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="616"/>
<location filename="../src/gui/owncloudgui.cpp" line="634"/>
<source>No items synced recently</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="643"/>
<location filename="../src/gui/owncloudgui.cpp" line="661"/>
<source>Syncing %1 of %2 (%3 left)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="648"/>
<location filename="../src/gui/owncloudgui.cpp" line="666"/>
<source>Syncing %1 (%2 left)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="668"/>
<location filename="../src/gui/owncloudgui.cpp" line="686"/>
<source>%1 (%2, %3)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/gui/owncloudgui.cpp" line="697"/>
<location filename="../src/gui/owncloudgui.cpp" line="715"/>
<source>Up to date</source>
<translation type="unfinished"></translation>
</message>
@@ -3518,7 +3524,7 @@ It is not advisable to use it.</source>
<context>
<name>QApplication</name>
<message>
<location filename="../src/gui/application.cpp" line="581"/>
<location filename="../src/gui/application.cpp" line="599"/>
<source>QT_LAYOUT_DIRECTION</source>
<translation type="unfinished"></translation>
</message>

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais