Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--CMakeLists.txt9
-rw-r--r--README.md3
-rw-r--r--admin/osx/macosx.pkgproj8
-rw-r--r--admin/win/nsi/l10n/Portuguese.nsh18
-rw-r--r--cmake/modules/AddAppIconMacro.cmake4
-rw-r--r--csync/src/csync_update.c6
-rw-r--r--csync/src/httpbf/src/httpbf.c2
-rwxr-xr-xcsync/tests/ownCloud/t8.pl7
-rw-r--r--doc/images/icon-error.pngbin0 -> 5027 bytes
-rw-r--r--doc/images/icon-information.pngbin0 -> 4220 bytes
-rw-r--r--doc/images/icon-offline.pngbin0 -> 3887 bytes
-rw-r--r--doc/images/icon-paused.pngbin0 -> 4852 bytes
-rw-r--r--doc/images/icon-syncing.pngbin0 -> 5004 bytes
-rw-r--r--doc/images/icon.pngbin1301 -> 4645 bytes
-rw-r--r--doc/navigating.rst156
-rw-r--r--issue_template.md2
-rw-r--r--mirall.qrc5
-rw-r--r--resources/accounts.pngbin0 -> 4378 bytes
-rw-r--r--shell_integration/dolphin/0001-KOverlayIconPlugin.patch256
-rw-r--r--shell_integration/dolphin/CMakeLists.txt17
-rw-r--r--shell_integration/dolphin/README18
-rw-r--r--shell_integration/dolphin/ownclouddolphinplugin.cpp131
-rw-r--r--shell_integration/dolphin/ownclouddolphinplugin.desktop6
-rwxr-xr-xshell_integration/nautilus/syncstate.py69
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.cpp37
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.filters33
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.vcxproj97
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/ReadMe.txt40
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.cpp8
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.h15
-rw-r--r--shell_integration/windows/OCShellExtensions/OCUtilTest/targetver.h8
-rw-r--r--src/gui/folder.cpp31
-rw-r--r--src/gui/folder.h7
-rw-r--r--src/gui/folderman.cpp26
-rw-r--r--src/gui/folderman.h1
-rw-r--r--src/gui/folderwatcher.cpp17
-rw-r--r--src/gui/folderwatcher.h7
-rw-r--r--src/gui/folderwatcher_linux.cpp13
-rw-r--r--src/gui/folderwatcher_win.cpp132
-rw-r--r--src/gui/folderwatcher_win.h2
-rw-r--r--src/gui/owncloudgui.cpp5
-rw-r--r--src/gui/settingsdialog.cpp114
-rw-r--r--src/gui/settingsdialog.cpp.Rbt4310
-rw-r--r--src/gui/settingsdialog.h15
-rw-r--r--src/gui/settingsdialog.ui29
-rw-r--r--src/gui/settingsdialogmac.cpp11
-rw-r--r--src/gui/settingsdialogmac.h1
-rw-r--r--src/gui/socketapi.cpp5
-rw-r--r--src/gui/wizard/owncloudsetuppage.cpp2
-rw-r--r--src/libsync/CMakeLists.txt3
-rw-r--r--src/libsync/accessmanager.cpp8
-rw-r--r--src/libsync/configfile.cpp3
-rw-r--r--src/libsync/cookiejar.cpp16
-rw-r--r--src/libsync/cookiejar.h8
-rw-r--r--src/libsync/creds/shibbolethcredentials.cpp14
-rw-r--r--src/libsync/networkjobs.cpp21
-rw-r--r--src/libsync/networkjobs.h1
-rw-r--r--src/libsync/owncloudpropagator.cpp173
-rw-r--r--src/libsync/owncloudpropagator.h146
-rw-r--r--src/libsync/owncloudtheme.cpp3
-rw-r--r--src/libsync/owncloudtheme.h8
-rw-r--r--src/libsync/propagatedownload.cpp17
-rw-r--r--src/libsync/propagatedownload.h4
-rw-r--r--src/libsync/propagateremotedelete.cpp1
-rw-r--r--src/libsync/propagateremotemkdir.cpp116
-rw-r--r--src/libsync/propagateremotemkdir.h36
-rw-r--r--src/libsync/propagateremotemove.cpp10
-rw-r--r--src/libsync/propagateremotemove.h1
-rw-r--r--src/libsync/propagateupload.cpp41
-rw-r--r--src/libsync/propagateupload.h54
-rw-r--r--src/libsync/propagator_legacy.cpp73
-rw-r--r--src/libsync/propagator_legacy.h64
-rw-r--r--src/libsync/propagatorjobs.cpp180
-rw-r--r--src/libsync/propagatorjobs.h67
-rw-r--r--src/libsync/syncengine.cpp35
-rw-r--r--src/libsync/syncengine.h8
-rw-r--r--src/libsync/syncjournaldb.cpp19
-rw-r--r--src/libsync/syncjournaldb.h10
-rw-r--r--src/libsync/syncjournalfilerecord.h5
-rw-r--r--test/CMakeLists.txt4
-rw-r--r--test/testfolderwatcher.h123
-rw-r--r--translations/mirall_ca.ts116
-rw-r--r--translations/mirall_cs.ts139
-rw-r--r--translations/mirall_de.ts138
-rw-r--r--translations/mirall_el.ts124
-rw-r--r--translations/mirall_en.ts115
-rw-r--r--translations/mirall_es.ts130
-rw-r--r--translations/mirall_es_AR.ts114
-rw-r--r--translations/mirall_et.ts123
-rw-r--r--translations/mirall_eu.ts116
-rw-r--r--translations/mirall_fa.ts112
-rw-r--r--translations/mirall_fi.ts130
-rw-r--r--translations/mirall_fr.ts175
-rw-r--r--translations/mirall_gl.ts162
-rw-r--r--translations/mirall_hu.ts112
-rw-r--r--translations/mirall_it.ts126
-rw-r--r--translations/mirall_ja.ts125
-rw-r--r--translations/mirall_nl.ts143
-rw-r--r--translations/mirall_pl.ts116
-rw-r--r--translations/mirall_pt.ts266
-rw-r--r--translations/mirall_pt_BR.ts125
-rw-r--r--translations/mirall_ru.ts140
-rw-r--r--translations/mirall_sk.ts118
-rw-r--r--translations/mirall_sl.ts140
-rw-r--r--translations/mirall_sv.ts116
-rw-r--r--translations/mirall_th.ts112
-rw-r--r--translations/mirall_tr.ts138
-rw-r--r--translations/mirall_uk.ts138
-rw-r--r--translations/mirall_zh_CN.ts112
-rw-r--r--translations/mirall_zh_TW.ts112
111 files changed, 3894 insertions, 2585 deletions
diff --git a/.gitignore b/.gitignore
index 19fe61e82..c180c90cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
*build*/
*flymake*
CMakeLists.txt.user*
-*.patch
*~
*.autosave
doc/_build/*
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fcde73357..a0417c743 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,13 @@ if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake )
else ()
include ( ${CMAKE_SOURCE_DIR}/OWNCLOUD.cmake )
endif()
+# need this logic to not mess with re/uninstallations via macosx.pkgproj
+if(${APPLICATION_REV_DOMAIN} STREQUAL "com.owncloud.desktopclient")
+ set(APPLICATION_REV_DOMAIN_INSTALLER "com.ownCloud.client")
+else()
+ set(APPLICATION_REV_DOMAIN_INSTALLER ${APPLICATION_REV_DOMAIN})
+endif()
+
if (NOT DEFINED APPLICATION_SHORTNAME)
set ( APPLICATION_SHORTNAME ${APPLICATION_NAME} )
@@ -166,9 +173,11 @@ set(TRANSLATIONS ${TRANS_FILES})
add_subdirectory(csync)
add_subdirectory(src)
+if(NOT BUILD_LIBRARIES_ONLY)
add_subdirectory(shell_integration)
add_subdirectory(doc)
add_subdirectory(admin)
+endif(NOT BUILD_LIBRARIES_ONLY)
if(UNIT_TESTING)
include(CTest)
diff --git a/README.md b/README.md
index c22cc81f9..21570f972 100644
--- a/README.md
+++ b/README.md
@@ -21,8 +21,7 @@ https://github.com/owncloud/client.
## Building the source code
-Please refer to doc/building.rst, or
-[Building the Client](http://doc.owncloud.org/desktop/1.5/building.html)
+[Building the Client](http://doc.owncloud.org/desktop/1.7/building.html)
in the ownCloud Desktop Client manual.
## Maintainers and Contributors
diff --git a/admin/osx/macosx.pkgproj b/admin/osx/macosx.pkgproj
index 460b9d87a..516f0c39f 100644
--- a/admin/osx/macosx.pkgproj
+++ b/admin/osx/macosx.pkgproj
@@ -485,9 +485,9 @@
<key>CONCLUSION_ACTION</key>
<integer>0</integer>
<key>IDENTIFIER</key>
- <string>com.ownCloud.client</string>
+ <string>@APPLICATION_REV_DOMAIN_INSTALLER@</string>
<key>NAME</key>
- <string>ownCloud Client</string>
+ <string>@APPLICATION_NAME@</string>
<key>OVERWRITE_PERMISSIONS</key>
<false/>
<key>VERSION</key>
@@ -1213,7 +1213,7 @@
<key>LANGUAGE</key>
<string>English</string>
<key>VALUE</key>
- <string>ownCloud Client</string>
+ <string>@APPLICATION_NAME@ Client</string>
</dict>
</array>
</dict>
@@ -1413,7 +1413,7 @@
</dict>
</array>
<key>NAME</key>
- <string>ownCloud Installer</string>
+ <string>@APPLICATION_NAME@ Installer</string>
<key>REFERENCE_FOLDER_PATH</key>
<string>@CMAKE_INSTALL_DIR@</string>
</dict>
diff --git a/admin/win/nsi/l10n/Portuguese.nsh b/admin/win/nsi/l10n/Portuguese.nsh
index c39c93d52..4c7dd69b9 100644
--- a/admin/win/nsi/l10n/Portuguese.nsh
+++ b/admin/win/nsi/l10n/Portuguese.nsh
@@ -1,14 +1,14 @@
# Auto-generated - do not modify
-StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento"
-StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Encontrados processos ${APPLICATION_EXECUTABLE} que precisam de ser parados.$\nDeseja que o instalador os pare ?"
+StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Ver notas de lançamento"
+StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Processos(s) ${APPLICATION_EXECUTABLE} em execução. Estes processos precisam de ser interrompidos.$\\nDeseja que o instalador os termine automaticamente?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar processos ${APPLICATION_EXECUTABLE}."
-StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Processo para terminar não foi encontrado!"
-StrCpy $PageReinstall_NEW_Field_1 "Está instalada uma versão anterior de ${APPLICATION_NAME} no seu sistema. Recomenda-se que desinstale primeiro a versão atual antes de instalar. Selecione a operação que pretende fazer, e clique Seguinte para continuar."
+StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Processo a terminar não encontrado!"
+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. 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 desinstalar"
+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 "Já esta instalada uma nova versão dfe ${APPLICATION_NAME}! Não se recomenda instalar uma versão anterior. Se quer mesmo instalar esta versão mais antiga, é melhor desinstalar primeiro a versão atual. Selecione a operação que pretende fazer e clique Seguinte 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á instalado.\nSelecione a operação que deseja fazer, e clique Seguinte para continuar."
StrCpy $PageReinstall_SAME_Field_2 "Adicionar/Reinstalar Componentes"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
@@ -40,7 +40,7 @@ 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)"
StrCpy $UAC_ERROR_ELEVATE "Incapaz de elevar, erro:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador precisa de permissões de administrador, tente novamente"
-StrCpy $INIT_INSTALLER_RUNNING "O instalador já está a correr."
-StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador precisa de acesso de administrador; tente novamente"
-StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador já está a correr."
+StrCpy $INIT_INSTALLER_RUNNING "O instalador já está em execução."
+StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador requer permissões de administrador, tente novamente"
+StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador já está em execução."
StrCpy $SectionGroup_Shortcuts "Atalhos"
diff --git a/cmake/modules/AddAppIconMacro.cmake b/cmake/modules/AddAppIconMacro.cmake
index 9a223e0ea..3106b1bfa 100644
--- a/cmake/modules/AddAppIconMacro.cmake
+++ b/cmake/modules/AddAppIconMacro.cmake
@@ -1,4 +1,4 @@
-SET(WINDRES_EXECUTABLE ${CMAKE_RC_COMPILER})
+SET(WINDRES_EXECUTABLE_BASE ${CMAKE_RC_COMPILER})
# This macro is taken from kdelibs/cmake/modules/KDE4Macros.cmake.
#
@@ -21,7 +21,7 @@ macro (KDE4_ADD_APP_ICON appsources pattern)
else(NOT WINCE)
find_program(PNG2ICO_EXECUTABLE NAMES png2ico PATHS ${HOST_BINDIR} NO_DEFAULT_PATH )
endif(NOT WINCE)
- find_program(WINDRES_EXECUTABLE NAMES windres)
+ find_program(WINDRES_EXECUTABLE NAMES ${WINDRES_EXECUTABLE_BASE})
if(MSVC)
set(WINDRES_EXECUTABLE TRUE)
endif(MSVC)
diff --git a/csync/src/csync_update.c b/csync/src/csync_update.c
index 2934d71ab..b7eff2bac 100644
--- a/csync/src/csync_update.c
+++ b/csync/src/csync_update.c
@@ -29,6 +29,7 @@
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
+#include <time.h>
#include "c_lib.h"
#include "c_jhash.h"
@@ -266,7 +267,10 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
goto out;
}
if((ctx->current == REMOTE_REPLICA && !c_streq(fs->etag, tmp->etag ))
- || (ctx->current == LOCAL_REPLICA && (fs->mtime != tmp->modtime
+ || (ctx->current == LOCAL_REPLICA && ((fs->mtime != tmp->modtime
+ /* Ignore when there is exactly one hour difference because of summer time switches */
+ && (int64_t)difftime(fs->mtime, tmp->modtime) != 3600
+ && (int64_t)difftime(fs->mtime, tmp->modtime) != -3600)
// zero size in statedb can happen during migration
|| (tmp->size != 0 && fs->size != tmp->size)
#if 0
diff --git a/csync/src/httpbf/src/httpbf.c b/csync/src/httpbf/src/httpbf.c
index 40080240e..3c5f2107d 100644
--- a/csync/src/httpbf/src/httpbf.c
+++ b/csync/src/httpbf/src/httpbf.c
@@ -503,6 +503,8 @@ Hbf_State hbf_transfer( ne_session *session, hbf_transfer_t *transfer, const cha
if( transfer->block_cnt > 1 ) {
ne_add_request_header(req, "OC-Chunked", "1");
+ snprintf(buf, sizeof(buf), "%"PRId64, transfer->threshold);
+ ne_add_request_header(req, "OC-Chunk-Size", buf);
}
ne_add_request_header( req, "Content-Type", "application/octet-stream");
diff --git a/csync/tests/ownCloud/t8.pl b/csync/tests/ownCloud/t8.pl
index 4851f75d6..1a0557d7f 100755
--- a/csync/tests/ownCloud/t8.pl
+++ b/csync/tests/ownCloud/t8.pl
@@ -127,10 +127,9 @@ glob_put( "$tmpdir2/*", "parallel" );
csync();
-# We assume the smaller file finished first, blocking
-# the second file from being saved.
-assert( !-e localDir() . 'parallel/FILE.dat' );
-assert( -e localDir() . 'parallel/file.dat' );
+# only one file must exist
+assert( (!-e localDir() . 'parallel/FILE.dat' ) or (!-e localDir() . 'parallel/file.dat') );
+assert( (-e localDir() . 'parallel/FILE.dat' ) or (-e localDir() . 'parallel/file.dat') );
cleanup();
system("rm -r " . $tmpdir);
diff --git a/doc/images/icon-error.png b/doc/images/icon-error.png
new file mode 100644
index 000000000..6eb5e3e40
--- /dev/null
+++ b/doc/images/icon-error.png
Binary files differ
diff --git a/doc/images/icon-information.png b/doc/images/icon-information.png
new file mode 100644
index 000000000..f1ce1eb62
--- /dev/null
+++ b/doc/images/icon-information.png
Binary files differ
diff --git a/doc/images/icon-offline.png b/doc/images/icon-offline.png
new file mode 100644
index 000000000..40a4c7882
--- /dev/null
+++ b/doc/images/icon-offline.png
Binary files differ
diff --git a/doc/images/icon-paused.png b/doc/images/icon-paused.png
new file mode 100644
index 000000000..eada780f9
--- /dev/null
+++ b/doc/images/icon-paused.png
Binary files differ
diff --git a/doc/images/icon-syncing.png b/doc/images/icon-syncing.png
new file mode 100644
index 000000000..4b0f2515d
--- /dev/null
+++ b/doc/images/icon-syncing.png
Binary files differ
diff --git a/doc/images/icon.png b/doc/images/icon.png
index 28dee23cc..29888b6cf 100644
--- a/doc/images/icon.png
+++ b/doc/images/icon.png
Binary files differ
diff --git a/doc/navigating.rst b/doc/navigating.rst
index 9e6bfeca9..6fa12b225 100644
--- a/doc/navigating.rst
+++ b/doc/navigating.rst
@@ -9,7 +9,35 @@ system tray (Windows, KDE), status bar (MAC OS X), or notification area
.. image:: images/icon.png
-**ownCloud Desktop Client icon**
+This is a status indicator which uses overlay icons to indicate the
+current status of your synchronization. The green circle with the white checkmark
+tells you that your synchronization is current and you are connected to your
+ownCloud server.
+
+.. image:: images/icon-syncing.png
+
+The blue icon with the white semi-circles means synchronization is in progress.
+
+.. image:: images/icon-paused.png
+
+The yellow overlay icon with the parallel lines tells you your synchronization
+has been paused. (Most likely by you, by opening the client and clicking
+Account > Pause.)
+
+.. image:: images/icon-offline.png
+
+The gray icon with three white dots means your sync client has lost its
+connection with your ownCloud server.
+
+.. image:: images/icon-information.png
+
+When you see a white circle with the letter "i" that is the informational icon,
+so you should click it to see what it has to tell you.
+
+.. image:: images/icon-error.png
+
+The red circle with the white "x" indicates a configuration error, such as an
+incorrect login or server URL.
Using the Desktop Client Menu
-----------------------------
@@ -24,10 +52,17 @@ following menu:
The Desktop Client menu provides the following options:
* ``Open ownCloud in browser``: Launches the ownCloud WEB interface.
-* ``Open folder 'ownCloud'``: Opens the ownCloud local folder. If you have defined multiple synchronization targets, the window displays each local folder.
-* **Disk space indicator**: Indicates the amount of space currently used on the server.
-* Operation indicator: Displays the status of the current synchronization process or indicates ``Up to date`` if the server and client are in sync.
-* **Recent Changes**: Displays the last six files modified by the synchronization operations and provides access to the current synchronization status listing all changes since the last restart of the ownCloud client.
+* ``Open folder 'ownCloud'``: Opens the ownCloud local folder. If you have
+ defined multiple synchronization targets, the window displays each local
+ folder.
+* **Disk space indicator**: Indicates the amount of space currently used on the
+ server.
+* Operation indicator: Displays the status of the current synchronization
+ process or indicates ``Up to date`` if the server and client are in sync.
+* **Recent Changes**: Displays the last six files modified by the
+ synchronization operations and provides access to the current
+ synchronization status listing all changes since the last restart of the
+ ownCloud client.
* ``Settings...``: Provides access to the settings menu.
* ``Help``: Opens a browser to display ownCloud Desktop Client Guide.
* ``Sign out``: Disables the client from continued synchronizations.
@@ -39,7 +74,9 @@ Using the Account Settings Window
.. index:: account settings, user, password, Server URL
-The ``Account`` window provides a summary for general settings associated with the ownCloud account. This window enalbes you to manage any synchronized folders in the account and enables you to modify them.
+The ``Account`` window provides a summary for general settings associated with
+the ownCloud account. This window enalbes you to manage any synchronized
+folders in the account and enables you to modify them.
To access and modify the account settings:
@@ -48,25 +85,37 @@ To access and modify the account settings:
The fields and options in this window include:
-* ``Connected to <ownCloud instance> as <user>`` field: Indicates the ownCloud server to which the client is synchronizing and the user account on that server.
+* ``Connected to <ownCloud instance> as <user>`` field: Indicates the ownCloud
+ server to which the client is synchronizing and the user account on that
+ server.
-* ``Add Folder...`` button: Provides the ability to add another folder to the synchronization process (see ``Adding a Folder``).
+* ``Add Folder...`` button: Provides the ability to add another folder to the
+ synchronization process (see ``Adding a Folder``).
-* ``Pause/Resume`` button: Pauses the current sync (or prevents the client from starting a new sync) or resumes the sync process.
+* ``Pause/Resume`` button: Pauses the current sync (or prevents the client from
+ starting a new sync) or resumes the sync process.
-* ``Remove`` button: Removes the selected folder from the sync process. This button is used when you want to synchronize only a few folders and not the root folder. If only the root folder is available, you must first remove the root from the synchronization and then add individual folders that you want to synchronize as desired.
+* ``Remove`` button: Removes the selected folder from the sync process. This
+ button is used when you want to synchronize only a few folders and not the
+ root folder. If only the root folder is available, you must first remove the
+ root from the synchronization and then add individual folders that you want
+ to synchronize as desired.
-* ``Storage Usage`` field: Indicates the storage utilization on the ownCloud server.
+* ``Storage Usage`` field: Indicates the storage utilization on the ownCloud
+ server.
* ``Edit Ignored Files`` button: Launches the Ignored Files Editor.
-* ``Modify Account`` button: Enables you to change the ownCloud server to which you are synchronizing. This option launches the ``Setting up an Account`` windows (See ??).
+* ``Modify Account`` button: Enables you to change the ownCloud server to which
+ you are synchronizing. This option launches the ``Setting up an Account``
+ dialog (see :doc:`accountsetup`).
Adding a Folder
^^^^^^^^^^^^^^^
-The ``Add a Folder ...`` button enables you to add a new folder to the syncrhonization process.
+The ``Add a Folder ...`` button enables you to add a new folder to the
+syncrhonization process.
To add a new folder:
@@ -74,37 +123,35 @@ To add a new folder:
The ``Add Folder...`` window opens
- .. image:: images/folderwizard_local.png
- :scale: 50 %
+.. image:: images/folderwizard_local.png
- **``Add Folder...`` window (local folder)**
+2. Specify a *unique* path and alias name to the folder or use the ``Choose...``
+ button to locate the new folder on your system to which you want to
+ synchronize.
-2. Specify a *unique* path and alias name to the folder or use the ``Choose...`` button to locate the new folder on your system to which you want to synchronize.
-
- ..note:: Nested synchronizations are not supported. In other words, you
+.. note:: Nested synchronizations are not supported. In other words, you
cannot add a folder that is already contained within another synchronized
folder. In addition, you cannot add a higher level (parent) folder that
contains a folder to which you are already synchronizing. By default, the
ownCloud Set Up Wizard syncrhonizes your entire ownCloud account to the root
- folder of the ownCloud server. Due to this default setup, you must first remove
- the top-level folder prior to specifying new synchronizations.
+ folder of the ownCloud server. Due to this default setup, you must first
+ remove the top-level folder prior to specifying new synchronizations.
3. Click 'Next' to continue.
A window opens prompting you to select a remote destination folder on the
ownCloud server to which you want to synchronize.
- .. image:: images/folderwizard_remote.png
- :scale: 50 %
-
- **``Add Folder...`` window (remote destination)**
+.. image:: images/folderwizard_remote.png
-4. Select a folder on the ownCloud server to which you want to synchronize your newly added folder.
+4. Select a folder on the ownCloud server to which you want to synchronize your
+newly added folder.
- ..note:: A server folder can only be synchronized with a particular client once.
- If you attempt to sync the root directory, you cannot sync with other folders
- on the server. Similarly, if you sync with folder ``/a``, you cannot create
- another sync with ``/a/b``, since ``b`` is already being synched.
+..note:: A server folder can only be synchronized with a particular client
+ once. If you attempt to sync the root directory, you cannot sync with
+ other folders on the server. Similarly, if you sync with folder ``/a``, you
+ cannot create another sync with ``/a/b``, since ``b`` is already being
+ synched.
Editing Ignored Files
^^^^^^^^^^^^^^^^^^^^^
@@ -117,7 +164,8 @@ In addition to using standard characters, the Ignored Files Editor enables you
to use wild cards (for example, using an asterisk ‘*’ to indicate multiple
characters or a question mark ‘?’ to incidate a single character).
-For additional information about this editor, see `Using the Ignored Files Editor`_
+For additional information about this editor, see `Using the Ignored Files
+Editor`_
Using the Activity Settings Window
----------------------------------
@@ -131,9 +179,6 @@ manner due to containing special characters that cannot be stored on certain
file systems.
.. image:: images/settings_activity.png
- :scale: 50 %
-
- **Activity settings window**
You can open the Activity window in one of the following ways:
@@ -152,9 +197,6 @@ ownCloud Desktop Client and provides information about the software version,
its creator, and the existance of any updates.
.. image:: images/settings_general.png
- :scale: 50 %
-
- **General settings window**
The settings and information contained in this window are as follows:
@@ -170,12 +212,13 @@ The settings and information contained in this window are as follows:
* ``Use Monochrome Icons`` checkbox: Provides the option to check (enable) or
uncheck (disable) the use of monochrome (visually less obtrusive) icons.
- .. note:: This option can be useful on MAC OSX platforms.
+.. note:: This option can be useful on MAC OSX platforms.
* ``About`` field: Provides information about the software authors along with
pertinent build conditions.
- .. note:: Information in this field can be valuable when submitting a support request.
+.. note:: Information in this field can be valuable when submitting a support
+ request.
* ``Updates`` field: Provides information about any available updates for the
ownCloud Desktop Client.
@@ -190,9 +233,6 @@ well as limit the download and upload bandwidth utilization of file
synchronizations.
.. image:: images/settings_network.png
- :scale: 50 %
-
- **Network settings window**
Specifying Proxy Settings
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -202,20 +242,27 @@ that functions as an intermediary contact for requests from clients that are
seeking resources from other servers. For the ownCloud Desktop Client, you can
define the following proxy settings:
-* ``No Proxy`` option: Specifies that the ownCloud Client circumvent the default proxy configured on the system.
+* ``No Proxy`` option: Specifies that the ownCloud Client circumvent the default
+ proxy configured on the system.
* ``Use system proxy`` option: Default setting. Follows the systems proxy
settings. On Linux systems, this setting uses the value of the variable
``http_proxy``.
* ``Specify proxy manually as`` option: Enables you to specify
the following custom proxy settings:
- - ``HTTP(S)``: Used when you are required to use an HTTP(S) proxy server (for example, Squid or Microsoft Forefront TMG).
- - ``SOCKSv5``: Typically used in special company LAN setups, or in combination with the OpenSSH
+ - ``HTTP(S)``: Used when you are required to use an HTTP(S) proxy server (for
+ example, Squid or Microsoft Forefront TMG).
+ - ``SOCKSv5``: Typically used in special company LAN setups, or in combination
+ with the OpenSSH
dynamic application level forwarding feature (see ``ssh -D``).
- - ``Host``: Host name or IP address of the proxy server along with the port number. HTTP proxies
- typically listen over Ports 8080 (default) or 3128. SOCKS servers typically listen over port 1080.
-* ``Proxy Server requires authentication`` checkbox: Provides the option to check (enable/require) or
- uncheck (disable/not require) proxy server authentication. When not checked, the proxy server must
- be configured to allow anonymous usage. When checked, a proxy server username and password is required.
+ - ``Host``: Host name or IP address of the proxy server along with the port
+ number. HTTP proxies typically listen over Ports 8080 (default) or 3128.
+ SOCKS servers typically listen over port 1080.
+* ``Proxy Server requires authentication`` checkbox: Provides the option to
+ check (enable/require) or
+ uncheck (disable/not require) proxy server authentication. When not checked,
+ the proxy server must
+ be configured to allow anonymous usage. When checked, a proxy server username
+ and password is required.
Bandwidth Limiting
^^^^^^^^^^^^^^^^^^
@@ -265,13 +312,10 @@ can use the *Ignored Files Editor* that is embedded in the ownCloud Desktop
Client.
.. image:: images/ignored_files_editor.png
- :scale: 50%
-
- Ignored Files Editor window
-The :guilabel:`Ignored Files Editor` enables you to define customized patterns that the
-ownCloud Client uses to identify files and directories that you want to exclude
-from the synchronization process. For your convenience, the editor is
+The ``Ignored Files Editor`` enables you to define customized patterns
+that the ownCloud Client uses to identify files and directories that you want
+to exclude from the synchronization process. For your convenience, the editor is
pre-populated with a default list of typically ignore patterns. These patterns
are contained in a system file (typically ``sync-exclude.lst``) located in the
ownCloud Client application directory. You cannot modify these pre-populated
diff --git a/issue_template.md b/issue_template.md
index b11453867..c36b35bd1 100644
--- a/issue_template.md
+++ b/issue_template.md
@@ -39,6 +39,8 @@ logs.
```Template for output < 10 lines```
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/1.5/troubleshooting.html#client-logfile )
2. Web server error log:
diff --git a/mirall.qrc b/mirall.qrc
index afd9dce94..e4787ad2d 100644
--- a/mirall.qrc
+++ b/mirall.qrc
@@ -13,7 +13,8 @@
<file>resources/settings.png</file>
<file>resources/activity.png</file>
<file>resources/network.png</file>
- <file>resources/lock-http.png</file>
- <file>resources/lock-https.png</file>
+ <file>resources/lock-http.png</file>
+ <file>resources/lock-https.png</file>
+ <file>resources/accounts.png</file>
</qresource>
</RCC>
diff --git a/resources/accounts.png b/resources/accounts.png
new file mode 100644
index 000000000..ea983a2a4
--- /dev/null
+++ b/resources/accounts.png
Binary files differ
diff --git a/shell_integration/dolphin/0001-KOverlayIconPlugin.patch b/shell_integration/dolphin/0001-KOverlayIconPlugin.patch
new file mode 100644
index 000000000..25f9ceeea
--- /dev/null
+++ b/shell_integration/dolphin/0001-KOverlayIconPlugin.patch
@@ -0,0 +1,256 @@
+From 3a26dc77f8e988ea99b23c4d5a2c831ecc31c920 Mon Sep 17 00:00:00 2001
+From: Olivier Goffart <ogoffart@woboq.com>
+Date: Thu, 17 Jul 2014 13:26:56 +0200
+Subject: [PATCH] WIP: add KOverlayIconPlugin
+
+---
+ .../src/kitemviews/kfileitemmodelrolesupdater.cpp | 35 ++++++++++++-
+ .../src/kitemviews/kfileitemmodelrolesupdater.h | 9 ++++
+ lib/konq/CMakeLists.txt | 4 +-
+ lib/konq/koverlayiconplugin.cpp | 30 ++++++++++++
+ lib/konq/koverlayiconplugin.desktop | 4 ++
+ lib/konq/koverlayiconplugin.h | 57 ++++++++++++++++++++++
+ 6 files changed, 137 insertions(+), 2 deletions(-)
+ create mode 100644 lib/konq/koverlayiconplugin.cpp
+ create mode 100644 lib/konq/koverlayiconplugin.desktop
+ create mode 100644 lib/konq/koverlayiconplugin.h
+
+diff --git a/dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp b/dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp
+index 0865d40..840a65d 100644
+--- a/dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp
++++ b/dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp
+@@ -28,9 +28,11 @@
+ #include <KGlobal>
+ #include <KIO/JobUiDelegate>
+ #include <KIO/PreviewJob>
++#include <KServiceTypeTrader>
+
+ #include "private/kpixmapmodifier.h"
+ #include "private/kdirectorycontentscounter.h"
++#include <koverlayiconplugin.h>
+
+ #include <QApplication>
+ #include <QPainter>
+@@ -129,6 +131,17 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
+ m_directoryContentsCounter = new KDirectoryContentsCounter(m_model, this);
+ connect(m_directoryContentsCounter, SIGNAL(result(QString,int)),
+ this, SLOT(slotDirectoryContentsCountReceived(QString,int)));
++
++
++ const KService::List pluginServices = KServiceTypeTrader::self()->query("KOverlayIconPlugin");
++
++ for (KService::List::ConstIterator it = pluginServices.constBegin(); it != pluginServices.constEnd(); ++it) {
++ KOverlayIconPlugin* plugin = (*it)->createInstance<KOverlayIconPlugin>(this);
++ if (plugin) {
++ m_overlayIconsPlugin.append(plugin);
++ connect(plugin, SIGNAL(overlaysChanged(KUrl,QStringList)), this, SLOT(slotOverlaysChanged(KUrl,QStringList)));
++ }
++ }
+ }
+
+ KFileItemModelRolesUpdater::~KFileItemModelRolesUpdater()
+@@ -1075,7 +1088,11 @@ QHash<QByteArray, QVariant> KFileItemModelRolesUpdater::rolesData(const KFileIte
+ data.insert("type", item.mimeComment());
+ }
+
+- data.insert("iconOverlays", item.overlays());
++ QStringList overlays = item.overlays();
++ foreach(KOverlayIconPlugin *it, m_overlayIconsPlugin) {
++ overlays.append(it->getOverlays(item));
++ }
++ data.insert("iconOverlays", overlays);
+
+ #ifdef HAVE_BALOO
+ if (m_balooFileMonitor) {
+@@ -1086,6 +1103,22 @@ QHash<QByteArray, QVariant> KFileItemModelRolesUpdater::rolesData(const KFileIte
+ return data;
+ }
+
++void KFileItemModelRolesUpdater::slotOverlaysChanged(const KUrl& url, const QStringList &)
++{
++ KFileItem item = m_model->fileItem(url);
++ if (item.isNull())
++ return;
++ int index = m_model->index(item);
++ QHash <QByteArray, QVariant> data = m_model->data(index);
++ QStringList overlays = item.overlays();
++ foreach(KOverlayIconPlugin *it, m_overlayIconsPlugin) {
++ overlays.append(it->getOverlays(item));
++ }
++ data.insert("iconOverlays", overlays);
++ m_model->setData(index, data);
++}
++
++
+ void KFileItemModelRolesUpdater::updateAllPreviews()
+ {
+ if (m_state == Paused) {
+diff --git a/dolphin/src/kitemviews/kfileitemmodelrolesupdater.h b/dolphin/src/kitemviews/kfileitemmodelrolesupdater.h
+index a9e979a..6d3add0 100644
+--- a/dolphin/src/kitemviews/kfileitemmodelrolesupdater.h
++++ b/dolphin/src/kitemviews/kfileitemmodelrolesupdater.h
+@@ -32,6 +32,7 @@
+ #include <QSize>
+ #include <QStringList>
+
++class KOverlayIconPlugin;
+ class KDirectoryContentsCounter;
+ class KFileItemModel;
+ class KJob;
+@@ -180,6 +181,12 @@ private slots:
+ void slotPreviewJobFinished();
+
+ /**
++ * Is invoked when one of the KOverlayIconPlugin emit the signal that an overlay has changed
++ */
++ void slotOverlaysChanged(const KUrl&, const QStringList&);
++
++
++ /**
+ * Resolves the sort role of the next item in m_pendingSortRole, applies it
+ * to the model, and invokes itself if there are any pending items left. If
+ * that is not the case, \a startUpdating() is called.
+@@ -331,6 +338,8 @@ private:
+
+ KDirectoryContentsCounter* m_directoryContentsCounter;
+
++ QList<KOverlayIconPlugin*> m_overlayIconsPlugin;
++
+ #ifdef HAVE_BALOO
+ Baloo::FileMonitor* m_balooFileMonitor;
+ #endif
+diff --git a/lib/konq/CMakeLists.txt b/lib/konq/CMakeLists.txt
+index 8ecbfa9..7381caf 100644
+--- a/lib/konq/CMakeLists.txt
++++ b/lib/konq/CMakeLists.txt
+@@ -22,6 +22,7 @@ set(konq_LIB_SRCS
+ konq_historyprovider.cpp
+ kversioncontrolplugin.cpp # used by dolphin and its version control plugins (deprecated)
+ kversioncontrolplugin2.cpp # used by dolphin and its version control plugins
++ koverlayiconplugin.cpp
+
+ konq_nameandurlinputdialog.cpp # deprecated (functionality has moved to kdelibs)
+ knewmenu.cpp # deprecated (functionality has moved to kdelibs)
+@@ -67,8 +68,9 @@ install( FILES
+ konq_fileitemcapabilities.h
+ kversioncontrolplugin.h
+ kversioncontrolplugin2.h
++ koverlayiconplugin.h
+ konq_historyprovider.h
+ konq_historyentry.h
+ DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel
+ )
+-install( FILES konqpopupmenuplugin.desktop konqdndpopupmenuplugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
++install( FILES konqpopupmenuplugin.desktop konqdndpopupmenuplugin.desktop koverlayiconplugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+diff --git a/lib/konq/koverlayiconplugin.cpp b/lib/konq/koverlayiconplugin.cpp
+new file mode 100644
+index 0000000..6125040
+--- /dev/null
++++ b/lib/konq/koverlayiconplugin.cpp
+@@ -0,0 +1,30 @@
++/*****************************************************************************
++ * Copyright (C) 2014 by Olivier Goffart <ogoffart@woboq.com> *
++ * *
++ * This library is free software; you can redistribute it and/or *
++ * modify it under the terms of the GNU Library General Public *
++ * License version 2 as published by the Free Software Foundation. *
++ * *
++ * This library is distributed in the hope that it will be useful, *
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
++ * Library General Public License for more details. *
++ * *
++ * You should have received a copy of the GNU Library General Public License *
++ * along with this library; see the file COPYING.LIB. If not, write to *
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
++ * Boston, MA 02110-1301, USA. *
++ *****************************************************************************/
++
++#include "koverlayiconplugin.h"
++#include <KFileItem>
++
++KOverlayIconPlugin::KOverlayIconPlugin(QObject* parent) : QObject(parent)
++{
++}
++
++KOverlayIconPlugin::~KOverlayIconPlugin()
++{
++}
++
++#include "koverlayiconplugin.moc"
+diff --git a/lib/konq/koverlayiconplugin.desktop b/lib/konq/koverlayiconplugin.desktop
+new file mode 100644
+index 0000000..65a1170
+--- /dev/null
++++ b/lib/konq/koverlayiconplugin.desktop
+@@ -0,0 +1,4 @@
++[Desktop Entry]
++Type=ServiceType
++X-KDE-ServiceType=KOverlayIconPlugin
++Comment=Plugin to add overlay icons in Dolphin
+diff --git a/lib/konq/koverlayiconplugin.h b/lib/konq/koverlayiconplugin.h
+new file mode 100644
+index 0000000..bcdf31b
+--- /dev/null
++++ b/lib/konq/koverlayiconplugin.h
+@@ -0,0 +1,57 @@
++/*****************************************************************************
++ * Copyright (C) 2014 by Olivier Goffart <ogoffart@woboq.com> *
++ * *
++ * This library is free software; you can redistribute it and/or *
++ * modify it under the terms of the GNU Library General Public *
++ * License version 2 as published by the Free Software Foundation. *
++ * *
++ * This library is distributed in the hope that it will be useful, *
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
++ * Library General Public License for more details. *
++ * *
++ * You should have received a copy of the GNU Library General Public License *
++ * along with this library; see the file COPYING.LIB. If not, write to *
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
++ * Boston, MA 02110-1301, USA. *
++ *****************************************************************************/
++
++
++#ifndef OverlayIconPlugin_H
++#define OverlayIconPlugin_H
++
++#include <QtCore/QObject>
++#include <libkonq_export.h>
++
++class KUrl;
++class KFileItem;
++
++/**
++ * @brief Base class for overlay icon plugins.
++ *
++ * Enables the file manager to show custom overlay icons on files.
++ *
++ * To write a custom plugin you need to create a .desktop file for your plugin with
++ * KDE-ServiceTypes=KOverlayIconPlugin
++ */
++class LIBKONQ_EXPORT KOverlayIconPlugin : public QObject {
++ Q_OBJECT
++ void *d;
++public:
++ explicit KOverlayIconPlugin(QObject *parent = 0);
++ ~KOverlayIconPlugin();
++
++ /**
++ * Returns a list of overlay pixmap to add to a file
++ * This can be a path to an icon, or the icon name
++ */
++ virtual QStringList getOverlays(const KFileItem &item) = 0;
++signals:
++
++ /**
++ * Emit this signal when the list of overlay icon changed for a given URL
++ */
++ void overlaysChanged(const KUrl &url, const QStringList &overlays);
++};
++
++#endif
+--
+2.1.3
+
diff --git a/shell_integration/dolphin/CMakeLists.txt b/shell_integration/dolphin/CMakeLists.txt
new file mode 100644
index 000000000..0d70854ab
--- /dev/null
+++ b/shell_integration/dolphin/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 2.6)
+project(dolphin-owncloud)
+find_package(KDE4 REQUIRED)
+include(KDE4Defaults)
+include(MacroLibrary)
+find_package(LibKonq REQUIRED)
+
+add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
+add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
+include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} )
+include_directories( ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${LIBKONQ_INCLUDE_DIR} )
+
+kde4_add_plugin(ownclouddolphinplugin ownclouddolphinplugin.cpp)
+
+target_link_libraries(ownclouddolphinplugin ${KDE4_KIO_LIBS} ${LIBKONQ_LIBRARY})
+install(FILES ownclouddolphinplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+install(TARGETS ownclouddolphinplugin DESTINATION ${PLUGIN_INSTALL_DIR})
diff --git a/shell_integration/dolphin/README b/shell_integration/dolphin/README
new file mode 100644
index 000000000..715adcbbf
--- /dev/null
+++ b/shell_integration/dolphin/README
@@ -0,0 +1,18 @@
+
+
+- The patch 0001-KOverlayIconPlugin.patch should be applied to kde-baseapps git repository
+(It should applies to both KDE/4.14 or Applications/14.12 branches)
+
+- Recompile and install dolphin
+
+- Build and install the plugin
+
+- After installing, run
+ kdeinit4 --noincremental
+
+- To test taht the plugin is well installed
+ ktraderclient --servicetype KOverlayIconPlugin
+ It should show the Owncloud plugin
+
+- restart dolphin (make sure to kill all instances)
+
diff --git a/shell_integration/dolphin/ownclouddolphinplugin.cpp b/shell_integration/dolphin/ownclouddolphinplugin.cpp
new file mode 100644
index 000000000..def66573d
--- /dev/null
+++ b/shell_integration/dolphin/ownclouddolphinplugin.cpp
@@ -0,0 +1,131 @@
+/******************************************************************************
+ * Copyright (C) 2014 by Olivier Goffart <ogoffart@woboq.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ******************************************************************************/
+
+#include <koverlayiconplugin.h>
+#include <KPluginFactory>
+#include <KPluginLoader>
+#include <kdebug.h>
+#include <kfileitem.h>
+#include <QtNetwork/QLocalSocket>
+
+
+class OwncloudDolphinPlugin : public KOverlayIconPlugin
+{
+ Q_OBJECT
+ QLocalSocket m_socket;
+ typedef QHash<QByteArray, QByteArray> StatusMap;
+ StatusMap m_status;
+ QByteArray m_line;
+
+public:
+ explicit OwncloudDolphinPlugin(QObject* parent, const QList<QVariant>&) : KOverlayIconPlugin(parent) {
+ connect(&m_socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
+ tryConnect();
+ }
+
+ virtual QStringList getOverlays(const KFileItem& item) {
+ KUrl url = item.url();
+ if (!url.isLocalFile())
+ return QStringList();
+ const QByteArray localFile = url.toLocalFile().toUtf8();
+ kDebug() << localFile;
+
+ tryConnect();
+ if (m_socket.state() == QLocalSocket::ConnectingState) {
+ if (!m_socket.waitForConnected(100)) {
+ kWarning() << "not connected" << m_socket.errorString();
+ }
+ }
+ if (m_socket.state() == QLocalSocket::ConnectedState) {
+ m_socket.write("RETRIEVE_FILE_STATUS:");
+ m_socket.write(localFile);
+ m_socket.write("\n");
+ }
+
+ StatusMap::iterator it = m_status.find(localFile);
+ if (it != m_status.constEnd()) {
+ return overlaysForString(*it);
+ }
+ return QStringList();
+ }
+
+
+
+private:
+ void tryConnect() {
+ if (m_socket.state() != QLocalSocket::UnconnectedState)
+ return;
+ QString runtimeDir = QFile::decodeName(qgetenv("XDG_RUNTIME_DIR"));
+ QString socketPath = runtimeDir + "/" + "ownCloud" + "/socket";
+ m_socket.connectToServer(socketPath);
+ }
+
+ QStringList overlaysForString(const QByteArray status) {
+ QStringList r;
+ if (status.startsWith("NOP"))
+ return r;
+
+ if (status.startsWith("OK"))
+ r << "dialog-ok";
+ if (status.startsWith("SYNC") || status.startsWith("NEW"))
+ r << "view-refresh";
+
+ if (status.contains("+SWM"))
+ r << "document-share";
+
+ kDebug() << status << r;
+ return r;
+ }
+
+private slots:
+ void readyRead() {
+ while (m_socket.bytesAvailable()) {
+ m_line += m_socket.readLine();
+ if (!m_line.endsWith("\n"))
+ continue;
+ QByteArray line;
+ qSwap(line, m_line);
+ line.chop(1);
+ kDebug() << "got line " << line;
+ if (line.isEmpty())
+ continue;
+ QList<QByteArray> tokens = line.split(':');
+ if (tokens.count() != 3)
+ continue;
+ if (tokens[0] != "STATUS" && tokens[0] != "BROADCAST")
+ continue;
+ if (tokens[2].isEmpty())
+ continue;
+
+ const QByteArray name = tokens[2];
+ QByteArray &status = m_status[name]; // reference to the item in the hash
+ if (status == tokens[1])
+ continue;
+ status = tokens[1];
+
+ emit this->overlaysChanged(KUrl::fromLocalFile(QString::fromUtf8(name)), overlaysForString(status));
+ }
+ }
+};
+
+K_PLUGIN_FACTORY(OwncloudDolphinPluginFactory, registerPlugin<OwncloudDolphinPlugin>();)
+K_EXPORT_PLUGIN(OwncloudDolphinPluginFactory("ownclouddolhpinplugin"))
+
+
+#include "ownclouddolphinplugin.moc"
diff --git a/shell_integration/dolphin/ownclouddolphinplugin.desktop b/shell_integration/dolphin/ownclouddolphinplugin.desktop
new file mode 100644
index 000000000..07fc63f33
--- /dev/null
+++ b/shell_integration/dolphin/ownclouddolphinplugin.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Type=Service
+Name=Owncloud
+X-KDE-ServiceTypes=KOverlayIconPlugin
+MimeType=text/plain;
+X-KDE-Library=ownclouddolphinplugin
diff --git a/shell_integration/nautilus/syncstate.py b/shell_integration/nautilus/syncstate.py
index 3d0cc0488..ca8b2b1f4 100755
--- a/shell_integration/nautilus/syncstate.py
+++ b/shell_integration/nautilus/syncstate.py
@@ -18,6 +18,19 @@ import socket
from gi.repository import GObject, Nautilus
+
+def get_runtime_dir():
+ """Returns the value of $XDG_RUNTIME_DIR, a directory path.
+
+ If the value is not set, returns the same default as in Qt5
+ """
+ try:
+ return os.environ['XDG_RUNTIME_DIR']
+ except KeyError:
+ fallback = '/tmp/runtime-' + os.environ['USER']
+ return fallback
+
+
class syncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.InfoProvider):
nautilusVFSFile_table = {}
@@ -38,21 +51,21 @@ class syncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
try:
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
postfix = "/"+self.appname+"/socket"
- sock_file = os.environ["XDG_RUNTIME_DIR"]+postfix
+ sock_file = get_runtime_dir()+postfix
print ("XXXX " + sock_file + " <=> " + postfix)
if sock_file != postfix:
- try:
- print("Socket File: "+sock_file)
- self.sock.connect(sock_file)
- self.connected = True
- print("Setting connected to %r" % self.connected )
- self.watch_id = GObject.io_add_watch(self.sock, GObject.IO_IN, self.handle_notify)
- do_reconnect = False
- except Exception, e:
- print("Could not connect to unix socket." + str(e))
- else:
- print("Sock-File not valid: "+sock_file)
- except Exception, e:
+ try:
+ print("Socket File: "+sock_file)
+ self.sock.connect(sock_file)
+ self.connected = True
+ print("Setting connected to %r" % self.connected )
+ self.watch_id = GObject.io_add_watch(self.sock, GObject.IO_IN, self.handle_notify)
+ do_reconnect = False
+ except Exception as e:
+ print("Could not connect to unix socket." + str(e))
+ else:
+ print("Sock-File not valid: "+sock_file)
+ except Exception as e:
print("Connect could not be established, try again later " + str(e))
self.sock.close()
# print("Returning %r" % do_reconnect)
@@ -75,7 +88,7 @@ class syncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
return None
def askForOverlay(self, file):
- # print("Asking for overlay for "+file)
+ # print("Asking for overlay for "+file)
if os.path.isdir(file):
folderStatus = self.sendCommand("RETRIEVE_FOLDER_STATUS:"+file+"\n");
@@ -85,15 +98,15 @@ class syncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
def invalidate_items_underneath(self, path):
update_items = []
if not self.nautilusVFSFile_table:
- self.askForOverlay(path)
- else:
- for p in self.nautilusVFSFile_table:
- if p == path or p.startswith(path):
- item = self.nautilusVFSFile_table[p]['item']
- update_items.append(item)
+ self.askForOverlay(path)
+ else:
+ for p in self.nautilusVFSFile_table:
+ if p == path or p.startswith(path):
+ item = self.nautilusVFSFile_table[p]['item']
+ update_items.append(item)
- for item in update_items:
- item.invalidate_extension_info()
+ for item in update_items:
+ item.invalidate_extension_info()
# Handles a single line of server respoonse and sets the emblem
def handle_server_response(self, l):
@@ -118,16 +131,16 @@ class syncStateExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.Info
# file = parts[1]
# print "Action for " + file + ": "+parts[0]
if action == 'STATUS':
- newState = parts[1]
+ newState = parts[1]
emblem = Emblems[newState]
if emblem:
itemStore = self.find_item_for_file(parts[2])
if itemStore:
- if( not itemStore['state'] or newState != itemStore['state'] ):
- item = itemStore['item']
- item.add_emblem(emblem)
- # print "Setting emblem on " + parts[2]+ "<>"+emblem+"<>"
- self.nautilusVFSFile_table[parts[2]] = {'item': item, 'state':newState}
+ if( not itemStore['state'] or newState != itemStore['state'] ):
+ item = itemStore['item']
+ item.add_emblem(emblem)
+ # print "Setting emblem on " + parts[2]+ "<>"+emblem+"<>"
+ self.nautilusVFSFile_table[parts[2]] = {'item': item, 'state':newState}
elif action == 'UPDATE_VIEW':
# Search all items underneath this path and invalidate them
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.cpp b/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.cpp
deleted file mode 100644
index 179f8334a..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// ConsoleApplication1.cpp : Defines the entry point for the console application.
-//
-
-#include "stdafx.h"
-
-#include <iostream>
-#include <vector>
-#include <string>
-
-#include "RemotePathChecker.h"
-#include "StringUtil.h"
-
-using namespace std;
-
-int _tmain(int argc, _TCHAR* argv[])
-{
- RemotePathChecker checker(33001);
-
- vector<wstring> paths;
-
- wstring test1(L"C:\\Users\\owncloud\\ownCloud\\wizard2.png");
- wstring test2(L"C:\\Users\\owncloud\\ownCloud\\wizard3.png");
- wstring test3(L"C:\\Users\\owncloud\\ownCloud\\HAMMANET.png");
- paths.push_back(test1);
- paths.push_back(test2);
- paths.push_back(test3);
-
-// wstring test3 = StringUtil::toUtf16(StringUtil::toUtf8(test1.c_str()));
-
- vector<wstring>::iterator it;
- for (it = paths.begin(); it != paths.end(); ++it) {
- bool monitored = checker.IsMonitoredPath(it->c_str(), false);
- wcout << *it << " " << monitored << " with value " << checker.GetPathType() << endl;
- }
- return 0;
-}
-
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.filters b/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.filters
deleted file mode 100644
index 2507d8e20..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.filters
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="stdafx.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="targetver.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="stdafx.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="OCUtilTest.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.vcxproj b/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.vcxproj
deleted file mode 100644
index e4c35a3b2..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/OCUtilTest.vcxproj
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{A81E3DAE-8FE7-4BD0-82F9-939B2D59D033}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>OCUtilTest</RootNamespace>
- <ProjectName>OCUtilTest</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v120</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- <AdditionalIncludeDirectories>..\OCUtil</AdditionalIncludeDirectories>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>..\$(Configuration)\$(Platform);</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>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <SDLCheck>true</SDLCheck>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="stdafx.h" />
- <ClInclude Include="targetver.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="OCUtilTest.cpp" />
- <ClCompile Include="stdafx.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- </ClCompile>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/ReadMe.txt b/shell_integration/windows/OCShellExtensions/OCUtilTest/ReadMe.txt
deleted file mode 100644
index 4cb8a2f4b..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/ReadMe.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-========================================================================
- CONSOLE APPLICATION : ConsoleApplication1 Project Overview
-========================================================================
-
-AppWizard has created this ConsoleApplication1 application for you.
-
-This file contains a summary of what you will find in each of the files that
-make up your ConsoleApplication1 application.
-
-
-ConsoleApplication1.vcxproj
- This is the main project file for VC++ projects generated using an Application Wizard.
- It contains information about the version of Visual C++ that generated the file, and
- information about the platforms, configurations, and project features selected with the
- Application Wizard.
-
-ConsoleApplication1.vcxproj.filters
- This is the filters file for VC++ projects generated using an Application Wizard.
- It contains information about the association between the files in your project
- and the filters. This association is used in the IDE to show grouping of files with
- similar extensions under a specific node (for e.g. ".cpp" files are associated with the
- "Source Files" filter).
-
-ConsoleApplication1.cpp
- This is the main application source file.
-
-/////////////////////////////////////////////////////////////////////////////
-Other standard files:
-
-StdAfx.h, StdAfx.cpp
- These files are used to build a precompiled header (PCH) file
- named ConsoleApplication1.pch and a precompiled types file named StdAfx.obj.
-
-/////////////////////////////////////////////////////////////////////////////
-Other notes:
-
-AppWizard uses "TODO:" comments to indicate parts of the source code you
-should add to or customize.
-
-/////////////////////////////////////////////////////////////////////////////
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.cpp b/shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.cpp
deleted file mode 100644
index f1d63e0b4..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// stdafx.cpp : source file that includes just the standard includes
-// ConsoleApplication1.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.h b/shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.h
deleted file mode 100644
index b005a839d..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/stdafx.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#pragma once
-
-#include "targetver.h"
-
-#include <stdio.h>
-#include <tchar.h>
-
-
-
-// TODO: reference additional headers your program requires here
diff --git a/shell_integration/windows/OCShellExtensions/OCUtilTest/targetver.h b/shell_integration/windows/OCShellExtensions/OCUtilTest/targetver.h
deleted file mode 100644
index 87c0086de..000000000
--- a/shell_integration/windows/OCShellExtensions/OCUtilTest/targetver.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-// Including SDKDDKVer.h defines the highest available Windows platform.
-
-// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
-// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
-
-#include <SDKDDKVer.h>
diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp
index ca0c696f0..b86334dd9 100644
--- a/src/gui/folder.cpp
+++ b/src/gui/folder.cpp
@@ -540,6 +540,37 @@ int Folder::slotWipeBlacklist()
return _journal.wipeBlacklist();
}
+void Folder::slotWatchedPathChanged(const QString& path)
+{
+ // When no sync is running or it's in the prepare phase, we can
+ // always schedule a new sync.
+ if (! _engine || _syncResult.status() == SyncResult::SyncPrepare) {
+ emit scheduleToSync(alias());
+ return;
+ }
+
+ // The folder watcher fires a lot of bogus notifications during
+ // a sync operation, both for actual user files and the database
+ // and log. Therefore we check notifications against operations
+ // the sync is doing to filter out our own changes.
+ bool ownChange = false;
+#ifdef Q_OS_MAC
+ // On OSX the folder watcher does not report changes done by our
+ // own process. Therefore nothing needs to be done here!
+#else
+ // Use the path to figure out whether it was our own change
+ const auto maxNotificationDelay = 15*1000;
+ qint64 time = _engine->timeSinceFileTouched(path);
+ if (time != -1 && time < maxNotificationDelay) {
+ ownChange = true;
+ }
+#endif
+
+ if (! ownChange) {
+ emit scheduleToSync(alias());
+ }
+}
+
void Folder::setConfigFile( const QString& file )
{
_configFile = file;
diff --git a/src/gui/folder.h b/src/gui/folder.h
index 51f7b005c..6d255031c 100644
--- a/src/gui/folder.h
+++ b/src/gui/folder.h
@@ -154,6 +154,13 @@ public slots:
int slotWipeBlacklist();
int blackListEntryCount();
+ /**
+ * Triggered by the folder watcher when a file/dir in this folder
+ * changes. Needs to check whether this change should trigger a new
+ * sync run to be scheduled.
+ */
+ void slotWatchedPathChanged(const QString& path);
+
private slots:
void slotSyncStarted();
void slotSyncError(const QString& );
diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp
index f2dce11c8..def2dfc0b 100644
--- a/src/gui/folderman.cpp
+++ b/src/gui/folderman.cpp
@@ -55,10 +55,6 @@ FolderMan::FolderMan(QObject *parent) :
connect(_folderChangeSignalMapper, SIGNAL(mapped(const QString &)),
this, SIGNAL(folderSyncStateChange(const QString &)));
- _folderWatcherSignalMapper = new QSignalMapper(this);
- connect(_folderWatcherSignalMapper, SIGNAL(mapped(const QString&)),
- this, SLOT(slotScheduleSync(const QString&)));
-
ne_sock_init();
Q_ASSERT(!_instance);
_instance = this;
@@ -100,8 +96,6 @@ void FolderMan::unloadFolder( const QString& alias )
_folderChangeSignalMapper->removeMappings(f);
if( _folderWatchers.contains(alias)) {
- FolderWatcher *fw = _folderWatchers[alias];
- _folderWatcherSignalMapper->removeMappings(fw);
_folderWatchers.remove(alias);
}
_folderMap.remove( alias );
@@ -135,20 +129,19 @@ void FolderMan::registerFolderMonitor( Folder *folder )
if( !folder ) return;
if( !_folderWatchers.contains(folder->alias() ) ) {
- FolderWatcher *fw = new FolderWatcher(folder->path(), this);
+ FolderWatcher *fw = new FolderWatcher(folder->path(), folder);
ConfigFile cfg;
fw->addIgnoreListFile( cfg.excludeFile(ConfigFile::SystemScope) );
fw->addIgnoreListFile( cfg.excludeFile(ConfigFile::UserScope) );
- // Connect the folderChanged signal, which comes with the changed path,
+ // Connect the pathChanged signal, which comes with the changed path,
// to the signal mapper which maps to the folder alias. The changed path
// is lost this way, but we do not need it for the current implementation.
- connect(fw, SIGNAL(folderChanged(QString)), _folderWatcherSignalMapper, SLOT(map()));
- _folderWatcherSignalMapper->setMapping(fw, folder->alias());
+ connect(fw, SIGNAL(pathChanged(QString)), folder, SLOT(slotWatchedPathChanged(QString)));
_folderWatchers.insert(folder->alias(), fw);
// This is at the moment only for the behaviour of the SocketApi.
- connect(fw, SIGNAL(folderChanged(QString)), folder, SLOT(watcherSlot(QString)));
+ connect(fw, SIGNAL(pathChanged(QString)), folder, SLOT(watcherSlot(QString)));
}
// register the folder with the socket API
@@ -444,17 +437,6 @@ void FolderMan::slotScheduleSync( const QString& alias )
return;
}
- // The folder watcher fires a lot of bogus notifications during
- // a sync operation, both for actual user files and the database
- // and log. Never enqueue a folder for sync while it is syncing.
- // We lose some genuine sync requests that way, but that can't be
- // helped.
- // ^^ FIXME: Note that this is not the case on OS X
- if( _currentSyncFolder == alias ) {
- qDebug() << "folder " << alias << " is currently syncing. NOT scheduling.";
- return;
- }
-
if( _socketApi ) {
// We want the SocketAPI to already now update so that it can show the EVAL icon
// for files/folders. Only do this when not syncing, else we might get a lot
diff --git a/src/gui/folderman.h b/src/gui/folderman.h
index 74646b3de..21fabfee0 100644
--- a/src/gui/folderman.h
+++ b/src/gui/folderman.h
@@ -150,7 +150,6 @@ private:
Folder::Map _folderMap;
QString _folderConfigPath;
QSignalMapper *_folderChangeSignalMapper;
- QSignalMapper *_folderWatcherSignalMapper;
QString _currentSyncFolder;
bool _syncEnabled;
QMap<QString, FolderWatcher*> _folderWatchers;
diff --git a/src/gui/folderwatcher.cpp b/src/gui/folderwatcher.cpp
index 486d0589e..d01566363 100644
--- a/src/gui/folderwatcher.cpp
+++ b/src/gui/folderwatcher.cpp
@@ -130,7 +130,7 @@ void FolderWatcher::changeDetected( const QStringList& paths )
_lastPaths = pathsSet;
_timer.restart();
- QSet<QString> changedFolders;
+ QSet<QString> changedPaths;
// ------- handle ignores:
for (int i = 0; i < paths.size(); ++i) {
@@ -139,20 +139,15 @@ void FolderWatcher::changeDetected( const QStringList& paths )
continue;
}
- QFileInfo fi(path);
- if (fi.isDir()) {
- changedFolders.insert(path);
- } else {
- changedFolders.insert(fi.dir().path());
- }
+ changedPaths.insert(path);
}
- if (changedFolders.isEmpty()) {
+ if (changedPaths.isEmpty()) {
return;
}
- qDebug() << "detected changes in folders:" << changedFolders;
- foreach (const QString &path, changedFolders) {
- emit folderChanged(path);
+ qDebug() << "detected changes in paths:" << changedPaths;
+ foreach (const QString &path, changedPaths) {
+ emit pathChanged(path);
}
}
diff --git a/src/gui/folderwatcher.h b/src/gui/folderwatcher.h
index e4945ea70..27b131886 100644
--- a/src/gui/folderwatcher.h
+++ b/src/gui/folderwatcher.h
@@ -34,7 +34,7 @@ class FolderWatcherPrivate;
/*
* Folder Watcher monitors a directory and its sub directories
* for changes in the local file system. Changes are signalled
- * through the folderChanged() signal.
+ * through the pathChanged() signal.
*
* Note that if new folders are created, this folderwatcher class
* does not automatically adds them to the list of monitored
@@ -74,8 +74,9 @@ public:
bool pathIsIgnored( const QString& path );
signals:
- /** Emitted when one of the paths is changed */
- void folderChanged(const QString &path);
+ /** Emitted when one of the watched directories or one
+ * of the contained files is changed. */
+ void pathChanged(const QString &path);
/** Emitted if an error occurs */
void error(const QString& error);
diff --git a/src/gui/folderwatcher_linux.cpp b/src/gui/folderwatcher_linux.cpp
index 0bb0e18cf..e8f280b34 100644
--- a/src/gui/folderwatcher_linux.cpp
+++ b/src/gui/folderwatcher_linux.cpp
@@ -159,23 +159,22 @@ void FolderWatcherPrivate::slotReceivedNotification(int fd)
while(i + sizeof(struct inotify_event) < static_cast<unsigned int>(len)) {
// cast an inotify_event
event = (struct inotify_event*)&buffer[i];
- // with the help of watch descriptor, retrieve, corresponding INotify
if (event == NULL) {
qDebug() << "NULL event";
i += sizeof(struct inotify_event);
continue;
}
- // fire event
- // Note: The name of the changed file and stuff could be taken from
- // the event data structure. That does not happen yet.
+ // Fire event for the path that was changed.
if (event->len > 0 && event->wd > -1) {
+ QByteArray fileName(event->name);
// qDebug() << Q_FUNC_INFO << event->name;
- if (QByteArray(event->name).startsWith(".csync") ||
- QByteArray(event->name).startsWith(".owncloudsync.log")) {
+ if (fileName.startsWith(".csync_journal.db") ||
+ fileName.startsWith(".owncloudsync.log")) {
// qDebug() << "ignore journal";
} else {
- const QString p = _watches[event->wd];
+ const QString p = _watches[event->wd] + '/' + fileName;
+ //qDebug() << "found a change in " << p;
_parent->changeDetected(p);
}
}
diff --git a/src/gui/folderwatcher_win.cpp b/src/gui/folderwatcher_win.cpp
index 1e0bf2884..29b7f5d25 100644
--- a/src/gui/folderwatcher_win.cpp
+++ b/src/gui/folderwatcher_win.cpp
@@ -13,6 +13,7 @@
#include <QThread>
#include <QDebug>
+#include <QDir>
#include "folderwatcher.h"
#include "folderwatcher_win.h"
@@ -23,52 +24,123 @@
namespace OCC {
-void WatcherThread::run()
+void WatcherThread::watchChanges(size_t fileNotifyBufferSize,
+ bool* increaseBufferSize)
{
- _handle = FindFirstChangeNotification((wchar_t*)_path.utf16(),
- true, // recursive watch
- FILE_NOTIFY_CHANGE_FILE_NAME |
- FILE_NOTIFY_CHANGE_DIR_NAME |
- FILE_NOTIFY_CHANGE_LAST_WRITE);
+ *increaseBufferSize = false;
+
+ _handle = CreateFileW(
+ (wchar_t*)_path.utf16(),
+ FILE_LIST_DIRECTORY,
+ FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE,
+ NULL,
+ OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS,
+ NULL
+ );
if (_handle == INVALID_HANDLE_VALUE)
{
- qDebug() << Q_FUNC_INFO << "FindFirstChangeNotification function failed, stopping watcher!";
- FindCloseChangeNotification(_handle);
+ DWORD errorCode = GetLastError();
+ qDebug() << Q_FUNC_INFO << "Failed to create handle for" << _path << ", error:" << errorCode;
_handle = 0;
return;
}
- if (_handle == NULL)
- {
- qDebug() << Q_FUNC_INFO << "FindFirstChangeNotification returned null, stopping watcher!";
- FindCloseChangeNotification(_handle);
- _handle = 0;
- return;
- }
+ // QVarLengthArray ensures the stack-buffer is aligned like double and qint64.
+ QVarLengthArray<char, 4096*10> fileNotifyBuffer;
+ fileNotifyBuffer.resize(fileNotifyBufferSize);
+
+ const size_t fileNameBufferSize = 4096;
+ TCHAR fileNameBuffer[fileNameBufferSize];
+
+ forever {
+ FILE_NOTIFY_INFORMATION *pFileNotifyBuffer =
+ (FILE_NOTIFY_INFORMATION*)fileNotifyBuffer.data();
+ DWORD dwBytesReturned = 0;
+ SecureZeroMemory(pFileNotifyBuffer, fileNotifyBufferSize);
+ if(ReadDirectoryChangesW( _handle, (LPVOID)pFileNotifyBuffer,
+ fileNotifyBufferSize, true,
+ FILE_NOTIFY_CHANGE_FILE_NAME |
+ FILE_NOTIFY_CHANGE_DIR_NAME |
+ FILE_NOTIFY_CHANGE_LAST_WRITE,
+ &dwBytesReturned, NULL, NULL))
+ {
+ FILE_NOTIFY_INFORMATION *curEntry = pFileNotifyBuffer;
+ forever {
+ size_t len = curEntry->FileNameLength / 2;
+ QString file = _path + "\\" + QString::fromWCharArray(curEntry->FileName, len);
+
+ // Unless the file was removed or renamed, get its full long name
+ // TODO: We could still try expanding the path in the tricky cases...
+ QString longfile = file;
+ if (curEntry->Action != FILE_ACTION_REMOVED
+ && curEntry->Action != FILE_ACTION_RENAMED_OLD_NAME) {
+ size_t longNameSize = GetLongPathNameW(reinterpret_cast<LPCWSTR>(file.utf16()), fileNameBuffer, fileNameBufferSize);
+ if (longNameSize > 0) {
+ longfile = QString::fromUtf16(reinterpret_cast<const ushort *>(fileNameBuffer), longNameSize);
+ } else {
+ qDebug() << Q_FUNC_INFO << "Error converting file name to full length, keeping original name.";
+ }
+ }
+ longfile = QDir::cleanPath(longfile);
+
+ qDebug() << Q_FUNC_INFO << "Found change in" << longfile << "action:" << curEntry->Action;
+ emit changed(longfile);
- while(true) {
- switch(WaitForSingleObject(_handle, /*wait*/ INFINITE)) {
- case WAIT_OBJECT_0:
- if (FindNextChangeNotification(_handle) == false) {
- qDebug() << Q_FUNC_INFO << "FindFirstChangeNotification returned FALSE, stopping watcher!";
- FindCloseChangeNotification(_handle);
- _handle = 0;
- return;
+ if (curEntry->NextEntryOffset == 0) {
+ break;
+ }
+ curEntry = (FILE_NOTIFY_INFORMATION*)(
+ (char*)curEntry + curEntry->NextEntryOffset);
}
- // qDebug() << Q_FUNC_INFO << "Change detected in" << _path << "from" << QThread::currentThread ();
- emit changed(_path);
- break;
- default:
- qDebug() << Q_FUNC_INFO << "Error while watching";
+ } else {
+ DWORD errorCode = GetLastError();
+ switch(errorCode) {
+ case ERROR_NOTIFY_ENUM_DIR:
+ qDebug() << Q_FUNC_INFO << "The buffer for changes overflowed! Triggering a generic change and resizing";
+ emit changed(_path);
+ *increaseBufferSize = true;
+ break;
+ default:
+ qDebug() << Q_FUNC_INFO << "General error" << errorCode << "while watching. Exiting.";
+ break;
+ }
+ CloseHandle(_handle);
+ _handle = NULL;
+ return;
+ }
+ }
+}
+
+void WatcherThread::run()
+{
+ // If this buffer fills up before we've extracted its data we will lose
+ // change information. Therefore start big.
+ size_t bufferSize = 4096*10;
+ size_t maxBuffer = 64*1024;
+
+ forever {
+ bool increaseBufferSize = false;
+ watchChanges(bufferSize, &increaseBufferSize);
+
+ if (increaseBufferSize) {
+ bufferSize = qMin(bufferSize*2, maxBuffer);
+ } else {
+ // Other errors shouldn't actually happen,
+ // so sleep a bit to avoid running into the same error case in a
+ // tight loop.
+ sleep(2);
}
}
}
WatcherThread::~WatcherThread()
{
- if (_handle)
- FindCloseChangeNotification(_handle);
+ if (_handle) {
+ CloseHandle(_handle);
+ _handle = NULL;
+ }
}
FolderWatcherPrivate::FolderWatcherPrivate(FolderWatcher *p, const QString& path)
diff --git a/src/gui/folderwatcher_win.h b/src/gui/folderwatcher_win.h
index 7dff7541b..08c766076 100644
--- a/src/gui/folderwatcher_win.h
+++ b/src/gui/folderwatcher_win.h
@@ -33,6 +33,8 @@ public:
protected:
void run();
+ void watchChanges(size_t fileNotifyBufferSize,
+ bool* increaseBufferSize);
signals:
void changed(const QString &path);
diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp
index 25a9f057c..cd6527caa 100644
--- a/src/gui/owncloudgui.cpp
+++ b/src/gui/owncloudgui.cpp
@@ -278,11 +278,6 @@ void ownCloudGui::slotComputeOverallSyncStatus()
QIcon icon = Theme::instance()->syncStateIcon(SyncResult::Problem);
_tray->setIcon( icon );
_tray->setToolTip(tr("There are no sync folders configured."));
-#if !defined Q_OS_MAC
- if( _settingsDialog ) {
- _settingsDialog->slotUpdateAccountIcon(icon);
- }
-#endif
}
}
}
diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp
index d83bbd48d..99f3614d3 100644
--- a/src/gui/settingsdialog.cpp
+++ b/src/gui/settingsdialog.cpp
@@ -26,26 +26,37 @@
#include <QLabel>
#include <QStandardItemModel>
+#include <QStackedWidget>
#include <QPushButton>
#include <QDebug>
#include <QSettings>
+#include <QToolBar>
+#include <QLayout>
+
+namespace {
+ const char TOOLBAR_CSS[] =
+ "QToolBar { background: white; margin: 0; padding: 0; border: none; border-bottom: 1px solid grey; spacing: 0; } "
+ "QToolBar QToolButton { background: white; border: none; border-bottom: 1px solid grey; margin: 0; padding: 0; } "
+ "QToolBar QToolButton:checked { background: %1; color: %2; }";
+}
namespace OCC {
-QIcon createDummy() {
- QIcon icon;
- QPixmap p(32,32);
- p.fill(Qt::transparent);
- icon.addPixmap(p);
- return icon;
-}
-
SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) :
- QDialog(parent),
- _ui(new Ui::SettingsDialog)
+ QDialog(parent)
+ , _ui(new Ui::SettingsDialog)
+ , _accountSettings(new AccountSettings)
+
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
_ui->setupUi(this);
+ QToolBar *toolBar = new QToolBar;
+ toolBar->setIconSize(QSize(32,32));
+ QString highlightColor(palette().highlight().color().name());
+ QString altBase(palette().alternateBase().color().name());
+ toolBar->setStyleSheet(QString::fromAscii(TOOLBAR_CSS).arg(highlightColor).arg(altBase));
+ toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+ layout()->setMenuBar(toolBar);
// People perceive this as a Window, so also make Ctrl+W work
QAction *closeWindowAction = new QAction(this);
@@ -55,32 +66,44 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) :
setObjectName("Settings"); // required as group for saveGeometry call
- setWindowTitle(tr("%1").arg(Theme::instance()->appNameGUI()));
+ setWindowTitle(Theme::instance()->appNameGUI());
- _accountSettings = new AccountSettings(this);
- addAccount(tr("Account"), _accountSettings);
+ QIcon accountIcon(QLatin1String(":/mirall/resources/accounts.png"));
+ QAction *accountAction = toolBar->addAction(accountIcon, tr("Account"));
+ accountAction->setCheckable(true);
+ _ui->stack->addWidget(_accountSettings);
QIcon protocolIcon(QLatin1String(":/mirall/resources/activity.png"));
- QListWidgetItem *protocol= new QListWidgetItem(protocolIcon, tr("Activity"), _ui->labelWidget);
- protocol->setSizeHint(QSize(0, 32));
- _ui->labelWidget->addItem(protocol);
- _protocolWidget = new ProtocolWidget;
- _protocolIdx = _ui->stack->addWidget(_protocolWidget);
+ _protocolAction = toolBar->addAction(protocolIcon, tr("Activity"));
+ _protocolAction->setCheckable(true);
+ ProtocolWidget *protocolWidget = new ProtocolWidget;
+ _ui->stack->addWidget(protocolWidget);
QIcon generalIcon(QLatin1String(":/mirall/resources/settings.png"));
- QListWidgetItem *general = new QListWidgetItem(generalIcon, tr("General"), _ui->labelWidget);
- general->setSizeHint(QSize(0, 32));
- _ui->labelWidget->addItem(general);
+ QAction *generalAction = toolBar->addAction(generalIcon, tr("General"));
+ generalAction->setCheckable(true);
GeneralSettings *generalSettings = new GeneralSettings;
_ui->stack->addWidget(generalSettings);
QIcon networkIcon(QLatin1String(":/mirall/resources/network.png"));
- QListWidgetItem *network = new QListWidgetItem(networkIcon, tr("Network"), _ui->labelWidget);
- network->setSizeHint(QSize(0, 32));
- _ui->labelWidget->addItem(network);
+ QAction *networkAction = toolBar->addAction(networkIcon, tr("Network"));
+ networkAction->setCheckable(true);
NetworkSettings *networkSettings = new NetworkSettings;
_ui->stack->addWidget(networkSettings);
+ _actions.insert(accountAction, _accountSettings);
+ _actions.insert(_protocolAction, protocolWidget);
+ _actions.insert(generalAction, generalSettings);
+ _actions.insert(networkAction, networkSettings);
+
+ QActionGroup *group = new QActionGroup(this);
+ group->addAction(accountAction);
+ group->addAction(_protocolAction);
+ group->addAction(generalAction);
+ group->addAction(networkAction);
+ group->setExclusive(true);
+ connect(group, SIGNAL(triggered(QAction*)), SLOT(slotSwitchPage(QAction*)));
+
connect( _accountSettings, SIGNAL(folderChanged()), gui, SLOT(slotFoldersChanged()));
connect( _accountSettings, SIGNAL(accountIconChanged(QIcon)), SLOT(slotUpdateAccountIcon(QIcon)));
connect( _accountSettings, SIGNAL(openFolderAlias(const QString&)),
@@ -89,10 +112,9 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) :
connect( ProgressDispatcher::instance(), SIGNAL(progressInfo(QString, Progress::Info)),
_accountSettings, SLOT(slotSetProgress(QString, Progress::Info)) );
- _ui->labelWidget->setCurrentRow(_ui->labelWidget->row(_accountItem));
- connect(_ui->labelWidget, SIGNAL(currentRowChanged(int)),
- _ui->stack, SLOT(setCurrentIndex(int)));
+ // default to Account
+ accountAction->setChecked(true);
QPushButton *closeButton = _ui->buttonBox->button(QDialogButtonBox::Close);
connect(closeButton, SIGNAL(clicked()), SLOT(accept()));
@@ -102,23 +124,6 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) :
connect(showLogWindow, SIGNAL(triggered()), gui, SLOT(slotToggleLogBrowser()));
addAction(showLogWindow);
- int iconSize = 32;
- QListWidget *listWidget = _ui->labelWidget;
- int spacing = 20;
- // reverse at least ~8 characters
- int effectiveWidth = fontMetrics().averageCharWidth() * 8 + iconSize + spacing;
- // less than ~16 characters, elide otherwise
- int maxWidth = fontMetrics().averageCharWidth() * 16 + iconSize + spacing;
- for (int i = 0; i < listWidget->count(); i++) {
- QListWidgetItem *item = listWidget->item(i);
- QFontMetrics fm(item->font());
- int curWidth = fm.width(item->text()) + iconSize + spacing;
- effectiveWidth = qMax(curWidth, effectiveWidth);
- if (curWidth > maxWidth) item->setToolTip(item->text());
- }
- effectiveWidth = qMin(effectiveWidth, maxWidth);
- listWidget->setFixedWidth(effectiveWidth);
-
ConfigFile cfg;
cfg.restoreGeometry(this);
}
@@ -128,20 +133,9 @@ SettingsDialog::~SettingsDialog()
delete _ui;
}
-void SettingsDialog::addAccount(const QString &title, QWidget *widget)
-{
- _accountItem = new QListWidgetItem(title);
- _accountItem->setSizeHint(QSize(0, 32));
- _ui->labelWidget->addItem(_accountItem);
- _ui->stack->addWidget(widget);
- _accountSettings->slotSyncStateChange();
-}
-
void SettingsDialog::setGeneralErrors(const QStringList &errors)
{
- if( _accountSettings ) {
- _accountSettings->setGeneralErrors(errors);
- }
+ _accountSettings->setGeneralErrors(errors);
}
// close event is not being called here
@@ -157,14 +151,16 @@ void SettingsDialog::accept() {
QDialog::accept();
}
-void SettingsDialog::slotUpdateAccountIcon(const QIcon &icon)
+void SettingsDialog::slotSwitchPage(QAction *action)
{
- _accountItem->setIcon(icon);
+ _ui->stack->setCurrentWidget(_actions.value(action));
}
void SettingsDialog::showActivityPage()
{
- _ui->labelWidget->setCurrentRow(_protocolIdx);
+ if (_protocolAction) {
+ slotSwitchPage(_protocolAction);
+ }
}
diff --git a/src/gui/settingsdialog.cpp.Rbt431 b/src/gui/settingsdialog.cpp.Rbt431
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/gui/settingsdialog.cpp.Rbt431
diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h
index a9d898cbf..002e4a204 100644
--- a/src/gui/settingsdialog.h
+++ b/src/gui/settingsdialog.h
@@ -19,8 +19,8 @@
#include "progressdispatcher.h"
+class QAction;
class QStandardItemModel;
-class QListWidgetItem;
namespace OCC {
@@ -28,7 +28,6 @@ namespace Ui {
class SettingsDialog;
}
class AccountSettings;
-class ProtocolWidget;
class Application;
class FolderMan;
class ownCloudGui;
@@ -46,7 +45,7 @@ public:
public slots:
void showActivityPage();
- void slotUpdateAccountIcon(const QIcon& icon);
+ void slotSwitchPage(QAction *action);
protected:
void reject() Q_DECL_OVERRIDE;
@@ -55,12 +54,10 @@ protected:
private slots:
private:
- Ui::SettingsDialog *_ui;
- AccountSettings *_accountSettings;
- QListWidgetItem *_accountItem;
- ProtocolWidget *_protocolWidget;
-
- int _protocolIdx;
+ Ui::SettingsDialog * const _ui;
+ QHash<QAction*, QWidget*> _actions;
+ AccountSettings * const _accountSettings;
+ QAction * _protocolAction;
};
}
diff --git a/src/gui/settingsdialog.ui b/src/gui/settingsdialog.ui
index 4acc77fb2..cdabf661f 100644
--- a/src/gui/settingsdialog.ui
+++ b/src/gui/settingsdialog.ui
@@ -14,26 +14,22 @@
<string>Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout">
- <property name="margin">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
- <item row="0" column="0" rowspan="2">
- <widget class="QListWidget" name="labelWidget">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Maximum" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QStackedWidget" name="stack"/>
- </item>
- <item row="1" column="1">
+ <item row="1" column="0">
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
@@ -55,6 +51,9 @@
</layout>
</widget>
</item>
+ <item row="0" column="0">
+ <widget class="QStackedWidget" name="stack"/>
+ </item>
</layout>
</widget>
<resources/>
diff --git a/src/gui/settingsdialogmac.cpp b/src/gui/settingsdialogmac.cpp
index cbc6e7584..bb455bbae 100644
--- a/src/gui/settingsdialogmac.cpp
+++ b/src/gui/settingsdialogmac.cpp
@@ -63,8 +63,8 @@ SettingsDialogMac::SettingsDialogMac(ownCloudGui *gui, QWidget *parent)
setWindowTitle(tr("%1").arg(Theme::instance()->appNameGUI()));
_accountSettings = new AccountSettings;
- QIcon icon = Theme::instance()->syncStateIcon(SyncResult::Undefined, true);
- _accountIdx = addPreferencesPanel(icon, tr("Account"), _accountSettings);
+ QIcon accountIcon = (QLatin1String(":/mirall/resources/accounts.png"));
+ addPreferencesPanel(accountIcon, tr("Account"), _accountSettings);
QIcon protocolIcon(QLatin1String(":/mirall/resources/activity.png"));
_protocolWidget = new ProtocolWidget;
@@ -97,9 +97,6 @@ SettingsDialogMac::SettingsDialogMac(ownCloudGui *gui, QWidget *parent)
void SettingsDialogMac::slotSyncStateChange(const QString& alias)
{
FolderMan *folderMan = FolderMan::instance();
- SyncResult state = folderMan->accountStatus(folderMan->map().values());
- QIcon accountIcon = Theme::instance()->syncStateIcon(state.status());
- setPreferencesPanelIcon(_accountIdx, accountIcon);
Folder *folder = folderMan->folder(alias);
if( folder ) {
@@ -109,9 +106,7 @@ void SettingsDialogMac::slotSyncStateChange(const QString& alias)
void SettingsDialogMac::setGeneralErrors(const QStringList &errors)
{
- if( _accountSettings ) {
- _accountSettings->setGeneralErrors(errors);
- }
+ _accountSettings->setGeneralErrors(errors);
}
void SettingsDialogMac::closeEvent(QCloseEvent *event)
diff --git a/src/gui/settingsdialogmac.h b/src/gui/settingsdialogmac.h
index 90681628b..c4876e153 100644
--- a/src/gui/settingsdialogmac.h
+++ b/src/gui/settingsdialogmac.h
@@ -49,7 +49,6 @@ private:
QListWidgetItem *_accountItem;
ProtocolWidget *_protocolWidget;
- int _accountIdx;
int _protocolIdx;
};
diff --git a/src/gui/socketapi.cpp b/src/gui/socketapi.cpp
index 1cbf6a624..aba0a29e8 100644
--- a/src/gui/socketapi.cpp
+++ b/src/gui/socketapi.cpp
@@ -94,6 +94,11 @@ SocketApi::SocketApi(QObject* parent)
runtimeDir = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation);
#else
runtimeDir = QFile::decodeName(qgetenv("XDG_RUNTIME_DIR"));
+ if (runtimeDir.isEmpty()) {
+ runtimeDir = QDir::tempPath() + QLatin1String("/runtime-")
+ + QString::fromLocal8Bit(qgetenv("USER"));
+ QDir().mkdir(runtimeDir);
+ }
#endif
socketPath = runtimeDir + "/" + Theme::instance()->appName() + "/socket";
} else {
diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp
index c6f5d84bf..5eddacf7d 100644
--- a/src/gui/wizard/owncloudsetuppage.cpp
+++ b/src/gui/wizard/owncloudsetuppage.cpp
@@ -224,7 +224,7 @@ void OwncloudSetupPage::setErrorString( const QString& err )
_ui.errorLabel->setVisible(false);
} else {
if (_ui.leUrl->text().startsWith("https://")) {
- QString msg = tr("Could not connect securely. Do you want to connect unencrypted instead (not recommended)?").arg(err);
+ QString msg = tr("Could not connect securely:\n\n%1\n\nDo you want to connect unencrypted instead (not recommended)?").arg(err);
QString title = tr("Connection failed");
if (QMessageBox::question(this, title, msg, QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {
QUrl url(_ui.leUrl->text());
diff --git a/src/libsync/CMakeLists.txt b/src/libsync/CMakeLists.txt
index b9840c017..47d83b926 100644
--- a/src/libsync/CMakeLists.txt
+++ b/src/libsync/CMakeLists.txt
@@ -33,7 +33,6 @@ endif()
set(libsync_SRCS
account.cpp
- authenticationdialog.cpp
bandwidthmanager.cpp
clientproxy.cpp
connectionvalidator.cpp
@@ -53,6 +52,7 @@ set(libsync_SRCS
propagateupload.cpp
propagateremotedelete.cpp
propagateremotemove.cpp
+ propagateremotemkdir.cpp
quotainfo.cpp
syncengine.cpp
syncfilestatus.cpp
@@ -82,6 +82,7 @@ else()
creds/shibboleth/shibbolethwebview.cpp
creds/shibboleth/shibbolethrefresher.cpp
creds/shibboleth/shibbolethuserjob.cpp
+ authenticationdialog.cpp
)
endif()
diff --git a/src/libsync/accessmanager.cpp b/src/libsync/accessmanager.cpp
index c8a21faba..2b9fc77f1 100644
--- a/src/libsync/accessmanager.cpp
+++ b/src/libsync/accessmanager.cpp
@@ -19,7 +19,10 @@
#include <QNetworkCookie>
#include <QNetworkCookieJar>
+#ifndef TOKEN_AUTH_ONLY
#include "authenticationdialog.h"
+#endif
+
#include "cookiejar.h"
#include "accessmanager.h"
#include "utility.h"
@@ -87,6 +90,7 @@ void AccessManager::slotProxyAuthenticationRequired(const QNetworkProxy &proxy,
}
void AccessManager::slotAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator)
{
+#ifndef TOKEN_AUTH_ONLY
// do not handle 401 created by the networkjobs. We may want
// to eventually exempt some, but for now we need
// it only for other things, e.g. the browser. Would we handle
@@ -106,6 +110,10 @@ void AccessManager::slotAuthenticationRequired(QNetworkReply *reply, QAuthentica
authenticator->setUser(dialog.user());
authenticator->setPassword(dialog.password());
}
+#else
+ Q_UNUSED(reply) Q_UNUSED(authenticator)
+ Q_ASSERT(!"MirallAccessManager::slotAuthenticationRequired called");
+#endif
}
} // namespace OCC
diff --git a/src/libsync/configfile.cpp b/src/libsync/configfile.cpp
index 23df4db76..3b4f96a66 100644
--- a/src/libsync/configfile.cpp
+++ b/src/libsync/configfile.cpp
@@ -365,7 +365,8 @@ quint64 ConfigFile::forceSyncInterval(const QString& connection) const
QSettings settings(configFile(), QSettings::IniFormat);
settings.beginGroup( con );
- quint64 interval = settings.value( QLatin1String(forceSyncIntervalC), 10 * pollInterval ).toULongLong();
+ quint64 defaultInterval = 2 * 60 * 60 * 1000ull; // 2h
+ quint64 interval = settings.value( QLatin1String(forceSyncIntervalC), defaultInterval ).toULongLong();
if( interval < pollInterval) {
qDebug() << "Force sync interval is less than the remote poll inteval, reverting to" << pollInterval;
interval = pollInterval;
diff --git a/src/libsync/cookiejar.cpp b/src/libsync/cookiejar.cpp
index 865ea0844..cf0ff5c56 100644
--- a/src/libsync/cookiejar.cpp
+++ b/src/libsync/cookiejar.cpp
@@ -91,27 +91,11 @@ QList<QNetworkCookie> CookieJar::cookiesForUrl(const QUrl &url) const
return cookies;
}
-bool CookieJar::deleteCookie(const QNetworkCookie &delCookie)
-{
- QList<QNetworkCookie> cookies = allCookies();
- bool removeSucceeded = false;
- foreach(const QNetworkCookie &cookie, cookies) {
- // ### cookies are not identical in attriutes, why?
- if (cookie.name() == delCookie.name()) {
- cookies.removeOne(cookie);
- removeSucceeded = true;
- }
- }
- setAllCookies(cookies);
- return removeSucceeded;
-}
-
void CookieJar::clearSessionCookies()
{
setAllCookies(removeExpired(allCookies()));
}
-
void CookieJar::save()
{
QFile file;
diff --git a/src/libsync/cookiejar.h b/src/libsync/cookiejar.h
index a336d5c80..a7c8c671c 100644
--- a/src/libsync/cookiejar.h
+++ b/src/libsync/cookiejar.h
@@ -29,13 +29,11 @@ public:
bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) Q_DECL_OVERRIDE;
QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const Q_DECL_OVERRIDE;
- bool deleteCookie(const QNetworkCookie & cookie)
-#if QT_VERSION > QT_VERSION_CHECK(5, 0, 0)
- Q_DECL_OVERRIDE //that function is not virtual in Qt4
-#endif
- ;
void clearSessionCookies();
+ using QNetworkCookieJar::setAllCookies;
+ using QNetworkCookieJar::allCookies;
+
signals:
void newCookiesForUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url);
private:
diff --git a/src/libsync/creds/shibbolethcredentials.cpp b/src/libsync/creds/shibbolethcredentials.cpp
index 7194ec106..4ee518803 100644
--- a/src/libsync/creds/shibbolethcredentials.cpp
+++ b/src/libsync/creds/shibbolethcredentials.cpp
@@ -241,7 +241,19 @@ void ShibbolethCredentials::persist(Account* account)
void ShibbolethCredentials::invalidateToken(Account *account)
{
CookieJar *jar = static_cast<CookieJar*>(account->networkAccessManager()->cookieJar());
- jar->deleteCookie(_shibCookie);
+
+ // Remove the _shibCookie
+ auto cookies = jar->allCookies();
+ for (auto it = cookies.begin(); it != cookies.end(); ) {
+ if (it->name() == _shibCookie.name()) {
+ it = cookies.erase(it);
+ } else {
+ ++it;
+ }
+ }
+ jar->setAllCookies(cookies);
+
+ // Clear all other temporary cookies
jar->clearSessionCookies();
removeShibCookie(account);
_shibCookie = QNetworkCookie();
diff --git a/src/libsync/networkjobs.cpp b/src/libsync/networkjobs.cpp
index fa87b4475..a619034cd 100644
--- a/src/libsync/networkjobs.cpp
+++ b/src/libsync/networkjobs.cpp
@@ -497,7 +497,12 @@ void PropfindJob::start()
req.setRawHeader("Depth", "0");
QByteArray propStr;
foreach (const QByteArray &prop, properties) {
- propStr += " <d:" + prop + " />\n";
+ if (prop.contains(':')) {
+ int colIdx = prop.lastIndexOf(":");
+ propStr += " <" + prop.mid(colIdx+1) + " xmlns=\"" + prop.left(colIdx) + "\" />\n";
+ } else {
+ propStr += " <d:" + prop + " />\n";
+ }
}
QByteArray xml = "<?xml version=\"1.0\" ?>\n"
"<d:propfind xmlns:d=\"DAV:\">\n"
@@ -540,25 +545,23 @@ bool PropfindJob::finished()
while (!reader.atEnd()) {
QXmlStreamReader::TokenType type = reader.readNext();
- if (type == QXmlStreamReader::StartElement &&
- reader.namespaceUri() == QLatin1String("DAV:")) {
- if (curElement.isEmpty()) {
- curElement.push(reader.name().toString());
- items.insert(reader.name().toString(), reader.text().toString());
+ if (type == QXmlStreamReader::StartElement) {
+ if (!curElement.isEmpty() && curElement.top() == QLatin1String("prop")) {
+ items.insert(reader.name().toString(), reader.readElementText());
}
+ curElement.push(reader.name().toString());
}
- if (type == QXmlStreamReader::EndElement &&
- reader.namespaceUri() == QLatin1String("DAV:")) {
+ if (type == QXmlStreamReader::EndElement) {
if(curElement.top() == reader.name()) {
curElement.pop();
}
}
-
}
emit result(items);
} else {
qDebug() << "Quota request *not* successful, http result code is" << http_result_code
<< (http_result_code == 302 ? reply()->header(QNetworkRequest::LocationHeader).toString() : QLatin1String(""));
+ emit finishedWithError();
}
return true;
}
diff --git a/src/libsync/networkjobs.h b/src/libsync/networkjobs.h
index fdd750014..8ba01dd9e 100644
--- a/src/libsync/networkjobs.h
+++ b/src/libsync/networkjobs.h
@@ -158,6 +158,7 @@ public:
signals:
void result(const QVariantMap &values);
+ void finishedWithError();
private slots:
virtual bool finished() Q_DECL_OVERRIDE;
diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp
index 474c9d3dd..7d86dcec0 100644
--- a/src/libsync/owncloudpropagator.cpp
+++ b/src/libsync/owncloudpropagator.cpp
@@ -20,6 +20,7 @@
#include "propagateupload.h"
#include "propagateremotedelete.h"
#include "propagateremotemove.h"
+#include "propagateremotemkdir.h"
#include "propagatorjobs.h"
#include "propagator_legacy.h"
#include "configfile.h"
@@ -70,6 +71,7 @@ static bool blacklist(SyncJournalDb* journal, const SyncFileItem& item)
void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorString)
{
+ _state = Finished;
if (_item._isRestoration) {
if( status == SyncFileItem::Success || status == SyncFileItem::Conflict) {
status = SyncFileItem::Restoration;
@@ -308,10 +310,11 @@ void OwncloudPropagator::start(const SyncFileItemVector& items)
connect(_rootJob.data(), SIGNAL(completed(SyncFileItem)), this, SIGNAL(completed(SyncFileItem)));
connect(_rootJob.data(), SIGNAL(progress(SyncFileItem,quint64)), this, SIGNAL(progress(SyncFileItem,quint64)));
connect(_rootJob.data(), SIGNAL(finished(SyncFileItem::Status)), this, SLOT(emitFinished()));
+ connect(_rootJob.data(), SIGNAL(ready()), this, SLOT(scheduleNextJob()), Qt::QueuedConnection);
qDebug() << (useLegacyJobs() ? "Using legacy libneon/HTTP sequential code path" : "Using QNAM/HTTP parallel code path");
- QMetaObject::invokeMethod(_rootJob.data(), "start", Qt::QueuedConnection);
+ QTimer::singleShot(0, this, SLOT(scheduleNextJob()));
}
bool OwncloudPropagator::isInSharedDirectory(const QString& file)
@@ -343,21 +346,31 @@ bool OwncloudPropagator::useLegacyJobs()
return true;
}
- env = qgetenv("OWNCLOUD_NEW_BANDWIDTH_LIMITING");
- if (env=="true" || env =="1") {
- qDebug() << "New Bandwidth Limiting Code ACTIVATED";
- // Only certain Qt versions support this at the moment.
- // They need those Change-Ids: Idb1c2d5a382a704d8cc08fe03c55c883bfc95aa7 Iefbcb1a21d8aedef1eb11761232dd16a049018dc
- // FIXME We need to check the Qt version and then also return false here as soon
- // as mirall ships with those Qt versions on Windows and OS X
+ if (_downloadLimit.fetchAndAddAcquire(0) != 0 || _uploadLimit.fetchAndAddAcquire(0) != 0) {
+ // QNAM bandwith limiting only work with version of Qt greater or equal to 5.3.3
+ // (It needs Qt commits 097b641 and b99fa32)
+#if QT_VERSION >= QT_VERSION_CHECK(5,3,3)
return false;
- }
+#elif QT_VERSION >= QT_VERSION_CHECK(5,0,0)
+ env = qgetenv("OWNCLOUD_NEW_BANDWIDTH_LIMITING");
+ if (env=="true" || env =="1") {
+ qDebug() << "New Bandwidth Limiting Code ACTIVATED";
+ return false;
+ }
- if (_downloadLimit.fetchAndAddAcquire(0) != 0 || _uploadLimit.fetchAndAddAcquire(0) != 0) {
- qDebug() << "Switching To Legacy Propagator Because Of Bandwidth Limit ACTIVATED";
- // QNAM does not support bandwith limiting
- // in most Qt versions.
+ // Do a runtime check.
+ // (Poor man's version comparison)
+ const char *v = qVersion(); // "x.y.z";
+ if (QLatin1String(v) >= QLatin1String("5.3.3")) {
+ return false;
+ } else {
+ qDebug() << "Use legacy jobs because qt version is only" << v << "while 5.3.3 is needed";
+ return true;
+ }
+#else
+ qDebug() << "Use legacy jobs because of Qt4";
return true;
+#endif
}
return false;
@@ -435,52 +448,133 @@ QString OwncloudPropagator::getFilePath(const QString& tmp_file_name) const
return _localDir + tmp_file_name;
}
+void OwncloudPropagator::scheduleNextJob()
+{
+ if (this->_activeJobs < maximumActiveJob()) {
+ if (_rootJob->scheduleNextJob()) {
+ QTimer::singleShot(100, this, SLOT(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();
+}
+
// ================================================================================
-void PropagateDirectory::start()
+PropagatorJob::JobParallelism PropagateDirectory::parallelism()
{
- _current = -1;
- _hasError = SyncFileItem::NoStatus;
- if (!_firstJob) {
- slotSubJobReady();
- } else {
- startJob(_firstJob.data());
+ // If any of the non-finished sub jobs is not parallel, we have to wait
+
+ // FIXME! we should probably cache this result
+
+ if (_firstJob && _firstJob->_state != Finished) {
+ if (_firstJob->parallelism() != FullParallelism)
+ return WaitForFinished;
+ }
+
+ // FIXME: use the cached value of finished job
+ for (int i = 0; i < _subJobs.count(); ++i) {
+ if (_subJobs.at(i)->_state != Finished && _subJobs.at(i)->parallelism() != FullParallelism) {
+ return WaitForFinished;
+ }
}
+ return FullParallelism;
+}
+
+
+bool PropagateDirectory::scheduleNextJob()
+{
+ if (_state == Finished) {
+ return false;
+ }
+
+ if (_state == NotYetStarted) {
+ _state = Running;
+
+ if (!_firstJob && _subJobs.isEmpty()) {
+ slotSubJobFinished(SyncFileItem::Success);
+ return true;
+ }
+ }
+
+ if (_firstJob && _firstJob->_state == NotYetStarted) {
+ return possiblyRunNextJob(_firstJob.data());
+ }
+
+ if (_firstJob && _firstJob->_state == Running) {
+ return false;
+ }
+
+ bool stopAtDirectory = false;
+ // FIXME: use the cached value of finished job
+ for (int i = 0; i < _subJobs.count(); ++i) {
+ if (_subJobs.at(i)->_state == Finished) {
+ continue;
+ }
+
+ if (stopAtDirectory && qobject_cast<PropagateDirectory*>(_subJobs.at(i))) {
+ return false;
+ }
+
+ if (possiblyRunNextJob(_subJobs.at(i))) {
+ return true;
+ }
+
+ Q_ASSERT(_subJobs.at(i)->_state == Running);
+
+ auto paral = _subJobs.at(i)->parallelism();
+ if (paral == WaitForFinished) {
+ return false;
+ }
+ if (paral == WaitForFinishedInParentDirectory) {
+ stopAtDirectory = true;
+ }
+ }
+ return false;
}
void PropagateDirectory::slotSubJobFinished(SyncFileItem::Status status)
{
if (status == SyncFileItem::FatalError ||
- (_current == -1 && status != SyncFileItem::Success && status != SyncFileItem::Restoration)) {
+ (sender() == _firstJob.data() && status != SyncFileItem::Success && status != SyncFileItem::Restoration)) {
abort();
+ _state = Finished;
emit finished(status);
return;
} else if (status == SyncFileItem::NormalError || status == SyncFileItem::SoftError) {
_hasError = status;
}
_runningNow--;
- slotSubJobReady();
-}
-void PropagateDirectory::slotSubJobReady()
-{
- if (_runningNow && _current == -1)
- return; // Ignore the case when the _fistJob is ready and not yet finished
- if (_runningNow && _current >= 0 && _current < _subJobs.count()) {
- // there is a job running and the current one is not ready yet, we can't start new job
- if (!_subJobs[_current]->_readySent || _propagator->_activeJobs >= _propagator->maximumActiveJob())
- return;
+ int total = _subJobs.count();
+ if (!_firstJob) {
+ total--;
}
_current++;
- if (_current < _subJobs.size() && !_propagator->_abortRequested.fetchAndAddRelaxed(0)) {
- PropagatorJob *next = _subJobs.at(_current);
- startJob(next);
- return;
- }
+
// We finished to processing all the jobs
- emitReady();
- if (!_runningNow) {
+ // check if we finished
+ if (_current >= total) {
if (!_item.isEmpty() && _hasError == SyncFileItem::NoStatus) {
if( !_item._renameTarget.isEmpty() ) {
_item._file = _item._renameTarget;
@@ -497,7 +591,10 @@ void PropagateDirectory::slotSubJobReady()
_propagator->_journal->setFileRecord(record);
}
}
+ _state = Finished;
emit finished(_hasError == SyncFileItem::NoStatus ? SyncFileItem::Success : _hasError);
+ } else {
+ emit ready();
}
}
diff --git a/src/libsync/owncloudpropagator.h b/src/libsync/owncloudpropagator.h
index a5aaae5bd..bd38363cf 100644
--- a/src/libsync/owncloudpropagator.h
+++ b/src/libsync/owncloudpropagator.h
@@ -24,6 +24,7 @@
#include <QTimer>
#include <QPointer>
#include <QIODevice>
+#include <QMutex>
#include "syncfileitem.h"
#include "syncjournaldb.h"
@@ -41,23 +42,53 @@ class Account;
class SyncJournalDb;
class OwncloudPropagator;
+/**
+ * @class PropagatorJob
+ * @brief the base class of propagator jobs
+ *
+ * This can either be a job, or a container for jobs.
+ * If it is a composite jobs, it then inherits from PropagateDirectory
+ *
+ *
+ */
+
class PropagatorJob : public QObject {
Q_OBJECT
protected:
OwncloudPropagator *_propagator;
- void emitReady() {
- bool wasReady = _readySent;
- _readySent = true;
- if (!wasReady)
- emit ready();
- };
+
public:
- bool _readySent;
- explicit PropagatorJob(OwncloudPropagator* propagator) : _propagator(propagator), _readySent(false) {}
+ explicit PropagatorJob(OwncloudPropagator* propagator) : _propagator(propagator), _state(NotYetStarted) {}
+
+ enum JobState {
+ NotYetStarted,
+ Running,
+ Finished
+ };
+ JobState _state;
+
+ enum JobParallelism {
+
+ /** Jobs can be run in parallel to this job */
+ FullParallelism,
+ /** This job do not support parallelism, and no other job shall
+ be started until this one has finished */
+ WaitForFinished,
+
+ /** This job support paralelism with other jobs in the same directory, but it should
+ not be paralelized with jobs in other directories (typically a move operation) */
+ WaitForFinishedInParentDirectory
+ };
+
+ virtual JobParallelism parallelism() { return FullParallelism; }
public slots:
- virtual void start() = 0;
virtual void abort() {}
+
+ /** Starts this job, or a new subjob
+ * returns true if a job was started.
+ */
+ virtual bool scheduleNextJob() = 0;
signals:
/**
* Emitted when the job is fully finished
@@ -70,9 +101,8 @@ signals:
void completed(const SyncFileItem &);
/**
- * Emitted when all the sub-jobs have been scheduled and
- * we are ready and more jobs might be started
- * This signal is not always emitted.
+ * Emitted when all the sub-jobs have been finished and
+ * more jobs might be started (so scheduleNextJob can/must be called again)
*/
void ready();
@@ -111,7 +141,8 @@ public:
_subJobs.append(subJob);
}
- virtual void start() Q_DECL_OVERRIDE;
+ virtual bool scheduleNextJob() Q_DECL_OVERRIDE;
+ virtual JobParallelism parallelism() Q_DECL_OVERRIDE;
virtual void abort() Q_DECL_OVERRIDE {
if (_firstJob)
_firstJob->abort();
@@ -120,23 +151,23 @@ public:
}
private slots:
- void startJob(PropagatorJob *next) {
- connect(next, SIGNAL(finished(SyncFileItem::Status)), this, SLOT(slotSubJobFinished(SyncFileItem::Status)), Qt::QueuedConnection);
- connect(next, SIGNAL(completed(SyncFileItem)), this, SIGNAL(completed(SyncFileItem)));
- connect(next, SIGNAL(progress(SyncFileItem,quint64)), this, SIGNAL(progress(SyncFileItem,quint64)));
- connect(next, SIGNAL(ready()), this, SLOT(slotSubJobReady()));
- _runningNow++;
- QMetaObject::invokeMethod(next, "start", Qt::QueuedConnection);
+ bool possiblyRunNextJob(PropagatorJob *next) {
+ if (next->_state == NotYetStarted) {
+ connect(next, SIGNAL(finished(SyncFileItem::Status)), this, SLOT(slotSubJobFinished(SyncFileItem::Status)), Qt::QueuedConnection);
+ connect(next, SIGNAL(completed(SyncFileItem)), this, SIGNAL(completed(SyncFileItem)));
+ connect(next, SIGNAL(progress(SyncFileItem,quint64)), this, SIGNAL(progress(SyncFileItem,quint64)));
+ connect(next, SIGNAL(ready()), this, SIGNAL(ready()));
+ _runningNow++;
+ }
+ return next->scheduleNextJob();
}
void slotSubJobFinished(SyncFileItem::Status status);
- void slotSubJobReady();
};
/*
* Abstract class to propagate a single item
- * (Only used for neon job)
*/
class PropagateItemJob : public PropagatorJob {
Q_OBJECT
@@ -169,6 +200,17 @@ public:
PropagateItemJob(OwncloudPropagator* propagator, const SyncFileItem &item)
: PropagatorJob(propagator), _item(item) {}
+ bool scheduleNextJob() Q_DECL_OVERRIDE {
+ if (_state != NotYetStarted) {
+ return false;
+ }
+ _state = Running;
+ QMetaObject::invokeMethod(this, "start"); // We could be in a different thread (neon jobs)
+ return true;
+ }
+public slots:
+ virtual void start() = 0;
+
};
// Dummy job that just mark it as completed and ignored.
@@ -183,44 +225,6 @@ public:
}
};
-class BandwidthManager; // fwd
-class UploadDevice : public QIODevice {
- Q_OBJECT
-public:
- QPointer<QIODevice> _file;
- qint64 _read;
- qint64 _size;
- qint64 _start;
- BandwidthManager* _bandwidthManager;
-
- qint64 _bandwidthQuota;
- qint64 _readWithProgress;
-
- UploadDevice(QIODevice *file, qint64 start, qint64 size, BandwidthManager *bwm);
- ~UploadDevice();
- virtual qint64 writeData(const char* , qint64 );
- virtual qint64 readData(char* data, qint64 maxlen);
- virtual bool atEnd() const;
- virtual qint64 size() const;
- qint64 bytesAvailable() const;
- virtual bool isSequential() const;
- virtual bool seek ( qint64 pos );
-
- void setBandwidthLimited(bool);
- bool isBandwidthLimited() { return _bandwidthLimited; }
- void setChoked(bool);
- bool isChoked() { return _choked; }
- void giveBandwidthQuota(qint64 bwq);
-private:
- bool _bandwidthLimited; // if _bandwidthQuota will be used
- bool _choked; // if upload is paused (readData() will return 0)
-protected slots:
- void slotJobUploadProgress(qint64 sent, qint64 t);
-};
-//Q_DECLARE_METATYPE(UploadDevice);
-//Q_DECLARE_METATYPE(QPointer<UploadDevice>);
-
-
class OwncloudPropagator : public QObject {
Q_OBJECT
@@ -241,7 +245,6 @@ public:
SyncJournalDb * const _journal;
bool _finishedEmited; // used to ensure that finished is only emit once
- BandwidthManager _bandwidthManager;
public:
OwncloudPropagator(ne_session_s *session, const QString &localDir, const QString &remoteDir, const QString &remoteFolder,
@@ -262,6 +265,7 @@ public:
QAtomicInt _downloadLimit;
QAtomicInt _uploadLimit;
+ BandwidthManager _bandwidthManager;
QAtomicInt _abortRequested; // boolean set by the main thread to abort.
@@ -289,6 +293,19 @@ public:
// timeout in seconds
static int httpTimeout();
+ /** 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;
+
+
private slots:
/** Emit the finished signal and make sure it is only emit once */
@@ -298,6 +315,8 @@ private slots:
_finishedEmited = true;
}
+ void scheduleNextJob();
+
signals:
void completed(const SyncFileItem &);
void progress(const SyncFileItem&, quint64 bytes);
@@ -308,6 +327,11 @@ signals:
*/
void adjustTotalTransmissionSize( qint64 adjust );
+private:
+
+ /** Stores the time since a job touched a file. */
+ QHash<QString, QElapsedTimer> _touchedFiles;
+ mutable QMutex _touchedFilesMutex;
};
// Job that wait for all the poll jobs to be completed
diff --git a/src/libsync/owncloudtheme.cpp b/src/libsync/owncloudtheme.cpp
index 382001a65..d2711cb17 100644
--- a/src/libsync/owncloudtheme.cpp
+++ b/src/libsync/owncloudtheme.cpp
@@ -74,7 +74,6 @@ QIcon ownCloudTheme::applicationIcon( ) const
return themeIcon( QLatin1String("owncloud-icon") );
}
-#endif
QVariant ownCloudTheme::customMedia(Theme::CustomMediaType type)
{
@@ -89,6 +88,8 @@ QVariant ownCloudTheme::customMedia(Theme::CustomMediaType type)
}
}
+#endif
+
QString ownCloudTheme::helpUrl() const
{
return QString::fromLatin1("http://doc.owncloud.org/desktop/%1.%2/").arg(MIRALL_VERSION_MAJOR).arg(MIRALL_VERSION_MINOR);
diff --git a/src/libsync/owncloudtheme.h b/src/libsync/owncloudtheme.h
index 733754b9b..abe9261d1 100644
--- a/src/libsync/owncloudtheme.h
+++ b/src/libsync/owncloudtheme.h
@@ -27,20 +27,22 @@ public:
QString configFileName() const Q_DECL_OVERRIDE;
QString about() const Q_DECL_OVERRIDE;
- QPixmap splashScreen() const;
- QIcon folderIcon( const QString& ) const;
+#ifndef TOKEN_AUTH_ONLY
QIcon trayFolderIcon( const QString& ) const Q_DECL_OVERRIDE;
QIcon applicationIcon() const Q_DECL_OVERRIDE;
+#endif
QString appName() const Q_DECL_OVERRIDE;
QString appNameGUI() const Q_DECL_OVERRIDE;
- QVariant customMedia(CustomMediaType type) Q_DECL_OVERRIDE;
QString helpUrl() const Q_DECL_OVERRIDE;
+#ifndef TOKEN_AUTH_ONLY
+ QVariant customMedia(CustomMediaType type) Q_DECL_OVERRIDE;
QColor wizardHeaderBackgroundColor() const Q_DECL_OVERRIDE;
QColor wizardHeaderTitleColor() const Q_DECL_OVERRIDE;
QPixmap wizardHeaderLogo() const Q_DECL_OVERRIDE;
+#endif
private:
diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp
index ea3c67102..fdd8ef758 100644
--- a/src/libsync/propagatedownload.cpp
+++ b/src/libsync/propagatedownload.cpp
@@ -361,7 +361,6 @@ void PropagateDownloadFileQNAM::start()
connect(_job, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(slotDownloadProgress(qint64,qint64)));
_propagator->_activeJobs ++;
_job->start();
- emitReady();
}
void PropagateDownloadFileQNAM::slotGetFinished()
@@ -418,6 +417,21 @@ void PropagateDownloadFileQNAM::slotGetFinished()
_tmpFile.close();
_tmpFile.flush();
+
+ /* Check that the size of the GET reply matches the file size. There have been cases
+ * reported that if a server breaks behind a proxy, the GET is still a 200 but is
+ * truncated, as described here: https://github.com/owncloud/mirall/issues/2528
+ */
+ const QByteArray sizeHeader("Content-Length");
+ quint64 bodySize = job->reply()->rawHeader(sizeHeader).toULongLong();
+
+ if(bodySize > 0 && bodySize != _tmpFile.size() - job->resumeStart() ) {
+ qDebug() << bodySize << _tmpFile.size() << job->resumeStart();
+ _propagator->_anotherSyncNeeded = true;
+ done(SyncFileItem::SoftError, tr("The file could not be downloaded completely."));
+ return;
+ }
+
downloadFinished();
}
@@ -477,6 +491,7 @@ void PropagateDownloadFileQNAM::downloadFinished()
FileSystem::setFileHidden(_tmpFile.fileName(), false);
QString error;
+ _propagator->addTouchedFile(fn);
if (!FileSystem::renameReplace(_tmpFile.fileName(), fn, &error)) {
// If we moved away the original file due to a conflict but can't
// put the downloaded file in its place, we are in a bad spot:
diff --git a/src/libsync/propagatedownload.h b/src/libsync/propagatedownload.h
index a74ba68f7..e98be4b40 100644
--- a/src/libsync/propagatedownload.h
+++ b/src/libsync/propagatedownload.h
@@ -54,9 +54,9 @@ public:
virtual void start() Q_DECL_OVERRIDE;
virtual bool finished() Q_DECL_OVERRIDE {
- qDebug() << Q_FUNC_INFO << reply()->bytesAvailable() << _hasEmittedFinishedSignal;
+// qDebug() << Q_FUNC_INFO << reply()->bytesAvailable() << _hasEmittedFinishedSignal;
if (reply()->bytesAvailable()) {
- qDebug() << Q_FUNC_INFO << "Not all read yet because of bandwidth limits";
+// qDebug() << Q_FUNC_INFO << "Not all read yet because of bandwidth limits";
return false;
} else {
if (_bandwidthManager) {
diff --git a/src/libsync/propagateremotedelete.cpp b/src/libsync/propagateremotedelete.cpp
index 654328bc1..503daf307 100644
--- a/src/libsync/propagateremotedelete.cpp
+++ b/src/libsync/propagateremotedelete.cpp
@@ -60,7 +60,6 @@ void PropagateRemoteDelete::start()
connect(_job, SIGNAL(finishedSignal()), this, SLOT(slotDeleteJobFinished()));
_propagator->_activeJobs ++;
_job->start();
- emitReady();
}
void PropagateRemoteDelete::abort()
diff --git a/src/libsync/propagateremotemkdir.cpp b/src/libsync/propagateremotemkdir.cpp
new file mode 100644
index 000000000..ce51a054f
--- /dev/null
+++ b/src/libsync/propagateremotemkdir.cpp
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) by Olivier Goffart <ogoffart@owncloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#include "propagateremotemkdir.h"
+#include "owncloudpropagator_p.h"
+#include "account.h"
+#include "syncjournalfilerecord.h"
+#include <QFile>
+
+namespace Mirall {
+
+void PropagateRemoteMkdir::start()
+{
+ if (_propagator->_abortRequested.fetchAndAddRelaxed(0))
+ return;
+
+ qDebug() << Q_FUNC_INFO << _item._file;
+
+ _job = new MkColJob(AccountManager::instance()->account(),
+ _propagator->_remoteFolder + _item._file,
+ this);
+ connect(_job, SIGNAL(finished(QNetworkReply::NetworkError)), this, SLOT(slotMkcolJobFinished()));
+ _propagator->_activeJobs++;
+ _job->start();
+}
+
+void PropagateRemoteMkdir::abort()
+{
+ if (_job && _job->reply())
+ _job->reply()->abort();
+}
+
+void PropagateRemoteMkdir::slotMkcolJobFinished()
+{
+ _propagator->_activeJobs--;
+
+ Q_ASSERT(_job);
+
+ qDebug() << Q_FUNC_INFO << _job->reply()->request().url() << "FINISHED WITH STATUS"
+ << _job->reply()->error()
+ << (_job->reply()->error() == QNetworkReply::NoError ? QLatin1String("") : _job->reply()->errorString());
+
+ QNetworkReply::NetworkError err = _job->reply()->error();
+ _item._httpErrorCode = _job->reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+
+ if (_item._httpErrorCode == 405) {
+ // This happens when the directory already exist. Nothing to do.
+ } else if (err != QNetworkReply::NoError) {
+ SyncFileItem::Status status = classifyError(err, _item._httpErrorCode);
+ done(status, _job->reply()->errorString());
+ return;
+ } else if (_item._httpErrorCode != 201) {
+ // Normaly we expect "201 Created"
+ // If it is not the case, it might be because of a proxy or gateway intercepting the request, so we must
+ // throw an error.
+ done(SyncFileItem::NormalError, tr("Wrong HTTP code returned by server. Expected 201, but recieved \"%1 %2\".")
+ .arg(_item._httpErrorCode).arg(_job->reply()->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString()));
+ return;
+ }
+
+ _item._requestDuration = _job->duration();
+ _item._responseTimeStamp = _job->responseTimestamp();
+ _item._fileId = _job->reply()->rawHeader("OC-FileId");
+
+ if (_item._fileId.isEmpty()) {
+ // Owncloud 7.0.0 and before did not have a header with the file id.
+ // (https://github.com/owncloud/core/issues/9000)
+ // So we must get the file id using a PROPFIND
+ // This is required so that we can detect moves even if the folder is renamed on the server
+ // while files are still uploading
+ _propagator->_activeJobs++;
+ auto propfindJob = new PropfindJob(_job->account(), _job->path(), this);
+ propfindJob->setProperties(QList<QByteArray>() << "getetag" << "http://owncloud.org/ns:id");
+ QObject::connect(propfindJob, SIGNAL(result(QVariantMap)), this, SLOT(propfindResult(QVariantMap)));
+ QObject::connect(propfindJob, SIGNAL(finishedWithError()), this, SLOT(propfindError()));
+ propfindJob->start();
+ _job = propfindJob;
+ return;
+ }
+
+ done(SyncFileItem::Success);
+}
+
+void PropagateRemoteMkdir::propfindResult(const QVariantMap &result)
+{
+ _propagator->_activeJobs--;
+ if (result.contains("getetag")) {
+ _item._etag = result["getetag"].toByteArray();
+ }
+ if (result.contains("id")) {
+ _item._fileId = result["id"].toByteArray();
+ }
+ done(SyncFileItem::Success);
+}
+
+void PropagateRemoteMkdir::propfindError()
+{
+ // ignore the PROPFIND error
+ _propagator->_activeJobs--;
+ done(SyncFileItem::Success);
+}
+
+
+}
+
diff --git a/src/libsync/propagateremotemkdir.h b/src/libsync/propagateremotemkdir.h
new file mode 100644
index 000000000..fae8db28b
--- /dev/null
+++ b/src/libsync/propagateremotemkdir.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) by Olivier Goffart <ogoffart@owncloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+#pragma once
+
+#include "owncloudpropagator.h"
+#include "networkjobs.h"
+
+namespace Mirall {
+
+class PropagateRemoteMkdir : public PropagateItemJob {
+ Q_OBJECT
+ QPointer<AbstractNetworkJob> _job;
+ friend class PropagateDirectory; // So it can access the _item;
+public:
+ PropagateRemoteMkdir (OwncloudPropagator* propagator,const SyncFileItem& item)
+ : PropagateItemJob(propagator, item) {}
+ void start() Q_DECL_OVERRIDE;
+ void abort() Q_DECL_OVERRIDE;
+private slots:
+ void slotMkcolJobFinished();
+ void propfindResult(const QVariantMap &);
+ void propfindError();
+};
+
+} \ No newline at end of file
diff --git a/src/libsync/propagateremotemove.cpp b/src/libsync/propagateremotemove.cpp
index 06084cb02..d7888029e 100644
--- a/src/libsync/propagateremotemove.cpp
+++ b/src/libsync/propagateremotemove.cpp
@@ -58,13 +58,18 @@ void PropagateRemoteMove::start()
qDebug() << Q_FUNC_INFO << _item._file << _item._renameTarget;
+ QString targetFile(_propagator->getFilePath(_item._renameTarget));
+
if (_item._file == _item._renameTarget) {
// The parents has been renamed already so there is nothing more to do.
finalize();
return;
} else if (AbstractNetworkJob::preOc7WasDetected && _item._file == QLatin1String("Shared") ) {
// Check if it is the toplevel Shared folder and do not propagate it.
- if( QFile::rename( _propagator->_localDir + _item._renameTarget, _propagator->_localDir + QLatin1String("Shared")) ) {
+ QString originalFile(_propagator->getFilePath(QLatin1String("Shared")));
+ _propagator->addTouchedFile(originalFile);
+ _propagator->addTouchedFile(targetFile);
+ if( QFile::rename( targetFile, originalFile) ) {
done(SyncFileItem::NormalError, tr("This folder must not be renamed. It is renamed back to its original name."));
} else {
done(SyncFileItem::NormalError, tr("This folder must not be renamed. Please name it back to Shared."));
@@ -78,7 +83,6 @@ void PropagateRemoteMove::start()
connect(_job, SIGNAL(finishedSignal()), this, SLOT(slotMoveJobFinished()));
_propagator->_activeJobs++;
_job->start();
- emitReady();
}
}
@@ -132,7 +136,7 @@ void PropagateRemoteMove::slotMoveJobFinished()
void PropagateRemoteMove::finalize()
{
_propagator->_journal->deleteFileRecord(_item._originalFile);
- SyncJournalFileRecord record(_item, _propagator->_localDir + _item._renameTarget);
+ SyncJournalFileRecord record(_item, _propagator->getFilePath(_item._renameTarget));
record._path = _item._renameTarget;
_propagator->_journal->setFileRecord(record);
diff --git a/src/libsync/propagateremotemove.h b/src/libsync/propagateremotemove.h
index 97cf5c0f0..540fff9f6 100644
--- a/src/libsync/propagateremotemove.h
+++ b/src/libsync/propagateremotemove.h
@@ -43,6 +43,7 @@ public:
: PropagateItemJob(propagator, item) {}
void start() Q_DECL_OVERRIDE;
void abort() Q_DECL_OVERRIDE;
+ JobParallelism parallelism() Q_DECL_OVERRIDE { return Mirall::PropagatorJob::WaitForFinishedInParentDirectory; }
private slots:
void slotMoveJobFinished();
void finalize();
diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp
index d5ac518da..654de66c9 100644
--- a/src/libsync/propagateupload.cpp
+++ b/src/libsync/propagateupload.cpp
@@ -14,6 +14,7 @@
#include "propagateupload.h"
#include "owncloudpropagator_p.h"
+#include "propagator_legacy.h"
#include "networkjobs.h"
#include "account.h"
#include "syncjournaldb.h"
@@ -152,7 +153,8 @@ void PropagateUploadFileQNAM::start()
_file = new QFile(_propagator->getFilePath(_item._file), this);
if (!_file->open(QIODevice::ReadOnly)) {
- done(SyncFileItem::NormalError, _file->errorString());
+ // Soft error because this is likely caused by the user modifying his files while syncing
+ done(SyncFileItem::SoftError, _file->errorString());
delete _file;
return;
}
@@ -199,7 +201,6 @@ UploadDevice::UploadDevice(QIODevice *file, qint64 start, qint64 size, Bandwidt
_readWithProgress(0),
_bandwidthLimited(false), _choked(false)
{
- qDebug() << Q_FUNC_INFO << start << size << chunkSize();
_bandwidthManager->registerUploadDevice(this);
_file = QPointer<QIODevice>(file);
}
@@ -216,7 +217,7 @@ qint64 UploadDevice::writeData(const char* , qint64 ) {
qint64 UploadDevice::readData(char* data, qint64 maxlen) {
if (_file.isNull()) {
- qDebug() << Q_FUNC_INFO << "Upload file object deleted during upload";
+ qDebug() << "Upload file object deleted during upload";
close();
return -1;
}
@@ -224,7 +225,6 @@ qint64 UploadDevice::readData(char* data, qint64 maxlen) {
//qDebug() << Q_FUNC_INFO << maxlen << _read << _size << _bandwidthQuota;
if (_size - _read <= 0) {
// at end
- qDebug() << Q_FUNC_INFO << _read << _size << _bandwidthQuota << "at end";
_bandwidthManager->unregisterUploadDevice(this);
return -1;
}
@@ -233,28 +233,21 @@ qint64 UploadDevice::readData(char* data, qint64 maxlen) {
return 0;
}
if (isChoked()) {
- qDebug() << Q_FUNC_INFO << this << "Upload Choked";
return 0;
}
if (isBandwidthLimited()) {
- qDebug() << Q_FUNC_INFO << "BW LIMITED" << maxlen << _bandwidthQuota
- << qMin(maxlen, _bandwidthQuota);
maxlen = qMin(maxlen, _bandwidthQuota);
if (maxlen <= 0) { // no quota
- qDebug() << Q_FUNC_INFO << "no quota";
+ qDebug() << "no quota";
return 0;
}
_bandwidthQuota -= maxlen;
}
- qDebug() << Q_FUNC_INFO << "reading limited=" << isBandwidthLimited()
- << "maxlen=" << maxlen << "quota=" << _bandwidthQuota;
qint64 ret = _file.data()->read(data, maxlen);
- //qDebug() << Q_FUNC_INFO << "returning " << ret;
if (ret < 0)
return -1;
_read += ret;
- //qDebug() << Q_FUNC_INFO << "returning2 " << ret << _read;
return ret;
}
@@ -270,7 +263,7 @@ void UploadDevice::slotJobUploadProgress(qint64 sent, qint64 t)
bool UploadDevice::atEnd() const {
if (_file.isNull()) {
- qDebug() << Q_FUNC_INFO << "Upload file object deleted during upload";
+ qDebug() << "Upload file object deleted during upload";
return true;
}
// qDebug() << this << Q_FUNC_INFO << _read << chunkSize()
@@ -298,20 +291,17 @@ bool UploadDevice::isSequential() const{
bool UploadDevice::seek ( qint64 pos ) {
if (_file.isNull()) {
- qDebug() << Q_FUNC_INFO << "Upload file object deleted during upload";
+ qDebug() << "Upload file object deleted during upload";
close();
return false;
}
- qDebug() << this << Q_FUNC_INFO << pos << _read;
_read = pos;
return _file.data()->seek(pos + _start);
}
void UploadDevice::giveBandwidthQuota(qint64 bwq) {
-// qDebug() << Q_FUNC_INFO << bwq;
if (!atEnd()) {
_bandwidthQuota = bwq;
-// qDebug() << Q_FUNC_INFO << bwq << "emitting readyRead()" << _read << _readWithProgress;
QMetaObject::invokeMethod(this, "readyRead", Qt::QueuedConnection); // tell QNAM that we have quota
}
}
@@ -343,6 +333,7 @@ void PropagateUploadFileQNAM::startNextChunk()
QMap<QByteArray, QByteArray> headers;
headers["OC-Total-Length"] = QByteArray::number(fileSize);
headers["OC-Async"] = "1";
+ headers["OC-Chunk-Size"]= QByteArray::number(quint64(chunkSize()));
headers["Content-Type"] = "application/octet-stream";
headers["X-OC-Mtime"] = QByteArray::number(qint64(_item._modtime));
if (!_item._etag.isEmpty() && _item._etag != "empty_etag" &&
@@ -403,7 +394,7 @@ void PropagateUploadFileQNAM::startNextChunk()
startNextChunk();
}
if (!parallelChunkUpload || _chunkCount - _currentChunk <= 0) {
- emitReady();
+ emit ready();
}
} else {
qDebug() << "ERR: Could not open upload file: " << device->errorString();
@@ -456,6 +447,13 @@ void PropagateUploadFileQNAM::slotPutFinished()
_propagator->_anotherSyncNeeded = true;
}
+ foreach (auto job, _jobs) {
+ if (job->reply()) {
+ job->reply()->abort();
+ }
+ }
+
+ _finished = true;
done(classifyError(err, _item._httpErrorCode), errorString);
return;
}
@@ -466,6 +464,7 @@ void PropagateUploadFileQNAM::slotPutFinished()
_finished = true;
QString path = QString::fromUtf8(job->reply()->rawHeader("OC-Finish-Poll"));
if (path.isEmpty()) {
+ _finished = true;
done(SyncFileItem::NormalError, tr("Poll URL missing"));
return;
}
@@ -587,7 +586,7 @@ void PropagateUploadFileQNAM::finalize(const SyncFileItem &copy)
_propagator->_journal->setUploadInfo(_item._file, SyncJournalDb::UploadInfo());
_propagator->_journal->commit("upload file start");
- qDebug() << Q_FUNC_INFO << "msec=" <<_duration.elapsed();
+ _finished = true;
done(SyncFileItem::Success);
}
@@ -620,6 +619,7 @@ void PropagateUploadFileQNAM::startPollJob(const QString& path)
info._modtime = _item._modtime;
_propagator->_journal->setPollInfo(info);
_propagator->_journal->commit("add poll info");
+ _propagator->_activeJobs++;
job->start();
}
@@ -628,7 +628,10 @@ void PropagateUploadFileQNAM::slotPollFinished()
PollJob *job = qobject_cast<PollJob *>(sender());
Q_ASSERT(job);
+ _propagator->_activeJobs--;
+
if (job->_item._status != SyncFileItem::Success) {
+ _finished = true;
done(job->_item._status, job->_item._errorString);
return;
}
diff --git a/src/libsync/propagateupload.h b/src/libsync/propagateupload.h
index c6a250cbc..7b1c01966 100644
--- a/src/libsync/propagateupload.h
+++ b/src/libsync/propagateupload.h
@@ -21,30 +21,40 @@
#include <QDebug>
namespace OCC {
+class BandwidthManager;
-class ChunkBlock {
-
+class UploadDevice : public QIODevice {
+ Q_OBJECT
public:
- explicit ChunkBlock() : _state(NotTransfered) { }
- enum State {
- CHUNK_SUCCESS,
- NotTransfered, /* never tried to transfer */
- Transfered, /* transfer currently running */
- TransferFailed, /* transfer tried but failed */
- TransferSuccess, /* block transfer succeeded. */
- Fail
- };
-
- int _sequenceNo;
- int64_t _start;
- int64_t _size;
-
- State _state;
- int _httpResultCode;
- QString _httpErrorMsg;
- QString _etag;
- QBuffer *_buffer;
-
+ QPointer<QIODevice> _file;
+ qint64 _read;
+ qint64 _size;
+ qint64 _start;
+ BandwidthManager* _bandwidthManager;
+
+ qint64 _bandwidthQuota;
+ qint64 _readWithProgress;
+
+ UploadDevice(QIODevice *file, qint64 start, qint64 size, BandwidthManager *bwm);
+ ~UploadDevice();
+ virtual qint64 writeData(const char* , qint64 );
+ virtual qint64 readData(char* data, qint64 maxlen);
+ virtual bool atEnd() const;
+ virtual qint64 size() const;
+ qint64 bytesAvailable() const;
+ virtual bool isSequential() const;
+ virtual bool seek ( qint64 pos );
+
+ void setBandwidthLimited(bool);
+ bool isBandwidthLimited() { return _bandwidthLimited; }
+ void setChoked(bool);
+ bool isChoked() { return _choked; }
+ void giveBandwidthQuota(qint64 bwq);
+private:
+ bool _bandwidthLimited; // if _bandwidthQuota will be used
+ bool _choked; // if upload is paused (readData() will return 0)
+protected slots:
+ void slotJobUploadProgress(qint64 sent, qint64 t);
};
class PUTFileJob : public AbstractNetworkJob {
diff --git a/src/libsync/propagator_legacy.cpp b/src/libsync/propagator_legacy.cpp
index 8d9dda1d0..0e8561d45 100644
--- a/src/libsync/propagator_legacy.cpp
+++ b/src/libsync/propagator_legacy.cpp
@@ -56,6 +56,78 @@ static QByteArray get_etag_from_reply(ne_request *req)
return ret;
}
+bool PropagateNeonJob::updateErrorFromSession(int neon_code, ne_request* req, int ignoreHttpCode)
+{
+ if( neon_code != NE_OK ) {
+ qDebug("Neon error code was %d", neon_code);
+ }
+
+ QString errorString;
+ int httpStatusCode = 0;
+
+ switch(neon_code) {
+ case NE_OK: /* Success, but still the possiblity of problems */
+ if( req ) {
+ const ne_status *status = ne_get_status(req);
+
+ if (status) {
+ if ( status->klass == 2 || status->code == ignoreHttpCode) {
+ // Everything is ok, no error.
+ return false;
+ }
+ errorString = QString::fromUtf8( status->reason_phrase );
+ httpStatusCode = status->code;
+ _item._httpErrorCode = httpStatusCode;
+ }
+ } else {
+ errorString = QString::fromUtf8(ne_get_error(_propagator->_session));
+ httpStatusCode = errorString.mid(0, errorString.indexOf(QChar(' '))).toInt();
+ _item._httpErrorCode = httpStatusCode;
+ if ((httpStatusCode >= 200 && httpStatusCode < 300)
+ || (httpStatusCode != 0 && httpStatusCode == ignoreHttpCode)) {
+ // No error
+ return false;
+ }
+ }
+ // FIXME: classify the error
+ done (SyncFileItem::NormalError, errorString);
+ return true;
+ case NE_ERROR: /* Generic error; use ne_get_error(session) for message */
+ errorString = QString::fromUtf8(ne_get_error(_propagator->_session));
+ // Check if we don't need to ignore that error.
+ httpStatusCode = errorString.mid(0, errorString.indexOf(QChar(' '))).toInt();
+ _item._httpErrorCode = httpStatusCode;
+ qDebug() << Q_FUNC_INFO << "NE_ERROR" << errorString << httpStatusCode << ignoreHttpCode;
+ if (ignoreHttpCode && httpStatusCode == ignoreHttpCode)
+ return false;
+
+ done(SyncFileItem::NormalError, errorString);
+ return true;
+ case NE_LOOKUP: /* Server or proxy hostname lookup failed */
+ case NE_AUTH: /* User authentication failed on server */
+ case NE_PROXYAUTH: /* User authentication failed on proxy */
+ case NE_CONNECT: /* Could not connect to server */
+ case NE_TIMEOUT: /* Connection timed out */
+ done(SyncFileItem::FatalError, QString::fromUtf8(ne_get_error(_propagator->_session)));
+ return true;
+ case NE_FAILED: /* The precondition failed */
+ case NE_RETRY: /* Retry request (ne_end_request ONLY) */
+ case NE_REDIRECT: /* See ne_redirect.h */
+ default:
+ done(SyncFileItem::SoftError, QString::fromUtf8(ne_get_error(_propagator->_session)));
+ return true;
+ }
+ return false;
+}
+
+void UpdateMTimeAndETagJob::start()
+{
+ QScopedPointer<char, QScopedPointerPodDeleter> uri(
+ ne_path_escape((_propagator->_remoteDir + _item._file).toUtf8()));
+ if (!updateMTimeAndETag(uri.data(), _item._modtime))
+ return;
+ done(SyncFileItem::Success);
+}
void PropagateUploadFileLegacy::start()
{
@@ -640,6 +712,7 @@ void PropagateDownloadFileLegacy::start()
FileSystem::setFileHidden(tmpFile.fileName(), false);
QString error;
+ _propagator->addTouchedFile(fn);
if (!FileSystem::renameReplace(tmpFile.fileName(), fn, &error)) {
done(SyncFileItem::NormalError, error);
return;
diff --git a/src/libsync/propagator_legacy.h b/src/libsync/propagator_legacy.h
index 083230ef3..f162ad239 100644
--- a/src/libsync/propagator_legacy.h
+++ b/src/libsync/propagator_legacy.h
@@ -16,9 +16,73 @@
#pragma once
#include "propagatorjobs.h"
+#include <httpbf.h>
+#include <neon/ne_compress.h>
+struct hbf_transfer_s;
+struct ne_session_s;
+typedef struct ne_prop_result_set_s ne_prop_result_set;
+
namespace OCC {
+
+
+/* Helper for QScopedPointer<>, to be used as the deleter.
+ * QScopePointer will call the right overload of cleanup for the pointer it holds
+ */
+struct ScopedPointerHelpers {
+ static inline void cleanup(hbf_transfer_t *pointer) { if (pointer) hbf_free_transfer(pointer); }
+ static inline void cleanup(ne_request *pointer) { if (pointer) ne_request_destroy(pointer); }
+ static inline void cleanup(ne_decompress *pointer) { if (pointer) ne_decompress_destroy(pointer); }
+ // static inline void cleanup(ne_propfind_handler *pointer) { if (pointer) ne_propfind_destroy(pointer); }
+};
+
+
+/*
+ * Abstract class for neon job. Lives in the neon thread
+ */
+class PropagateNeonJob : public PropagateItemJob {
+ Q_OBJECT
+protected:
+
+ /* Issue a PROPPATCH and PROPFIND to update the mtime, and fetch the etag
+ * Return true in case of success, and false if the PROPFIND failed and the
+ * error has been reported
+ */
+ bool updateMTimeAndETag(const char *uri, time_t);
+
+ /* fetch the error code and string from the session
+ in case of error, calls done with the error and returns true.
+
+ If the HTTP error code is ignoreHTTPError, the error is ignored
+ */
+ bool updateErrorFromSession(int neon_code = 0, ne_request *req = 0, int ignoreHTTPError = 0);
+
+ /*
+ * to be called by the progress callback and will wait the amount of time needed.
+ */
+ void limitBandwidth(qint64 progress, qint64 limit);
+
+ QElapsedTimer _lastTime;
+ qint64 _lastProgress;
+ int _httpStatusCode;
+
+public:
+ PropagateNeonJob(OwncloudPropagator* propagator, const SyncFileItem &item)
+ : PropagateItemJob(propagator, item), _lastProgress(0), _httpStatusCode(0) {
+ moveToThread(propagator->_neonThread);
+ }
+
+ JobParallelism parallelism() Q_DECL_OVERRIDE { return WaitForFinished; }
+};
+
+class UpdateMTimeAndETagJob : public PropagateNeonJob {
+ Q_OBJECT
+public:
+ UpdateMTimeAndETagJob (OwncloudPropagator* propagator, const SyncFileItem& item) : PropagateNeonJob(propagator, item) {}
+ void start() Q_DECL_OVERRIDE;
+};
+
class PropagateUploadFileLegacy: public PropagateNeonJob {
Q_OBJECT
public:
diff --git a/src/libsync/propagatorjobs.cpp b/src/libsync/propagatorjobs.cpp
index d284d66fe..7778a89be 100644
--- a/src/libsync/propagatorjobs.cpp
+++ b/src/libsync/propagatorjobs.cpp
@@ -35,15 +35,6 @@
#include <qstack.h>
#include <QCoreApplication>
-#include <neon/ne_basic.h>
-#include <neon/ne_socket.h>
-#include <neon/ne_session.h>
-#include <neon/ne_props.h>
-#include <neon/ne_auth.h>
-#include <neon/ne_dates.h>
-#include <neon/ne_compress.h>
-#include <neon/ne_redirect.h>
-
#include <time.h>
@@ -135,99 +126,19 @@ void PropagateLocalMkdir::start()
done(SyncFileItem::Success);
}
-/* The list of properties that is fetched in PropFind after a MKCOL */
-static const ne_propname ls_props[] = {
- { "DAV:", "getetag"},
- { "http://owncloud.org/ns", "id"},
- { NULL, NULL }
-};
-
-/*
- * Parse the PROPFIND result after a MKCOL
- */
-void PropagateRemoteMkdir::propfind_results(void *userdata,
- const ne_uri *uri,
- const ne_prop_result_set *set)
-{
- PropagateRemoteMkdir *job = static_cast<PropagateRemoteMkdir *>(userdata);
-
- job->_item._etag = parseEtag(ne_propset_value( set, &ls_props[0] ));
-
- const char* fileId = ne_propset_value( set, &ls_props[1] );
- if (fileId) {
- job->_item._fileId = fileId;
- qDebug() << "MKCOL: " << uri << " FileID set it to " << fileId;
-
- // save the file id already so we can detect rename
- SyncJournalFileRecord record(job->_item, job->_propagator->_localDir + job->_item._renameTarget);
- job->_propagator->_journal->setFileRecord(record);
- }
-}
-
-/*
- * Called after the headers have been recieved, try to extract the fileId
- */
-void PropagateRemoteMkdir::post_headers(ne_request* req, void* userdata, const ne_status* )
-{
- const char *header = ne_get_response_header(req, "OC-FileId");
- if( header ) {
- qDebug() << "MKCOL: " << static_cast<PropagateRemoteMkdir*>(userdata)->_item._file << " FileID from header:" << header;
- static_cast<PropagateRemoteMkdir*>(userdata)->_item._fileId = header;
- }
-}
-
-
-void PropagateRemoteMkdir::start()
-{
- if (_propagator->_abortRequested.fetchAndAddRelaxed(0))
- return;
-
- QScopedPointer<char, QScopedPointerPodDeleter> uri(
- ne_path_escape((_propagator->_remoteDir + _item._file).toUtf8()));
-
- ne_hook_post_headers(_propagator->_session, post_headers, this);
-
- int rc = ne_mkcol(_propagator->_session, uri.data());
-
- ne_unhook_post_headers(_propagator->_session, post_headers, this);
-
-
- /* Special for mkcol: it returns 405 if the directory already exists.
- * Ignore that error */
- // Wed, 15 Nov 1995 06:25:24 GMT
- QDateTime dt = QDateTime::currentDateTimeUtc();
- _item._responseTimeStamp = dt.toString("hh:mm:ss");
-
- if( updateErrorFromSession( rc , 0, 405 ) ) {
- return;
- }
-
- if (_item._fileId.isEmpty()) {
- // Owncloud 7.0.0 and before did not have a header with the file id.
- // (https://github.com/owncloud/core/issues/9000)
- // So we must get the file id using a PROPFIND
- // This is required so that wa can detect moves even if the folder is renamed on the server
- // while files are still uploading
- ne_propfind_handler *hdl = ne_propfind_create(_propagator->_session, uri.data(), 0);
- ne_propfind_named(hdl, ls_props, propfind_results, this);
- ne_propfind_destroy(hdl);
- }
-
- done(SyncFileItem::Success);
-}
-
-
void PropagateLocalRename::start()
{
if (_propagator->_abortRequested.fetchAndAddRelaxed(0))
return;
+ QString existingFile = _propagator->getFilePath(_item._file);
+ QString targetFile = _propagator->getFilePath(_item._renameTarget);
+
// if the file is a file underneath a moved dir, the _item.file is equal
// to _item.renameTarget and the file is not moved as a result.
if (_item._file != _item._renameTarget) {
emit progress(_item, 0);
- qDebug() << "MOVE " << _propagator->_localDir + _item._file << " => " << _propagator->_localDir + _item._renameTarget;
- QFile file(_propagator->_localDir + _item._file);
+ qDebug() << "MOVE " << existingFile << " => " << targetFile;
if (QString::compare(_item._file, _item._renameTarget, Qt::CaseInsensitive) != 0
&& _propagator->localFileNameClash(_item._renameTarget)) {
@@ -240,7 +151,11 @@ void PropagateLocalRename::start()
.arg(QDir::toNativeSeparators(_item._file)).arg(QDir::toNativeSeparators(_item._renameTarget)) );
return;
}
- if (!file.rename(_propagator->_localDir + _item._file, _propagator->_localDir + _item._renameTarget)) {
+
+ _propagator->addTouchedFile(existingFile);
+ _propagator->addTouchedFile(targetFile);
+ QFile file(existingFile);
+ if (!file.rename(targetFile)) {
done(SyncFileItem::NormalError, file.errorString());
return;
}
@@ -251,7 +166,7 @@ void PropagateLocalRename::start()
// store the rename file name in the item.
_item._file = _item._renameTarget;
- SyncJournalFileRecord record(_item, _propagator->_localDir + _item._renameTarget);
+ SyncJournalFileRecord record(_item, targetFile);
record._path = _item._renameTarget;
if (!_item._isDirectory) { // Directory are saved at the end
@@ -263,79 +178,4 @@ void PropagateLocalRename::start()
done(SyncFileItem::Success);
}
-bool PropagateNeonJob::updateErrorFromSession(int neon_code, ne_request* req, int ignoreHttpCode)
-{
- if( neon_code != NE_OK ) {
- qDebug("Neon error code was %d", neon_code);
- }
-
- QString errorString;
- int httpStatusCode = 0;
-
- switch(neon_code) {
- case NE_OK: /* Success, but still the possiblity of problems */
- if( req ) {
- const ne_status *status = ne_get_status(req);
-
- if (status) {
- if ( status->klass == 2 || status->code == ignoreHttpCode) {
- // Everything is ok, no error.
- return false;
- }
- errorString = QString::fromUtf8( status->reason_phrase );
- httpStatusCode = status->code;
- _item._httpErrorCode = httpStatusCode;
- }
- } else {
- errorString = QString::fromUtf8(ne_get_error(_propagator->_session));
- httpStatusCode = errorString.mid(0, errorString.indexOf(QChar(' '))).toInt();
- _item._httpErrorCode = httpStatusCode;
- if ((httpStatusCode >= 200 && httpStatusCode < 300)
- || (httpStatusCode != 0 && httpStatusCode == ignoreHttpCode)) {
- // No error
- return false;
- }
- }
- // FIXME: classify the error
- done (SyncFileItem::NormalError, errorString);
- return true;
- case NE_ERROR: /* Generic error; use ne_get_error(session) for message */
- errorString = QString::fromUtf8(ne_get_error(_propagator->_session));
- // Check if we don't need to ignore that error.
- httpStatusCode = errorString.mid(0, errorString.indexOf(QChar(' '))).toInt();
- _item._httpErrorCode = httpStatusCode;
- qDebug() << Q_FUNC_INFO << "NE_ERROR" << errorString << httpStatusCode << ignoreHttpCode;
- if (ignoreHttpCode && httpStatusCode == ignoreHttpCode)
- return false;
-
- done(SyncFileItem::NormalError, errorString);
- return true;
- case NE_LOOKUP: /* Server or proxy hostname lookup failed */
- case NE_AUTH: /* User authentication failed on server */
- case NE_PROXYAUTH: /* User authentication failed on proxy */
- case NE_CONNECT: /* Could not connect to server */
- case NE_TIMEOUT: /* Connection timed out */
- done(SyncFileItem::FatalError, QString::fromUtf8(ne_get_error(_propagator->_session)));
- return true;
- case NE_FAILED: /* The precondition failed */
- case NE_RETRY: /* Retry request (ne_end_request ONLY) */
- case NE_REDIRECT: /* See ne_redirect.h */
- default:
- done(SyncFileItem::SoftError, QString::fromUtf8(ne_get_error(_propagator->_session)));
- return true;
- }
- return false;
-}
-
-void UpdateMTimeAndETagJob::start()
-{
- QScopedPointer<char, QScopedPointerPodDeleter> uri(
- ne_path_escape((_propagator->_remoteDir + _item._file).toUtf8()));
- if (!updateMTimeAndETag(uri.data(), _item._modtime))
- return;
- done(SyncFileItem::Success);
-}
-
-
-
}
diff --git a/src/libsync/propagatorjobs.h b/src/libsync/propagatorjobs.h
index d321cd663..3abe6dcc7 100644
--- a/src/libsync/propagatorjobs.h
+++ b/src/libsync/propagatorjobs.h
@@ -17,59 +17,11 @@
#include "owncloudpropagator.h"
#include <httpbf.h>
-#include <neon/ne_compress.h>
#include <QFile>
#include <qdebug.h>
namespace OCC {
-/* Helper for QScopedPointer<>, to be used as the deleter.
- * QScopePointer will call the right overload of cleanup for the pointer it holds
- */
-struct ScopedPointerHelpers {
- static inline void cleanup(hbf_transfer_t *pointer) { if (pointer) hbf_free_transfer(pointer); }
- static inline void cleanup(ne_request *pointer) { if (pointer) ne_request_destroy(pointer); }
- static inline void cleanup(ne_decompress *pointer) { if (pointer) ne_decompress_destroy(pointer); }
-// static inline void cleanup(ne_propfind_handler *pointer) { if (pointer) ne_propfind_destroy(pointer); }
-};
-
-/*
- * Abstract class for neon job. Lives in the neon thread
- */
-class PropagateNeonJob : public PropagateItemJob {
- Q_OBJECT
-protected:
-
- /* Issue a PROPPATCH and PROPFIND to update the mtime, and fetch the etag
- * Return true in case of success, and false if the PROPFIND failed and the
- * error has been reported
- */
- bool updateMTimeAndETag(const char *uri, time_t);
-
- /* fetch the error code and string from the session
- in case of error, calls done with the error and returns true.
-
- If the HTTP error code is ignoreHTTPError, the error is ignored
- */
- bool updateErrorFromSession(int neon_code = 0, ne_request *req = 0, int ignoreHTTPError = 0);
-
- /*
- * to be called by the progress callback and will wait the amount of time needed.
- */
- void limitBandwidth(qint64 progress, qint64 limit);
-
- QElapsedTimer _lastTime;
- qint64 _lastProgress;
- int _httpStatusCode;
-
-public:
- PropagateNeonJob(OwncloudPropagator* propagator, const SyncFileItem &item)
- : PropagateItemJob(propagator, item), _lastProgress(0), _httpStatusCode(0) {
- moveToThread(propagator->_neonThread);
- }
-
-};
-
class PropagateLocalRemove : public PropagateItemJob {
Q_OBJECT
public:
@@ -83,29 +35,12 @@ public:
void start() Q_DECL_OVERRIDE;
};
-class PropagateRemoteMkdir : public PropagateNeonJob {
- Q_OBJECT
-public:
- PropagateRemoteMkdir (OwncloudPropagator* propagator,const SyncFileItem& item) : PropagateNeonJob(propagator, item) {}
- void start() Q_DECL_OVERRIDE;
-private:
- static void propfind_results(void *userdata, const ne_uri *uri, const ne_prop_result_set *set);
- static void post_headers(ne_request *req, void *userdata, const ne_status *status);
- friend class PropagateDirectory; // So it can access the _item;
-};
class PropagateLocalRename : public PropagateItemJob {
Q_OBJECT
public:
PropagateLocalRename (OwncloudPropagator* propagator,const SyncFileItem& item) : PropagateItemJob(propagator, item) {}
void start() Q_DECL_OVERRIDE;
-};
-
-// To support older owncloud in the
-class UpdateMTimeAndETagJob : public PropagateNeonJob{
- Q_OBJECT
-public:
- UpdateMTimeAndETagJob (OwncloudPropagator* propagator, const SyncFileItem& item) : PropagateNeonJob(propagator, item) {}
- void start() Q_DECL_OVERRIDE;
+ JobParallelism parallelism() Q_DECL_OVERRIDE { return WaitForFinishedInParentDirectory; }
};
diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index 76f0ca916..abb8172bb 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -181,7 +181,7 @@ QString SyncEngine::csyncErrorToString(CSYNC_STATUS err)
errStr = tr("Aborted by the user");
break;
case CSYNC_STATUS_SERVICE_UNAVAILABLE:
- errStr = tr("The mounted directory is temporary not available on the server");
+ errStr = tr("The mounted directory is temporarily not available on the server");
break;
default:
errStr = tr("An internal error number %1 happened.").arg( (int) err );
@@ -559,6 +559,14 @@ void SyncEngine::startSync()
qDebug() << "=====sync with existing DB";
}
+ qDebug() << "=====Using Qt" << qVersion();
+#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
+ qDebug() << "=====Using SSL library version"
+ << QSslSocket::sslLibraryVersionString().toUtf8().data();
+#endif
+ // Note that this seems to output the OpenSSL build version not runtime version:
+ qDebug() << "=====Using" << ne_version_string();
+
fileRecordCount = _journal->getFileRecordCount(); // this creates the DB if it does not exist yet
bool isUpdateFrom_1_5 = _journal->isUpdateFrom_1_5();
@@ -712,9 +720,6 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
}
}
- if (_needsUpdate)
- emit(started());
-
ne_session_s *session = 0;
// that call to set property actually is a get which will return the session
csync_set_module_property(_csync_ctx, "get_dav_session", &session);
@@ -735,8 +740,8 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
// do a database commit
_journal->commit("post treewalk");
- _propagator.reset(new OwncloudPropagator (session, _localPath, _remoteUrl, _remotePath,
- _journal, &_thread));
+ _propagator = QSharedPointer<OwncloudPropagator>(
+ new OwncloudPropagator (session, _localPath, _remoteUrl, _remotePath, _journal, &_thread));
connect(_propagator.data(), SIGNAL(completed(SyncFileItem)),
this, SLOT(slotJobCompleted(SyncFileItem)));
connect(_propagator.data(), SIGNAL(progress(SyncFileItem,quint64)),
@@ -752,6 +757,10 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
deleteStaleBlacklistEntries();
_journal->commit("post stale entry removal");
+ // Emit the started signal only after the propagator has been set up.
+ if (_needsUpdate)
+ emit(started());
+
_propagator->start(_syncedItems);
}
@@ -838,9 +847,11 @@ void SyncEngine::finalize()
qDebug() << "CSync run took " << _stopWatch.addLapTime(QLatin1String("Sync Finished"));
_stopWatch.stop();
- _propagator.reset(0);
_syncRunning = false;
emit finished();
+
+ // Delete the propagator only after emitting the signal.
+ _propagator.clear();
}
void SyncEngine::slotProgress(const SyncFileItem& item, quint64 current)
@@ -1126,6 +1137,16 @@ bool SyncEngine::estimateState(QString fn, csync_ftw_type_e t, SyncFileStatus* s
return false;
}
+qint64 SyncEngine::timeSinceFileTouched(const QString& fn) const
+{
+ // This copy is essential for thread safety.
+ QSharedPointer<OwncloudPropagator> prop = _propagator;
+ if (prop) {
+ return prop->timeSinceFileTouched(fn);
+ }
+ return -1;
+}
+
void SyncEngine::abort()
{
csync_request_abort(_csync_ctx);
diff --git a/src/libsync/syncengine.h b/src/libsync/syncengine.h
index 848a1a6d1..fc01eb549 100644
--- a/src/libsync/syncengine.h
+++ b/src/libsync/syncengine.h
@@ -69,6 +69,12 @@ public:
bool estimateState(QString fn, csync_ftw_type_e t, SyncFileStatus* s);
+ /** Get the ms since a file was touched, or -1 if it wasn't.
+ *
+ * Thread-safe.
+ */
+ qint64 timeSinceFileTouched(const QString& fn) const;
+
signals:
void csyncError( const QString& );
void csyncUnavailable();
@@ -140,7 +146,7 @@ private:
QString _remoteUrl;
QString _remotePath;
SyncJournalDb *_journal;
- QScopedPointer <OwncloudPropagator> _propagator;
+ QSharedPointer <OwncloudPropagator> _propagator;
QString _lastDeleted; // if the last item was a path and it has been deleted
QSet<QString> _seenFiles;
QThread _thread;
diff --git a/src/libsync/syncjournaldb.cpp b/src/libsync/syncjournaldb.cpp
index d006816e6..78fc2e3cf 100644
--- a/src/libsync/syncjournaldb.cpp
+++ b/src/libsync/syncjournaldb.cpp
@@ -158,11 +158,6 @@ bool SyncJournalDb::checkConnect()
return sqlFail("Set PRAGMA case_sensitivity", pragma1);
}
- // Hide 'em all!
- FileSystem::setFileHidden(databaseFilePath(), true);
- FileSystem::setFileHidden(databaseFilePath() + "-wal", true);
- FileSystem::setFileHidden(databaseFilePath() + "-shm", true);
-
/* Because insert are so slow, e do everything in a transaction, and one need to call commit */
startTransaction();
@@ -349,6 +344,11 @@ bool SyncJournalDb::checkConnect()
// don't start a new transaction now
commitInternal(QString("checkConnect End"), false);
+ // Hide 'em all!
+ FileSystem::setFileHidden(databaseFilePath(), true);
+ FileSystem::setFileHidden(databaseFilePath() + "-wal", true);
+ FileSystem::setFileHidden(databaseFilePath() + "-shm", true);
+
return rc;
}
@@ -1164,8 +1164,9 @@ void SyncJournalDb::setPollInfo(const SyncJournalDb::PollInfo& info)
}
if (info._url.isEmpty()) {
+ qDebug() << "Deleting Poll job" << info._file;
SqlQuery query("DELETE FROM poll WHERE path=?", _db);
- query.bindValue(0, info._file);
+ query.bindValue(1, info._file);
if( !query.exec() ) {
qDebug() << "SQL error in setPollInfo: "<< query.error();
} else {
@@ -1173,9 +1174,9 @@ void SyncJournalDb::setPollInfo(const SyncJournalDb::PollInfo& info)
}
} else {
SqlQuery query("INSERT OR REPLACE INTO poll (path, modtime, pollpath) VALUES( ? , ? , ? )", _db);
- query.bindValue(0, info._file);
- query.bindValue(1, QString::number(info._modtime));
- query.bindValue(2, info._url);
+ query.bindValue(1, info._file);
+ query.bindValue(2, QString::number(info._modtime));
+ query.bindValue(3, info._url);
if( !query.exec() ) {
qDebug() << "SQL error in setPollInfo: "<< query.error();
} else {
diff --git a/src/libsync/syncjournaldb.h b/src/libsync/syncjournaldb.h
index c174ff6cb..2f82f4b4e 100644
--- a/src/libsync/syncjournaldb.h
+++ b/src/libsync/syncjournaldb.h
@@ -154,10 +154,12 @@ private:
QList<QString> _avoidReadFromDbOnNextSyncFilter;
};
-bool operator==(const SyncJournalDb::DownloadInfo & lhs,
- const SyncJournalDb::DownloadInfo & rhs);
-bool operator==(const SyncJournalDb::UploadInfo & lhs,
- const SyncJournalDb::UploadInfo & rhs);
+bool OWNCLOUDSYNC_EXPORT
+operator==(const SyncJournalDb::DownloadInfo & lhs,
+ const SyncJournalDb::DownloadInfo & rhs);
+bool OWNCLOUDSYNC_EXPORT
+operator==(const SyncJournalDb::UploadInfo & lhs,
+ const SyncJournalDb::UploadInfo & rhs);
} // namespace OCC
#endif // SYNCJOURNALDB_H
diff --git a/src/libsync/syncjournalfilerecord.h b/src/libsync/syncjournalfilerecord.h
index 3c8e1599e..aac9ce0fb 100644
--- a/src/libsync/syncjournalfilerecord.h
+++ b/src/libsync/syncjournalfilerecord.h
@@ -44,8 +44,9 @@ public:
int _mode;
};
-bool operator==(const SyncJournalFileRecord & lhs,
- const SyncJournalFileRecord & rhs);
+bool OWNCLOUDSYNC_EXPORT
+operator==(const SyncJournalFileRecord & lhs,
+ const SyncJournalFileRecord & rhs);
class SyncJournalBlacklistRecord
{
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 9075449f4..40a076a28 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -27,8 +27,8 @@ endif(UNIX AND NOT APPLE)
owncloud_add_test(CSyncSqlite "")
owncloud_add_test(NetrcParser ../src/cmd/netrcparser.cpp)
-owncloud_add_test(OwnSql ../src/libsync/ownsql.cpp)
-owncloud_add_test(SyncJournalDB ../src/libsync/syncjournaldb.cpp)
+owncloud_add_test(OwnSql "")
+owncloud_add_test(SyncJournalDB "")
diff --git a/test/testfolderwatcher.h b/test/testfolderwatcher.h
index 4fbf77326..c8f9834d3 100644
--- a/test/testfolderwatcher.h
+++ b/test/testfolderwatcher.h
@@ -10,7 +10,7 @@
#include <QtTest>
-#include "folderwatcher_linux.h"
+#include "folderwatcher.h"
#include "utility.h"
using namespace OCC;
@@ -21,9 +21,12 @@ class TestFolderWatcher : public QObject
public slots:
void slotFolderChanged( const QString& path ) {
- qDebug() << "COMPARE: " << path << _checkMark;
- QVERIFY(_checkMark == path);
- _checkMark.clear();
+ if (_skipNotifications.contains(path)) {
+ return;
+ }
+ if (_requiredNotifications.contains(path)) {
+ _receivedNotifications.insert(path);
+ }
}
void slotEnd() { // in case something goes wrong...
@@ -36,7 +39,16 @@ private:
FolderWatcher *_watcher;
QEventLoop _loop;
QTimer _timer;
- QString _checkMark;
+ QSet<QString> _requiredNotifications;
+ QSet<QString> _receivedNotifications;
+ QSet<QString> _skipNotifications;
+
+ void processAndWait()
+ {
+ _loop.processEvents();
+ Utility::usleep(200000);
+ _loop.processEvents();
+ }
private slots:
void initTestCase() {
@@ -52,68 +64,105 @@ private slots:
rootDir.mkpath(_root + "/a2/b3/c3");
Utility::writeRandomFile( _root+"/a1/random.bin");
Utility::writeRandomFile( _root+"/a1/b2/todelete.bin");
- Utility::writeRandomFile( _root+"/a2/movefile");
+ Utility::writeRandomFile( _root+"/a2/renamefile");
+ Utility::writeRandomFile( _root+"/a1/movefile");
_watcher = new FolderWatcher(_root);
- QObject::connect(_watcher, SIGNAL(folderChanged(QString)), this, SLOT(slotFolderChanged(QString)));
- _timer.singleShot(3000, this, SLOT(slotEnd()));
+ QObject::connect(_watcher, SIGNAL(pathChanged(QString)), this, SLOT(slotFolderChanged(QString)));
+ _timer.singleShot(5000, this, SLOT(slotEnd()));
+ }
+
+ void init()
+ {
+ _receivedNotifications.clear();
+ _requiredNotifications.clear();
+ _skipNotifications.clear();
+ }
+
+ void checkNotifications()
+ {
+ processAndWait();
+ QCOMPARE(_receivedNotifications, _requiredNotifications);
}
void testACreate() { // create a new file
+ QString file(_root + "/foo.txt");
QString cmd;
- _checkMark = _root;
- cmd = QString("echo \"xyz\" > %1/foo.txt").arg(_root);
+ _requiredNotifications.insert(file);
+ cmd = QString("echo \"xyz\" > %1").arg(file);
qDebug() << "Command: " << cmd;
system(cmd.toLocal8Bit());
- _loop.processEvents();
- QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
+ checkNotifications();
}
void testATouch() { // touch an existing file.
+ QString file(_root + "/a1/random.bin");
+ _requiredNotifications.insert(file);
+#ifdef Q_OS_WIN
+ Utility::writeRandomFile(QString("%1/a1/random.bin").arg(_root));
+#else
QString cmd;
- cmd = QString("/usr/bin/touch %1/a1/random.bin").arg(_root);
- _checkMark = _root+"/a1";
+ cmd = QString("/usr/bin/touch %1").arg(file);
qDebug() << "Command: " << cmd;
system(cmd.toLocal8Bit());
+#endif
- _loop.processEvents();
- QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
+ checkNotifications();
}
void testCreateADir() {
- _checkMark = _root+"/a1/b1";
+ QString file(_root+"/a1/b1/new_dir");
+ _requiredNotifications.insert(file);
+ //_skipNotifications.insert(_root + "/a1/b1/new_dir");
QDir dir;
- dir.mkdir( _root + "/a1/b1/new_dir");
- QVERIFY(QFile::exists(_root + "/a1/b1/new_dir"));
- _loop.processEvents();
- QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
+ dir.mkdir(file);
+ QVERIFY(QFile::exists(file));
+
+ checkNotifications();
}
void testRemoveADir() {
- _checkMark = _root+"/a1/b3";
+ QString file(_root+"/a1/b3/c3");
+ _requiredNotifications.insert(file);
QDir dir;
- QVERIFY(dir.rmdir(_root+"/a1/b3/c3"));
- _loop.processEvents();
- QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
+ QVERIFY(dir.rmdir(file));
+
+ checkNotifications();
}
void testRemoveAFile() {
- _checkMark = _root+"/a1/b2";
- QVERIFY(QFile::exists(_root+"/a1/b2/todelete.bin"));
- QFile::remove(_root+"/a1/b2/todelete.bin");
- QVERIFY(!QFile::exists(_root+"/a1/b2/todelete.bin"));
- _loop.processEvents();
- QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
+ QString file(_root+"/a1/b2/todelete.bin");
+ _requiredNotifications.insert(file);
+ QVERIFY(QFile::exists(file));
+ QFile::remove(file);
+ QVERIFY(!QFile::exists(file));
+
+ checkNotifications();
+ }
+
+ void testRenameAFile() {
+ QString file1(_root+"/a2/renamefile");
+ QString file2(_root+"/a2/renamefile.renamed");
+ _requiredNotifications.insert(file1);
+ _requiredNotifications.insert(file2);
+ QVERIFY(QFile::exists(file1));
+ QFile::rename(file1, file2);
+ QVERIFY(QFile::exists(file2));
+
+ checkNotifications();
}
void testMoveAFile() {
- _checkMark = _root+"/a2";
- QVERIFY(QFile::exists(_root+"/a2/movefile"));
- QFile::rename(_root+"/a2/movefile", _root+"/a2/movefile.renamed" );
- QVERIFY(QFile::exists(_root+"/a2/movefile.renamed"));
- _loop.processEvents();
- QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
+ QString old_file(_root+"/a1/movefile");
+ QString new_file(_root+"/a2/movefile.renamed");
+ _requiredNotifications.insert(old_file);
+ _requiredNotifications.insert(new_file);
+ QVERIFY(QFile::exists(old_file));
+ QFile::rename(old_file, new_file);
+ QVERIFY(QFile::exists(new_file));
+
+ checkNotifications();
}
void cleanupTestCase() {
diff --git a/translations/mirall_ca.ts b/translations/mirall_ca.ts
index fff6dd6cf..915f77fab 100644
--- a/translations/mirall_ca.ts
+++ b/translations/mirall_ca.ts
@@ -386,12 +386,12 @@ Temps restant total %5</translation>
<translation>Activitat de sincronització</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Això podria ser perquè la carpeta ha estat reconfigurada silenciosament, o que
Esteu segur que voleu executar aquesta operació?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Esborra tots els fitxers?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Esborra tots els fitxers</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Mantén els fitxers</translation>
</message>
@@ -637,22 +637,22 @@ Esteu segur que voleu executar aquesta operació?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>No s&apos;ha rebut cap E-Tag del servidor, comproveu el Proxy/Gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Hem rebut un E-Tag diferent en la represa. Es comprovarà la pròxima vegada.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Temps de connexió excedit</translation>
</message>
@@ -1113,8 +1113,12 @@ No és aconsellada usar-la.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>No s&apos;ha pogut connectar de forma segura. Voleu connectar sense encriptació (no recomanat)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1310,27 @@ No és aconsellada usar-la.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>L&apos;usuari ha aturat la sincronització.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>No s&apos;ha rebut cap E-Tag del servidor, comproveu el Proxy/Gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>hem rebut un E-Tag diferent en la represa. Es comprovarà la pròxima vegada.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>El fitxer %1 no es pot baixar perquè hi ha un xoc amb el nom d&apos;un fitxer local!</translation>
</message>
@@ -1334,12 +1338,17 @@ No és aconsellada usar-la.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>El fitxer %1 no es pot baixar perquè hi ha un xoc amb el nom d&apos;un fitxer local!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1425,18 +1434,18 @@ No és aconsellada usar-la.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>El fitxer local ha canviat durant la sincronització, es sincronitzarà quan arribi complet</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>L&apos;usuari ha aturat la sincronització.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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 conflictiu.</translation>
</message>
@@ -1444,23 +1453,23 @@ No és aconsellada usar-la.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<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/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>El fitxer local ha canviat durant la sincronització.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>El servidor no ha reconegut l&apos;últim fragment. (No hi havia e-Tag)</translation>
</message>
@@ -1538,16 +1547,27 @@ No és aconsellada usar-la.</translation>
<translation>L&apos;estat de sincronització s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Actualment no s&apos;ha ignorat cap fitxer a causa d&apos;errors anteriors.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1634,12 +1654,12 @@ No és aconsellada usar-la.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Error d&apos;accés</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Cal identificar-se com a usuari %1</translation>
</message>
@@ -2047,69 +2067,69 @@ No és aconsellada usar-la.</translation>
<translation>El fitxer conté caràcters no vàlids que no es poden sincronitzar entre plataformes.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>No es pot inicialitzar un periòdic de sincronització</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>No es pot obrir el diari de sincronització</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>No es permet perquè no teniu permisos per afegir subcarpetes en aquesta carpeta</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>No es permet perquè no teniu permisos per afegir una carpeta inferior</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>No es permet perquè no teniu permisos per afegir fitxers en aquesta carpeta</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<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/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>No es permet l&apos;eliminació, es restaura</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Fitxers locals i carpeta compartida esborrats.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<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/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<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/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>el destí</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>l&apos;origen</translation>
</message>
diff --git a/translations/mirall_cs.ts b/translations/mirall_cs.ts
index f331fea6e..7b85addc6 100644
--- a/translations/mirall_cs.ts
+++ b/translations/mirall_cs.ts
@@ -198,7 +198,7 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="608"/>
<source>Discovering &apos;%1&apos;</source>
- <translation>Hledám &apos;%1&apos;</translation>
+ <translation>Prohledávám &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="648"/>
@@ -386,12 +386,12 @@ Celkový zbývající čas %5</translation>
<translation>Průběh synchronizace</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<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/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Toto může být způsobeno změnou v nastavení synchronizace složky nebo tím
Opravdu chcete provést tuto akci?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Odstranit všechny soubory?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Odstranit všechny soubory</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Ponechat soubory</translation>
</message>
@@ -637,22 +637,22 @@ Opravdu chcete provést tuto akci?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ze serveru nebyl obdržen E-Tag, zkontrolujte proxy/bránu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Obdrželi jsme jiný E-Tag pro pokračování. Zkusím znovu příště.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Server odpověděl chybným rozsahem obsahu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Vypršel čas spojení</translation>
</message>
@@ -1113,8 +1113,16 @@ Nedoporučuje se jí používat.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Nemohu se připojit zabezpečeně. Přejete si místo toho připojit nezabezpečeně (nedoporučuje se)? </translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Nelze se připojit zabezpečeně:
+
+%1
+
+Chcete se místo toho připojit nezabezpečeně (nedoporučuje se)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synchronizace zrušena uživatelem.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ze serveru nebyl obdržen E-Tag, zkontrolujte proxy/bránu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Obdrželi jsme jiný E-Tag pro pokračování. Zkusím znovu příště.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Server odpověděl chybným rozsahem obsahu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Soubor %1 nemohl být stažen z důvodu kolize názvu se souborem v místním systému!</translation>
</message>
@@ -1334,12 +1342,17 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Soubor %1 nemohl být stažen z důvodu kolize názvu se souborem v místním systému!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Soubor nemohl být kompletně stažen.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Soubor %1 nemohl být uložen z důvodu kolize názvu se souborem v místním systému!</translation>
</message>
@@ -1380,7 +1393,7 @@ Nedoporučuje se jí používat.</translation>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="79"/>
<source>Could not remove directory &apos;%1&apos;; </source>
- <translation>Nezdařilo se odstranění adresáře &apos;%1&apos;;</translation>
+ <translation>Nepodařilo se odstranit adresář &apos;%1&apos;;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="94"/>
@@ -1425,18 +1438,18 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Místní soubor byl změněn během synchronizace, bude sesynchronizován, jakmile bude kompletní</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synchronizace zrušena uživatelem.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1444,23 +1457,23 @@ Nedoporučuje se jí používat.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<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/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Místní soubor byl změněn během synchronizace.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Server nepotvrdil poslední část dat. (Nebyl nalezen e-tag)</translation>
</message>
@@ -1538,18 +1551,32 @@ Nedoporučuje se jí používat.</translation>
<translation>Stav synchronizace byl zkopírován do schránky.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Nyní nejsou v seznamu ignorovaných žádné soubory kvůli předchozím chybám.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>V současné době nejsou na černé listině žádné soubory kvůli předchozím chybovým stavům a neprobíhá žádné stahování.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n soubor je ignorován kvůli předchozím chybovým hlášením.
-Zkuste ho znovu synchronizovat.</numerusform><numerusform>%n soubory jsou ignorovány kvůli předchozím chybovým hlášením.
-Zkuste je znovu synchronizovat.</numerusform><numerusform>%n souborů je ignorováno kvůli předchozím chybovým hlášením.
-Zkuste je znovu synchronizovat.</numerusform></translation>
+</source>
+ <translation><numerusform> %n soubor je ignorován kvůli předchozím chybovým hlášením.
+</numerusform><numerusform>%n soubory jsou ignorovány kvůli předchozím chybovým hlášením.
+</numerusform><numerusform>%n souborů je ignorováno kvůli předchozím chybovým hlášením.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n soubor je částečně stažený.
+</numerusform><numerusform>%n soubory jsou částečně stažené.
+</numerusform><numerusform>%n souborů je částečně staženo.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Zkuste je znovu synchronizovat.</translation>
</message>
</context>
<context>
@@ -1562,7 +1589,7 @@ Zkuste je znovu synchronizovat.</numerusform></translation>
<message>
<location filename="../src/mirall/selectivesyncdialog.cpp" line="274"/>
<source>Unchecked folders will be &lt;b&gt;removed&lt;/b&gt; from your local file system and will not be synchronized to this computer anymore</source>
- <translation>Neoznačené adresáře budou &lt;b&gt;odstraněny&lt;/b&gt; z lokálního souborového systému a nebudou již synchronizovány na tento počítač</translation>
+ <translation>Neoznačené adresáře budou &lt;b&gt;odstraněny&lt;/b&gt; z místního souborového systému a nebudou již synchronizovány na tento počítač</translation>
</message>
</context>
<context>
@@ -1637,12 +1664,12 @@ Zkuste je znovu synchronizovat.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Chyba přihlášení</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Musíte se přihlásit jako uživatel %1</translation>
</message>
@@ -2050,69 +2077,69 @@ Zkuste je znovu synchronizovat.</numerusform></translation>
<translation>Soubor obsahuje alespoň jeden neplatný znak, který narušuje synchronizaci v prostředí více platforem.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Nemohu inicializovat synchronizační žurnál.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Nelze otevřít synchronizační žurnál</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<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/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Není povoleno, protože nemáte oprávnění vytvářet podadresáře v tomto adresáři.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Není povoleno, protože nemáte oprávnění vytvořit rodičovský adresář</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Není povoleno, protože nemáte oprávnění přidávat soubory do tohoto adresáře</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<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/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Odstranění není povoleno, obnovuji</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<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/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Přesun není povolen, položka obnovena</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<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/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>cílové umístění</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>zdroj</translation>
</message>
@@ -2248,7 +2275,7 @@ Zkuste je znovu synchronizovat.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="470"/>
<source>Discovering &apos;%1&apos;</source>
- <translation>Hledám &apos;%1&apos;</translation>
+ <translation>Prohledávám &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="474"/>
diff --git a/translations/mirall_de.ts b/translations/mirall_de.ts
index b6572315e..f94a87abe 100644
--- a/translations/mirall_de.ts
+++ b/translations/mirall_de.ts
@@ -387,12 +387,12 @@ Gesamtzeit übrig %5</translation>
<translation>Synchronisierungsaktivität</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Systemeigene Ausschlussdatei kann nicht gelesen werden</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -401,17 +401,17 @@ Vielleicht wurde der Ordner neu konfiguriert, oder alle Dateien wurden händisch
Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Alle Dateien löschen?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Lösche alle Dateien</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Dateien behalten</translation>
</message>
@@ -461,7 +461,7 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
<message>
<location filename="../src/mirall/folderman.cpp" line="890"/>
<source>Setup Error.</source>
- <translation>Setup-Fehler.</translation>
+ <translation>Installationsfehler.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="893"/>
@@ -638,22 +638,22 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Kein E-Tag vom Server empfangen, bitte Proxy / Gateway überprüfen</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Es wurde ein unterschiedlicher E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Server hat falschen Bereich für den Inhalt zurück gegeben</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Zeitüberschreitung der Verbindung</translation>
</message>
@@ -744,7 +744,7 @@ Aktivierte Elemente werden ebenfalls gelöscht, wenn diese das Löschen eines Ve
<message>
<location filename="../src/mirall/ignorelisteditor.cpp" line="97"/>
<source>Could not open file</source>
- <translation>Konnte Datei nicht öffnen</translation>
+ <translation>Datei konnte nicht geöffnet werden</translation>
</message>
<message>
<location filename="../src/mirall/ignorelisteditor.cpp" line="98"/>
@@ -840,7 +840,7 @@ Aktivierte Elemente werden ebenfalls gelöscht, wenn diese das Löschen eines Ve
<message>
<location filename="../src/mirall/logger.cpp" line="149"/>
<source>&lt;nobr&gt;File &apos;%1&apos;&lt;br/&gt;cannot be opened for writing.&lt;br/&gt;&lt;br/&gt;The log output can &lt;b&gt;not&lt;/b&gt; be saved!&lt;/nobr&gt;</source>
- <translation>&lt;nobr&gt;Datei &apos;%1&apos;&lt;br/&gt;kann nicht zum Schreiben geöffnet werden.&lt;br/&gt;&lt;br/&gt;Die Protokolldatei kann &lt;b&gt;nicht&lt;/b&gt; gespeichert werden!&lt;/nobr&gt;</translation>
+ <translation>&lt;nobr&gt;Datei »%1«&lt;br/&gt;kann nicht zum Schreiben geöffnet werden.&lt;br/&gt;&lt;br/&gt;Die Protokolldatei kann &lt;b&gt;nicht&lt;/b&gt; gespeichert werden!&lt;/nobr&gt;</translation>
</message>
</context>
<context>
@@ -1114,8 +1114,16 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Die Verbindung kann nicht sicher hergestellt werden. Möchten Sie stattdessen unverschlüsselt verbinden (nicht empfohlen)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Die Verbindung kann nicht sicher hergestellt werden:
+
+%1
+
+Möchten Sie stattdessen unverschlüsselt verbinden (nicht empfohlen)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1252,7 +1260,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<message>
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="374"/>
<source>Can&apos;t remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
- <translation>Kann den Ordner nicht entfernen und sichern, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner ode die Datei oder beenden Sie das Setup.</translation>
+ <translation>Der Ordner kann nicht entfernt und gesichert werden, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner oder die Datei oder beenden Sie die Installation.</translation>
</message>
</context>
<context>
@@ -1307,27 +1315,27 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synchronisation wurde durch den Nutzer abgebrochen.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Kein E-Tag vom Server empfangen, bitte Proxy / Gateway überprüfen</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Es wurde ein unterschiedlicher E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Server hat falschen Bereich für den Inhalt zurück gegeben</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden!</translation>
</message>
@@ -1335,12 +1343,17 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Die Datei konnte nicht vollständig herunter geladen werden.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht gespeichert geladen werden!</translation>
</message>
@@ -1426,18 +1439,18 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Eine lokale Datei wurde während der Synchronisation geändert, synchronisieren Sie nochmals sobald die aktuelle Datei vollständig angekommen ist</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synchronisation wurde durch den Nutzer abgebrochen.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1445,23 +1458,23 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<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/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Eine lokale Datei wurde während der Synchronisation geändert.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Der Server hat den letzten Block nicht bestätigt. (Der E-Tag war nicht vorhanden)</translation>
</message>
@@ -1539,17 +1552,28 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
<translation>Der Synchronisationsstatus wurde in die Zwischenablage kopiert.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Aktuell werden keine Dateien, aufgrund vorheriger Fehler, ignoriert.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Aktuell werden keine Dateien, aufgrund vorheriger Fehler und keine laufenden Downloads, ignoriert.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n Datei wurde aufgrund eines vorherigen Fehlers ignoriert.
-Versuchen Sie diese nochmals zu synchronisieren.</numerusform><numerusform>%n Dateien werden aufgrund vorheriger Fehler ignoriert.
-Versuchen Sie diese nochmals zu synchronisieren.</numerusform></translation>
+</source>
+ <translation><numerusform>%n Datei wird aufgrund vorheriger Fehler ignoriert.</numerusform><numerusform>%n Dateien werden aufgrund vorheriger Fehler ignoriert.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n Datei ist teilweise heruntergeladen.</numerusform><numerusform>%n Dateien sind teilweise heruntergeladen.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Versuchen, diese nochmals zu synchronisieren.</translation>
</message>
</context>
<context>
@@ -1637,12 +1661,12 @@ Versuchen Sie diese nochmals zu synchronisieren.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Log-In Fehler</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Sie müssen sich als %1 einloggen</translation>
</message>
@@ -2050,69 +2074,69 @@ Versuchen Sie diese nochmals zu synchronisieren.</numerusform></translation>
<translation>Die Datei beinhaltet ungültige Zeichen und kann nicht plattformübergreifend synchronisiert werden.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Synchronisationsbericht konnte nicht initialisiert werden.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Synchronisationsbericht kann nicht geöffnet werden</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<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/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Unterordnern haben</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Hauptordnern haben</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Nicht erlaubt, da Sie keine Rechte zum Hinzufügen von Dateien in diesen Ordner haben</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<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/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Löschen nicht erlaubt, Wiederherstellung</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Lokale Dateien und Freigabeordner wurden entfernt.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Verschieben nicht erlaubt, Element wiederhergestellt</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<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/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>Das Ziel</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>Die Quelle</translation>
</message>
@@ -2183,7 +2207,7 @@ Versuchen Sie diese nochmals zu synchronisieren.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="340"/>
<source>Open folder &apos;%1&apos;</source>
- <translation>Ordner &apos;%1&apos; öffnen</translation>
+ <translation>Ordner »%1« öffnen</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="412"/>
@@ -2641,7 +2665,7 @@ Versuchen Sie diese nochmals zu synchronisieren.</numerusform></translation>
<message>
<location filename="../src/mirall/theme.cpp" line="69"/>
<source>Setup Error</source>
- <translation>Setup-Fehler</translation>
+ <translation>Installationsfehler</translation>
</message>
<message>
<location filename="../src/mirall/theme.cpp" line="72"/>
diff --git a/translations/mirall_el.ts b/translations/mirall_el.ts
index 670822226..24d6f07ee 100644
--- a/translations/mirall_el.ts
+++ b/translations/mirall_el.ts
@@ -387,12 +387,12 @@ Total time left %5</source>
<translation>Δραστηριότητα Συγχρονισμού</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Αδυναμία ανάγνωσης αρχείου αποκλεισμού συστήματος</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -401,17 +401,17 @@ Are you sure you want to perform this operation?</source>
Είστε σίγουροι ότι θέλετε να εκτελέσετε αυτή τη λειτουργία;</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Αφαίρεση Όλων των Αρχείων;</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Αφαίρεση όλων των αρχείων</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Διατήρηση αρχείων</translation>
</message>
@@ -638,22 +638,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Δεν ελήφθη E-Tag από το διακομιστή, ελέγξτε το διακομιστή μεσολάβησης/πύλη</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Ελήφθη διαφορετικό E-Tag για συνέχιση. Επανάληψη την επόμενη φορά.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Ο διακομιστής επέστρεψε εσφαλμένο πεδίο τιμών</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Λήξη Χρόνου Αναμονής Σύνδεσης</translation>
</message>
@@ -1114,8 +1114,12 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Αδυναμία ασφαλούς σύνδεσης. Θα θέλατε να συνδεθείτε χωρίς κρυπτογράφηση παρ&apos;όλα αυτά (δεν προτείνεται);</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1307,27 +1311,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Ο συγχρονισμός ματαιώθηκε από τον χρήστη.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Δεν ελήφθη E-Tag από τον διακομιστή, ελέγξτε τον διακομιστή μεσολάβησης/πύλη</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Ελήφθη διαφορετικό E-Tag για συνέχιση. Επανάληψη την επόμενη φορά.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Ο διακομιστής επέστρεψε εσφαλμένο πεδίο τιμών</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Το αρχείο %1 δεν είναι δυνατό να ληφθεί λόγω διένεξης με το όνομα ενός τοπικού αρχείου!</translation>
</message>
@@ -1335,12 +1339,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Το αρχείο %1 δεν είναι δυνατό να ληφθεί λόγω διένεξης με το όνομα ενός τοπικού αρχείου!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1376,12 +1385,12 @@ It is not advisable to use it.</source>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="68"/>
<source>Error removing &apos;%1&apos;: %2; </source>
- <translation type="unfinished"/>
+ <translation>Σφάλμα αφαίρεσης &apos;%1&apos;: %2;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="79"/>
<source>Could not remove directory &apos;%1&apos;; </source>
- <translation type="unfinished"/>
+ <translation>Αδυναμία αφαίρεσης καταλόγου &apos;%1&apos;;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="94"/>
@@ -1426,18 +1435,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τη διάρκεια του συγχρονισμού, θα συγχρονιστεί και πάλι όταν φτάσει πλήρως</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Ο συγχρονισμός ματαιώθηκε από τον χρήστη.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1445,23 +1454,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Το τοπικό αρχείο αφαιρέθηκε κατά το συγχρονισμό.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τον συγχρονισμό.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Ο διακομιστής δεν αναγνώρισε το τελευταίο τμήμα. (Δεν υπήρχε e-tag)</translation>
</message>
@@ -1539,17 +1548,26 @@ It is not advisable to use it.</source>
<translation>Η κατάσταση συγχρονισμού αντιγράφηκε στο πρόχειρο.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Προς το παρόν κανένα αρχείο δεν θα αγνοηθεί λόγω προηγούμενων σφαλμάτων.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n αρχείο αγνοήθηκε λόγω προηγούμενων σφαλμάτων.
-Προσπαθείστε να τα συγχρονίσετε ξανά.</numerusform><numerusform>%n αρχεία αγνοήθηκαν λόγω προηγούμενων σφαλμάτων.
-Προσπαθείστε να τα συγχρονίσετε ξανά.</numerusform></translation>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Προσπάθεια για συγχρονισμό αυτών ξανά.</translation>
</message>
</context>
<context>
@@ -1637,12 +1655,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Σφάλμα Σύνδεσης</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Πρέπει να εισέλθετε σαν χρήστης %1</translation>
</message>
@@ -2050,69 +2068,69 @@ It is not advisable to use it.</source>
<translation>Το αρχείο περιέχει άκυρους χαρακτήρες που δεν μπορούν να συγχρονιστούν σε όλα τα συστήματα.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Αδυναμία προετοιμασίας αρχείου συγχρονισμού.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Αδυναμία ανοίγματος του αρχείου συγχρονισμού</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Αγνοήθηκε εξαιτίας της μαύρης λίστας &quot;διάλεξε τι να συγχρονιστεί&quot;</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε υπο-καταλόγους σε αυτό τον κατάλογο</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε στο γονεϊκό κατάλογο</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Δεν επιτρέπεται επειδή δεν έχεται δικαιώματα να προσθέσετε αρχεία σε αυτόν τον κατάλογο</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Δεν επιτρέπεται να μεταφορτώσετε αυτό το αρχείο επειδή είναι μόνο για ανάγνωση στο διακομιστή, αποκατάσταση σε εξέλιξη</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Δεν επιτρέπεται η αφαίρεση, αποκατάσταση σε εξέλιξη</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Οι τοπικοί φάκελοι και ο φάκελος κοινής χρήσης αφαιρέθηκαν.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Η μετακίνηση δεν επιτρέπεται, το αντικείμενο αποκαταστάθηκε</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Η μετακίνηση δεν επιτρέπεται επειδή το %1 είναι μόνο για ανάγνωση</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>ο προορισμός</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>η προέλευση</translation>
</message>
diff --git a/translations/mirall_en.ts b/translations/mirall_en.ts
index 735f443a0..abde7ab52 100644
--- a/translations/mirall_en.ts
+++ b/translations/mirall_en.ts
@@ -387,29 +387,29 @@ Total time left %5</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation type="unfinished"></translation>
</message>
@@ -636,22 +636,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation type="unfinished"></translation>
</message>
@@ -1108,7 +1108,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -1301,27 +1305,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"></translation>
</message>
@@ -1329,12 +1333,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"></translation>
</message>
@@ -1420,18 +1429,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1439,23 +1448,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"></translation>
</message>
@@ -1533,19 +1542,33 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1632,12 +1655,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"></translation>
</message>
@@ -2043,69 +2066,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<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/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/mirall_es.ts b/translations/mirall_es.ts
index 382c6b290..8ea2cb097 100644
--- a/translations/mirall_es.ts
+++ b/translations/mirall_es.ts
@@ -386,12 +386,12 @@ Tiempo restante %5</translation>
<translation>Actividad en la Sincronización</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>No se pudo leer el archivo de exclusión del sistema</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Esto se puede deber a que la carpeta fue reconfigurada de forma silenciosa o a q
Está seguro de que desea realizar esta operación?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Eliminar todos los archivos?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Eliminar todos los archivos</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Conservar archivos</translation>
</message>
@@ -637,22 +637,22 @@ Está seguro de que desea realizar esta operación?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>No se recibió ninguna e-tag del servidor, revisar el proxy/gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Se recibió una e-tag distinta para reanudar. Se intentará nuevamente.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>El servidor devolvió un content-range erróneo</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Tiempo de espera de conexión agotado</translation>
</message>
@@ -1113,8 +1113,16 @@ No se recomienda usarlo.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>No se pudo hacer una conexión segura. ¿Desea conectarse de forma insegura (no recomendado)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>No se pudo conectar cifrado:
+
+%1
+
+Desea conectar a cambio sin encriptación (no recomendado)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ No se recomienda usarlo.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>La sincronización ha sido Interrumpida por el usuario</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>No se recibió ninguna e-tag del servidor, revisar el proxy/gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Se recibió una e-tag distinta para reanudar. Se intentará nuevamente.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>El servidor devolvió un content-range erróneo</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>¡El fichero %1 no puede ser descargado debido al nombre de la clase de un fichero local!</translation>
</message>
@@ -1334,12 +1342,17 @@ No se recomienda usarlo.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>¡El fichero %1 no puede ser descargado debido al nombre de la clase de un fichero local!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>No se pudo descargar el archivo completamente.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>¡ El fichero %1 no puede guardar debido a un conflicto con el nombre de otro fichero local !</translation>
</message>
@@ -1425,18 +1438,18 @@ No se recomienda usarlo.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Fichero local modificado mientras se sincronizaba, sincronice otra vez cuando termine de editar</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>La sincronización ha sido Interrumpida por el usuario</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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 archivo fue modificado localmente, pero es parte de una carpeta compartida en modo de solo lectura. Ha sido recuperado y tu modificación está en el archivo de conflicto.</translation>
</message>
@@ -1444,23 +1457,23 @@ No se recomienda usarlo.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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 archivo fue modificado localmente, pero es parte de una carpeta compartida en modo de solo lectura. Ha sido recuperado y tu modificación está en el archivo de conflicto.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>El archivo local fue eliminado durante la sincronización.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Un archivo local fue modificado durante la sincronización.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>El servidor no reconoció la última parte. (No había una e-tag presente.)</translation>
</message>
@@ -1538,17 +1551,30 @@ No se recomienda usarlo.</translation>
<translation>El informe de sincronización fue copiado al portapapeles.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Actualmente no hay ficheros ignorados por errores previos.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Actualmente no hay archivos ignorados debido a errores previos y a que no hay descargas en progreso.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n archivo ha sido ignorado por causa de errores previos.
- Intente volver a sincronizarlo.</numerusform><numerusform>%n archivos han sido ignorados por causa de errores previos.
- Intente volver a sincronizarlos.</numerusform></translation>
+</source>
+ <translation><numerusform>%n Archivos han sido ignorados debido a errores previos.
+</numerusform><numerusform>%n Archivos han sido ignorados debido a errores previos.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n archivos han sido parcialmente descargados.
+</numerusform><numerusform>%n archivos han sido parcialmente descargados.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Intentar sincronizar de nuevo</translation>
</message>
</context>
<context>
@@ -1636,12 +1662,12 @@ No se recomienda usarlo.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Error al iniciar sesión</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Debe iniciar sesión como el usuario %1</translation>
</message>
@@ -2049,69 +2075,69 @@ No se recomienda usarlo.</translation>
<translation>El fichero contiene caracteres inválidos que no pueden ser sincronizados con la plataforma.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>No se pudo inicializar un registro (journal) de sincronización.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>No es posible abrir el diario de sincronización</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorado por que se encuentra en la lista negra de &quot;elige que vas a sincronizar&quot;</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>No está permitido, porque no tiene permisos para añadir subcarpetas en este directorio.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>No está permitido porque no tiene permisos para añadir un directorio</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>No está permitido, porque no tiene permisos para crear archivos en este directorio</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>No está permitido subir este archivo porque es de solo lectura en el servidor, restaurando.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>No está permitido borrar, restaurando.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Se eliminaron los archivos locales y la carpeta compartida.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>No está permitido mover, elemento restaurado.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>No está permitido mover, porque %1 es solo lectura.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>destino</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>origen</translation>
</message>
@@ -2317,7 +2343,7 @@ No se recomienda usarlo.</translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="221"/>
<source>&amp;Start a clean sync (Erases the local folder!)</source>
- <translation>&amp;Iniciar una sincronización limpia(Borra la carpeta local!)</translation>
+ <translation>&amp;Iniciar una sincronización limpia (borra la carpeta local)</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="256"/>
diff --git a/translations/mirall_es_AR.ts b/translations/mirall_es_AR.ts
index 2c8329306..05e24e7fb 100644
--- a/translations/mirall_es_AR.ts
+++ b/translations/mirall_es_AR.ts
@@ -385,12 +385,12 @@ Total time left %5</source>
<translation>Actividad de Sync</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -399,17 +399,17 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
¿Estás seguro de que querés realizar esta operación?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>¿Borrar todos los archivos?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Borrar todos los archivos</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Conservar archivos</translation>
</message>
@@ -636,22 +636,22 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -1110,7 +1110,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"/>
</message>
<message>
@@ -1303,27 +1307,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Sincronizaciójn abortada por el usuario.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1331,12 +1335,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1422,18 +1431,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Los archivos locales han cambiado durante la sincronización, la primera vez ha funcionado completamente</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Sincronizaciójn abortada por el usuario.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1441,23 +1450,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1535,16 +1544,27 @@ It is not advisable to use it.</source>
<translation>El estado de sincronización ha sido copiado al portapapeles</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Actualmente ningún archivo es ignorado por errores previos.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1631,12 +1651,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2042,69 +2062,69 @@ It is not advisable to use it.</source>
<translation>El archivo contiene caracteres inválidos que no pueden ser sincronizados entre plataforma.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Imposible inicializar un diario de sincronización.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
diff --git a/translations/mirall_et.ts b/translations/mirall_et.ts
index a3a409524..c8ea6ea06 100644
--- a/translations/mirall_et.ts
+++ b/translations/mirall_et.ts
@@ -386,12 +386,12 @@ Aega kokku jäänud %5</translation>
<translation>Sünkroniseerimise tegevus</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Süsteemi väljajätmiste faili lugemine ebaõnnestus</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ See võib olla põhjustatud kataloogi ümberseadistusest või on toimunud kõiki
Oled kindel, et soovid seda operatsiooni teostada?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Kustutada kõik failid?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Kustutada kõik failid</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Säilita failid</translation>
</message>
@@ -637,22 +637,22 @@ Oled kindel, et soovid seda operatsiooni teostada?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ühtegi E-Silti ei saabunud serverist, kontrolli puhverserverit/lüüsi.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Saime jätkamiseks erineva E-Sildi. Proovin järgmine kord uuesti.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Server tagastas vale vahemiku</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Ühenduse aegumine</translation>
</message>
@@ -1113,8 +1113,12 @@ Selle kasutamine pole soovitatav.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Ei suutnud turvaliselt ühenduda. Soovid minna üle krüpteerimata ühendusele (pole soovitatav)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1310,27 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Sünkroniseering katkestati kasutaja poolt.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ühtegi E-Silti ei saabunud serverist, kontrolli puhverserverit/lüüsi.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Saime jätkamiseks erineva E-Sildi. Proovin järgmine kord uuesti.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Server tagastas vale vahemiku</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Faili %1 ei saa alla laadida kuna on konflikt kohaliku faili nimega.</translation>
</message>
@@ -1334,12 +1338,17 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Faili %1 ei saa alla laadida kuna on konflikt kohaliku faili nimega.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Faili %1 ei saa salvestada kuna on nime konflikt kohaliku failiga!</translation>
</message>
@@ -1425,18 +1434,18 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Kohalik fail muutus sünkroniseerimise ajal, sünkroniseerin kuni ülekanne on täielik</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Sünkroniseering katkestati kasutaja poolt.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Faili on lokaalselt muudetud, kuid see on osa kirjutamisõiguseta jagamisest. See on taastatud ning sinu muudatus on konfliktses failis.</translation>
</message>
@@ -1444,23 +1453,23 @@ Selle kasutamine pole soovitatav.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Faili on lokaalselt muudetud, kuid see on osa kirjutamisõiguseta jagamisest. See on taastatud ning sinu muudatus on konfliktses failis.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Kohalik fail on eemaldatud sünkroniseeringu käigus.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Kohalik fail muutus sünkroniseeringu käigus.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Server ei tunnistanud viimast tükki. (E-silt puudus).</translation>
</message>
@@ -1538,17 +1547,29 @@ Selle kasutamine pole soovitatav.</translation>
<translation>Sünkroniseeringu staatus on kopeeritud lõikepuhvrisse.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Hetkel ei ignoreerita ühtegi faili eelnenud vigade tõttu.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Hetkel ei ignoreerita ühtegi faili eelnenud vigade tõttu ja ühtegi allalaadimist ei toimu</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n faili ignoreeriti eelnenud vigade tõttu.
-Proovi uuesti sünkroniseerida.</numerusform><numerusform>%n faili ignoreeriti eelnenud vigade tõttu.
-Proovi uuesti sünkroniseerida.</numerusform></translation>
+</source>
+ <translation><numerusform>%n fail on ignoreeritud eelnenud vigade tõttu</numerusform><numerusform>%n faili on ignoreeritud eelnenud vigade tõttu
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n fail on osaliselt allalaaditud
+</numerusform><numerusform>%n fail on osaliselt allalaaditud
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Proovi neid uuesti sünkroniseerida.</translation>
</message>
</context>
<context>
@@ -1636,12 +1657,12 @@ Proovi uuesti sünkroniseerida.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Sisselogimise viga</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Pead sisse logima kui kasutaja %1</translation>
</message>
@@ -2049,69 +2070,69 @@ Proovi uuesti sünkroniseerida.</numerusform></translation>
<translation>Fail sisaldab sobimatuid sümboleid, mida ei saa sünkroniseerida erinevate platvormide vahel.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Ei suuda lähtestada sünkroniseeringu zurnaali.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Ei suuda avada sünkroniseeringu zurnaali</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>&quot;Vali, mida sünkroniseerida&quot; musta nimekirja tõttu vahele jäetud</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Pole lubatud, kuna sul puuduvad õigused lisada sellesse kataloogi lisada alam-kataloogi</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Pole lubatud, kuna sul puuduvad õigused lisada ülemkataloog</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Pole lubatud, kuna sul puuduvad õigused sellesse kataloogi faile lisada</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Pole lubatud üles laadida, kuna tegemist on ainult-loetava serveriga, taastan</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Eemaldamine pole lubatud, taastan</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Kohalikud failid ja jagatud kaustad eemaldatud.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Liigutamine pole lubatud, üksus taastatud</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Liigutamien pole võimalik kuna %1 on ainult lugemiseks</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>sihtkoht</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>allikas</translation>
</message>
diff --git a/translations/mirall_eu.ts b/translations/mirall_eu.ts
index 221647b11..065185216 100644
--- a/translations/mirall_eu.ts
+++ b/translations/mirall_eu.ts
@@ -386,12 +386,12 @@ Geratzen den denbora %5</translation>
<translation>Sinkronizazio Jarduerak</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Izan daiteke karpeta isilpean birkonfiguratu delako edo fitxategi guztiak eskuz
Ziur zaude eragiketa hau egin nahi duzula?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Ezabatu Fitxategi Guztiak?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Ezabatu fitxategi guztiak</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Mantendu fitxategiak</translation>
</message>
@@ -637,22 +637,22 @@ Ziur zaude eragiketa hau egin nahi duzula?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ez da E-Tagik jaso zerbitzaritik, egiaztatu Proxy/Gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Konexioa denboraz kanpo</translation>
</message>
@@ -1113,8 +1113,12 @@ Ez da gomendagarria erabltzea.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Ezin da modu seguruan konektatu. Nahi duzu enkriptatu gabe konektatu (ez da gomendagarria)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1310,27 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Sinkronizazioa erabiltzaileak bertan behera utzi du</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ez da E-Tagik jaso zerbitzaritik, egiaztatu Proxy/Gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1334,12 +1338,17 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1425,18 +1434,18 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Sinkronizazioa erabiltzaileak bertan behera utzi du</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1444,23 +1453,23 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Fitxategi lokala ezabatu da sinkronizazioan.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Fitxategi lokala aldatu da sinkronizazioan.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1538,16 +1547,27 @@ Ez da gomendagarria erabltzea.</translation>
<translation>Sinkronizazio egoera arbelera kopiatu da.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Oraintxe ez da fitxategirik baztertzen aurreko erroreak direla eta.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1634,12 +1654,12 @@ Ez da gomendagarria erabltzea.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Errorea sartzean</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2045,69 +2065,69 @@ Ez da gomendagarria erabltzea.</translation>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Ezin izan da sinkronizazio egunerokoa hasieratu.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Ezabatzeko baimenik gabe, berrezartzen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Mugitzea ez dago baimenduta, elementua berrezarri da</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Mugitzea ez dago baimenduta %1 irakurtzeko bakarrik delako</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>helburua</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>jatorria</translation>
</message>
diff --git a/translations/mirall_fa.ts b/translations/mirall_fa.ts
index e9708daa9..ff2f4697e 100644
--- a/translations/mirall_fa.ts
+++ b/translations/mirall_fa.ts
@@ -385,29 +385,29 @@ Total time left %5</source>
<translation>فعالیت همگام سازی</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>نگه داشتن فایل ها</translation>
</message>
@@ -634,22 +634,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>تایم اوت اتصال</translation>
</message>
@@ -1106,7 +1106,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"/>
</message>
<message>
@@ -1299,27 +1303,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1327,12 +1331,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1418,18 +1427,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1437,23 +1446,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1531,16 +1540,27 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1627,12 +1647,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2038,69 +2058,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
diff --git a/translations/mirall_fi.ts b/translations/mirall_fi.ts
index 121ae4c31..e3e356fc8 100644
--- a/translations/mirall_fi.ts
+++ b/translations/mirall_fi.ts
@@ -121,7 +121,7 @@
<message>
<location filename="../src/mirall/accountsettings.ui" line="130"/>
<source>&lt;b&gt;Note:&lt;/b&gt; Some folders, including network mounted or shared folders, might have different limits.</source>
- <translation>&lt;b&gt;Huomio:&lt;/b&gt; Joillakin kansioilla, mukaan lukien verkon yli liitetyt tai jaetut kansiot, voivat olla erilaisten rajoitusten piirissä.</translation>
+ <translation>&lt;b&gt;Huomio:&lt;/b&gt; Jotkin kansiot, mukaan lukien verkon yli liitetyt tai jaetut kansiot, voivat olla eri rajoitusten piirissä.</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="171"/>
@@ -216,7 +216,7 @@ Aikaa jäljellä yhteensä %5</translation>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="800"/>
<source>Connected to &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;.</source>
- <translation>Muodosta yhteys - &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;.</translation>
+ <translation>Muodostetty yhteys kohteeseen &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;.</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="803"/>
@@ -386,29 +386,29 @@ Aikaa jäljellä yhteensä %5</translation>
<translation>Synkronointiaktiviteetti</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Poistetaanko kaikki tiedostot?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Poista kaikki tiedostot</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Säilytä tiedostot</translation>
</message>
@@ -487,7 +487,7 @@ Are you sure you want to perform this operation?</source>
<message>
<location filename="../src/mirall/folderstatusmodel.cpp" line="205"/>
<source>Syncing all files in your account with</source>
- <translation type="unfinished"/>
+ <translation>Synkronoidaan kaikki tilisi tiedostot polkuun</translation>
</message>
<message>
<location filename="../src/mirall/folderstatusmodel.cpp" line="208"/>
@@ -635,22 +635,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Yhteys aikakatkaistiin</translation>
</message>
@@ -1062,7 +1062,7 @@ saattaa kysyä lisäoikeuksia toimenpiteen aikana.</translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.cpp" line="266"/>
<source>Update advanced setup</source>
- <translation type="unfinished"/>
+ <translation>Lisäasetuksien päivitys</translation>
</message>
</context>
<context>
@@ -1109,8 +1109,12 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Salattua yhteyttä ei voitu muodostaa. Haluatko sen muodostaa salaamattoman yhteyden? (ei suositeltu)</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1302,27 +1306,27 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synkronointi peruttiin käyttäjän toimesta.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1330,12 +1334,17 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1345,7 +1354,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/mirall/owncloudpropagator.cpp" line="51"/>
<source>; Restoration Failed: </source>
- <translation type="unfinished"/>
+ <translation>; Palauttaminen epäonnistui: </translation>
</message>
<message>
<location filename="../src/mirall/owncloudpropagator.cpp" line="185"/>
@@ -1371,7 +1380,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="68"/>
<source>Error removing &apos;%1&apos;: %2; </source>
- <translation type="unfinished"/>
+ <translation>Virhe poistaessa &apos;%1&apos;: %2; </translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="79"/>
@@ -1421,18 +1430,18 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synkronointi peruttiin käyttäjän toimesta.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1440,23 +1449,23 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Paikallinen tiedosto poistettiin synkronoinnin aikana.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Paikallinen tiedosto muuttui synkronoinnin aikana.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1521,7 +1530,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/mirall/protocolwidget.cpp" line="73"/>
<source>Copy the activity list to the clipboard.</source>
- <translation type="unfinished"/>
+ <translation>Kopioi toimilista leikepöydälle.</translation>
</message>
<message>
<location filename="../src/mirall/protocolwidget.cpp" line="118"/>
@@ -1534,16 +1543,27 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation>Synkronointitila on kopioitu leikepöydälle.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1555,7 +1575,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<message>
<location filename="../src/mirall/selectivesyncdialog.cpp" line="274"/>
<source>Unchecked folders will be &lt;b&gt;removed&lt;/b&gt; from your local file system and will not be synchronized to this computer anymore</source>
- <translation type="unfinished"/>
+ <translation>Ilman valintaa olevat kansiot &lt;b&gt;poistetaan&lt;/b&gt; paikallisesta tiedostojärjestelmästä, eikä niitä synkronoida enää jatkossa tämän tietokoneen kanssa</translation>
</message>
</context>
<context>
@@ -1630,12 +1650,12 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Kirjautumisvirhe</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Kirjaudu käyttäjänä %1</translation>
</message>
@@ -2043,69 +2063,69 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
<translation>Tiedosto sisältää virheellisiä merkkejä, joiden vuoksi sitä voi synkronoida eri käyttöjärjestelmien välillä.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Ei sallittu, koska sinulla ei ole oikeutta lisätä tiedostoja kyseiseen kansioon</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Poistaminen ei ole sallittua, palautetaan</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Paikalliset tiedostot ja jakokansio poistettu.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Siirtäminen ei ole sallittua, kohde palautettu</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Siirto ei ole sallittu, koska %1 on &quot;vain luku&quot;-tilassa</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>kohde</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>lähde</translation>
</message>
diff --git a/translations/mirall_fr.ts b/translations/mirall_fr.ts
index eb50088a0..2d33b2cc0 100644
--- a/translations/mirall_fr.ts
+++ b/translations/mirall_fr.ts
@@ -14,7 +14,7 @@
<message>
<location filename="../src/mirall/folderwizardsourcepage.ui" line="44"/>
<source>&amp;Choose...</source>
- <translation>&amp;Choisir</translation>
+ <translation>&amp;Choisir...</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardsourcepage.ui" line="55"/>
@@ -37,7 +37,7 @@
<message>
<location filename="../src/mirall/folderwizardtargetpage.ui" line="140"/>
<source>Add Folder</source>
- <translation>Ajouter le dossier</translation>
+ <translation>Ajouter un dossier</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardtargetpage.ui" line="160"/>
@@ -311,7 +311,7 @@ Temps restant total %5</translation>
<message>
<location filename="../src/mirall/folder.cpp" line="368"/>
<source>%1: %2</source>
- <translation>%1: %2</translation>
+ <translation>%1 : %2</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="459"/>
@@ -386,12 +386,12 @@ Temps restant total %5</translation>
<translation>Activité de synchronisation</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Impossible de lire le fichier d&apos;exclusion du système</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Cela est peut-être du à une reconfiguration silencieuse du dossier, ou parce q
Voulez-vous réellement effectuer cette opération ?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Supprimer tous les fichiers ?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Supprimer tous les fichiers</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Garder les fichiers</translation>
</message>
@@ -455,7 +455,7 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<message>
<location filename="../src/mirall/folderman.cpp" line="887"/>
<source>Last Sync was successful, but with warnings on individual files.</source>
- <translation>La dernière synchronisation s&apos;est achevée avec succès mais avec des messages d&apos;avertissement sur des fichiers individuels.</translation>
+ <translation>La dernière synchronisation s&apos;est achevée avec succès mais avec des messages d&apos;avertissement à propos de certains fichiers.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="890"/>
@@ -494,7 +494,7 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<message>
<location filename="../src/mirall/folderstatusmodel.cpp" line="208"/>
<source>Remote path: %1</source>
- <translation>Chemin distant: %1</translation>
+ <translation>Chemin distant : %1</translation>
</message>
</context>
<context>
@@ -503,7 +503,7 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<location filename="../src/mirall/folderwizard.cpp" line="494"/>
<location filename="../src/mirall/folderwizard.cpp" line="496"/>
<source>Add Folder</source>
- <translation>Ajouter le dossier</translation>
+ <translation>Ajouter un dossier</translation>
</message>
</context>
<context>
@@ -614,7 +614,7 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<message>
<location filename="../src/mirall/folderwizard.cpp" line="398"/>
<source>You are already syncing all your files. Syncing another folder is &lt;b&gt;not&lt;/b&gt; supported. If you want to sync multiple folders, please remove the currently configured root folder sync.</source>
- <translation>Vous êtes déjà en cours de synchronisation de tous vos fichiers. Synchroniser un autre dossier n&apos;est &lt;b&gt;pas&lt;/b&gt; possible actuellement. Si vous voulez synchroniser de multiples dossiers, veuillez supprimer la synchronisation en cours du dossier racine.</translation>
+ <translation>Vous sychronisez déjà tous vos fichiers. Synchroniser un autre dossier n&apos;est &lt;b&gt;pas&lt;/b&gt; possible actuellement. Si vous voulez synchroniser plusieurs dossiers, veuillez supprimer la synchronisation du dossier racine qui est configurée actuellement.</translation>
</message>
</context>
<context>
@@ -637,22 +637,22 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Nous avons reçu un E-Tag différent pour reprendre le téléchargement. Nouvel essai la prochaine fois.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Le serveur a retourné une gamme de contenu erronée</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Temps de connexion expiré</translation>
</message>
@@ -711,7 +711,7 @@ Voulez-vous réellement effectuer cette opération ?</translation>
<message>
<location filename="../src/creds/httpcredentials.cpp" line="375"/>
<source>Please enter %1 password for user &apos;%2&apos;:</source>
- <translation>Veuillez entrer %1 mot de passe pour l&apos;utilisateur &apos;%2&apos;:</translation>
+ <translation>Veuillez entrer le mot de passe %1 pour l&apos;utilisateur &apos;%2&apos; :</translation>
</message>
</context>
<context>
@@ -1031,7 +1031,7 @@ peut demander des privilèges additionnels durant le processus.</translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.cpp" line="49"/>
<source>Connect to %1</source>
- <translation>Connecter à %1</translation>
+ <translation>Connexion à %1</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.cpp" line="50"/>
@@ -1074,7 +1074,7 @@ peut demander des privilèges additionnels durant le processus.</translation>
<message>
<location filename="../src/wizard/owncloudhttpcredspage.cpp" line="42"/>
<source>Connect to %1</source>
- <translation>Connecter à %1</translation>
+ <translation>Connexion à %1</translation>
</message>
<message>
<location filename="../src/wizard/owncloudhttpcredspage.cpp" line="43"/>
@@ -1084,7 +1084,7 @@ peut demander des privilèges additionnels durant le processus.</translation>
<message>
<location filename="../src/wizard/owncloudhttpcredspage.cpp" line="159"/>
<source>Update user credentials</source>
- <translation>Mettre à jour les identifiants de connexion de l&apos;utilisateur</translation>
+ <translation>Modification des identifiants de connexion</translation>
</message>
</context>
<context>
@@ -1092,7 +1092,7 @@ peut demander des privilèges additionnels durant le processus.</translation>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="45"/>
<source>Connect to %1</source>
- <translation>Connecter à %1</translation>
+ <translation>Connexion à %1</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="46"/>
@@ -1113,8 +1113,16 @@ Il est déconseillé de l&apos;utiliser.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Impossible de se connecter en toute sécurité. Voulez-vous vous connecter sans chiffrement à la place (non recommandé) ?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Impossible de se connecter en toute sécurité.
+
+%1
+
+Voulez-vous vous connecter sans chiffrement à la place (non recommandé) ?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1124,7 +1132,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="263"/>
<source>Update %1 server</source>
- <translation>Mettre à jour le serveur %1</translation>
+ <translation>Modification de l&apos;adresse du serveur %1</translation>
</message>
</context>
<context>
@@ -1148,7 +1156,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<message>
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="162"/>
<source>&lt;font color=&quot;green&quot;&gt;Successfully connected to %1: %2 version %3 (%4)&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;</source>
- <translation>&lt;font color=&quot;green&quot;&gt;Connecté avec succès à %1: %2 version %3 (%4)&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ <translation>&lt;font color=&quot;green&quot;&gt;Connecté avec succès à %1 : %2 version %3 (%4)&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="231"/>
@@ -1184,7 +1192,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="186"/>
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="194"/>
<source>Failed to connect to %1 at %2:&lt;br/&gt;%3</source>
- <translation>Échec de la connexion à %1 pour %2:&lt;br/&gt;%3</translation>
+ <translation>Échec de la connexion à %1 pour %2 :&lt;br/&gt;%3</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="280"/>
@@ -1287,7 +1295,7 @@ Il est déconseillé de l&apos;utiliser.</translation>
<message>
<location filename="../src/wizard/owncloudwizardresultpage.cpp" line="77"/>
<source>Your entire account is synced to the local folder &lt;i&gt;%1&lt;/i&gt;</source>
- <translation>Votre compte est synchronisé intégralement avec le répertoire local &lt;i&gt;%1&lt;/i&gt;</translation>
+ <translation>Votre compte est intégralement synchronisé avec le répertoire local &lt;i&gt;%1&lt;/i&gt;</translation>
</message>
<message>
<location filename="../src/wizard/owncloudwizardresultpage.cpp" line="80"/>
@@ -1306,40 +1314,45 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>La synchronisation a été interrompue par l&apos;utilisateur.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Aucun E-Tag reçu du serveur, vérifiez le proxy / la passerelle</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Nous avons reçu un E-Tag différent pour reprendre le téléchargement. Nouvel essai la prochaine fois.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Le serveur a retourné une gamme de contenu erronnée</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
- <translation>File %1 ne peut pas être téléchargé en raison d&apos;un conflit sur le nom du fichier local. </translation>
+ <translation>Le fichier %1 ne peut pas être téléchargé en raison d&apos;un conflit sur le nom du fichier local. </translation>
</message>
</context>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
- <translation>File %1 ne peut pas être téléchargé en raison d&apos;un conflit sur le nom du fichier local. </translation>
+ <translation>Le fichier %1 ne peut pas être téléchargé en raison d&apos;un conflit sur le nom du fichier local. </translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Le fichier n&apos;a pas pu être téléchargé intégralement.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Le fichier %1 n&apos;a pas pu être sauvegardé en raison d&apos;un conflit sur le nom du fichier local !</translation>
</message>
@@ -1425,18 +1438,18 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Fichier local modifié pendant la synchronisation, la synchronisation redémarrera lorsque ce sera terminé</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>La synchronisation a été interrompue par l&apos;utilisateur.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Le fichier a été modifié localement mais appartient à un partage en lecture seule. Il a été restauré et vos modifications sont présentes dans le fichiers de confit.</translation>
</message>
@@ -1444,23 +1457,23 @@ Il est déconseillé de l&apos;utiliser.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Le fichier a été modifié localement mais appartient à un partage en lecture seule. Il a été restauré et vos modifications sont présentes dans le fichiers de confit.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Fichier local supprimé pendant la synchronisation.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Fichier local modifié pendant la synchronisation.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Le serveur n&apos;a pas acquitté le dernier morceau (aucun e-tag n&apos;était présent).</translation>
</message>
@@ -1538,17 +1551,29 @@ Il est déconseillé de l&apos;utiliser.</translation>
<translation>L&apos;état de synchronisation a été copié dans le presse-papier.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Actuellement aucun fichier n&apos;a été ignoré en raison d&apos;erreurs précédentes.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Actuellement aucun fichier n&apos;a été ignoré en raison d&apos;erreurs précédentes, et aucun téléchargement n&apos;est en cours.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n fichier a été ignoré à cause de précédentes erreurs.
-Essayez de le synchroniser à nouveau.</numerusform><numerusform>%n fichiers ont été ignorés à cause de précédentes erreurs.
-Essayez de les synchroniser à nouveau.</numerusform></translation>
+</source>
+ <translation><numerusform>%n fichiers ont été ignorés à cause d&apos;erreurs précédentes.
+</numerusform><numerusform>%n fichiers ont été ignorés à cause d&apos;erreurs précédentes.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n fichiers sont partiellement téléchargés.</numerusform><numerusform>%n fichiers sont partiellement téléchargés.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Essayez de les synchroniser à nouveau.</translation>
</message>
</context>
<context>
@@ -1636,12 +1661,12 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Erreur de connexion</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Vous devez vous connecter en tant qu&apos;utilisateur %1</translation>
</message>
@@ -2049,69 +2074,69 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<translation>Le fichier contient des caractères non valides qui ne peuvent être synchronisés entre plate-formes.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Impossible d&apos;initialiser un journal de synchronisation.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Impossible d&apos;ouvrir le journal de synchronisation</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignoré à cause de la liste noire du contenu à synchroniser.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Non autorisé car vous n&apos;avez pas la permission d&apos;ajouter des sous-dossiers dans ce dossier</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Non autorisé car vous n&apos;avez pas la permission d&apos;ajouter des dossiers parents</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Non autorisé car vous n&apos;avez pas la permission d&apos;ajouter des fichiers dans ce dossier</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Non autorisé à envoyer ce fichier car il est en lecture seule sur le serveur. Restauration</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Non autorisé à supprimer. Restauration</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Fichiers locaux et répertoire de partage supprimés.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Déplacement non autorisé, élément restauré</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Déplacement non autorisé car %1 est en mode lecture seule</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>la destination</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>la source</translation>
</message>
@@ -2121,7 +2146,7 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<message>
<location filename="../src/mirall/systray.cpp" line="49"/>
<source>%1: %2</source>
- <translation>%1: %2</translation>
+ <translation>%1 : %2</translation>
</message>
</context>
<context>
@@ -2192,7 +2217,7 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="414"/>
<source>Calculating quota...</source>
- <translation>Calcul du quota en cours...</translation>
+ <translation>Calcul du quota...</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="416"/>
@@ -2237,7 +2262,7 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="446"/>
<source>%1% of %2 in use</source>
- <translation>%1% sur %2 utilisés</translation>
+ <translation>%1% de %2 utilisés</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="458"/>
@@ -2302,7 +2327,7 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="103"/>
<source>Sync everything from server</source>
- <translation>Synchroniser tout le contenu du serveur</translation>
+ <translation>Synchroniser tout le contenu de votre compte</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="122"/>
@@ -2327,7 +2352,7 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="208"/>
<source>&amp;Keep local data</source>
- <translation>&amp;Garder des données locales</translation>
+ <translation>&amp;Garder les données locales</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="218"/>
@@ -2576,7 +2601,7 @@ Essayez de les synchroniser à nouveau.</numerusform></translation>
<message>
<location filename="../src/mirall/progressdispatcher.cpp" line="62"/>
<source>downloading</source>
- <translation>téléchargement</translation>
+ <translation>téléchargement de</translation>
</message>
<message>
<location filename="../src/mirall/progressdispatcher.cpp" line="64"/>
diff --git a/translations/mirall_gl.ts b/translations/mirall_gl.ts
index 3a7e3078b..59d8b1a96 100644
--- a/translations/mirall_gl.ts
+++ b/translations/mirall_gl.ts
@@ -106,7 +106,7 @@
<message>
<location filename="../src/mirall/accountsettings.ui" line="76"/>
<source>Choose What to Sync</source>
- <translation type="unfinished"/>
+ <translation>Escolla qué sincronizar</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="101"/>
@@ -163,7 +163,7 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="675"/>
<source>file %1 of %2</source>
- <translation type="unfinished"/>
+ <translation>ficheiro %1 de %2</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
@@ -198,7 +198,7 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="608"/>
<source>Discovering &apos;%1&apos;</source>
- <translation type="unfinished"/>
+ <translation>Atopando &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="648"/>
@@ -373,12 +373,12 @@ Tempo total restante %5</translation>
<location filename="../src/mirall/folder.cpp" line="494"/>
<source>%1 and %2 other files could not be synced due to errors. See the log for details.</source>
<comment>%1 names a file.</comment>
- <translation type="unfinished"/>
+ <translation>%1 e %2 non se puideron sincronizar debido a erros. Vexa os detalles no rexistro.</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="496"/>
<source>%1 could not be synced due to an error. See the log for details.</source>
- <translation type="unfinished"/>
+ <translation>%1 non se puido sincronizar debe a un erro. Vexa os detalles no rexistro.</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="504"/>
@@ -386,12 +386,12 @@ Tempo total restante %5</translation>
<translation>Actividade de sincronización</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
- <translation type="unfinished"/>
+ <translation>Non se puido ler o ficheiro de exclusión do sistema</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Isto podería ser debido a que o cartafol foi reconfigurado en silencio, ou a qu
Confirma que quere realizar esta operación?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Retirar todos os ficheiros?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Retirar todos os ficheiros</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Manter os ficheiros</translation>
</message>
@@ -622,7 +622,7 @@ Confirma que quere realizar esta operación?</translation>
<message>
<location filename="../src/mirall/folderwizard.cpp" line="436"/>
<source>Choose What to Sync: You can optionally deselect subfolders you do not wish to synchronize.</source>
- <translation type="unfinished"/>
+ <translation>Escolla qué sincronizar: Opcionalmente pode deselecionar subcartafoles que non desexe sincronizar.</translation>
</message>
</context>
<context>
@@ -637,22 +637,22 @@ Confirma que quere realizar esta operación?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Non se recibiu a «E-Tag» do servidor, comprobe o proxy e/ou a pasarela</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recibiuse unha «E-Tag» diferente para continuar. Tentándoo outra vez.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>O servidor devolveu un intervalo de contidos estragado</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Esgotouse o tempo de conexión</translation>
</message>
@@ -1018,7 +1018,7 @@ actualización pode pedir privilexios adicionais durante o proceso.</translation
<message>
<location filename="../src/updater/ocupdater.cpp" line="89"/>
<source>Update status is unknown: Did not check for new updates.</source>
- <translation type="unfinished"/>
+ <translation>O estado da actualización é descoñecido: non se comprobaron as actualizacións.</translation>
</message>
<message>
<location filename="../src/updater/ocupdater.cpp" line="93"/>
@@ -1113,8 +1113,12 @@ Recomendámoslle que non o use.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Non é posíbel conectar de forma segura. Quere, aínda así, conectar sen cifrar (non recomendado)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1282,7 +1286,7 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/wizard/owncloudwizardresultpage.cpp" line="50"/>
<source>Open %1 in Browser</source>
- <translation type="unfinished"/>
+ <translation>Abrir %1 no navegador</translation>
</message>
<message>
<location filename="../src/wizard/owncloudwizardresultpage.cpp" line="77"/>
@@ -1306,27 +1310,27 @@ Recomendámoslle que non o use.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>A sincronización foi interrompida polo usuario.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Non se recibiu a «E-Tag» do servidor, comprobe o proxy e/ou a pasarela</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recibiuse unha «E-Tag» diferente para continuar. Tentándoo outra vez.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>O servidor devolveu un intervalo de contidos estragado</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Non é posíbel descargar o ficheiro %1 por mor dunha colisión co nome dun ficheiro local!</translation>
</message>
@@ -1334,15 +1338,20 @@ Recomendámoslle que non o use.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Non é posíbel descargar o ficheiro %1 por mor dunha colisión co nome dun ficheiro local!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
- <source>File %1 cannot be saved because of a local file name clash!</source>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
+ <source>File %1 cannot be saved because of a local file name clash!</source>
+ <translation>O ficheiro %1 non se gardou debido a unha colisión co nome dun ficheiro local!</translation>
+ </message>
</context>
<context>
<name>Mirall::PropagateItemJob</name>
@@ -1375,12 +1384,12 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="68"/>
<source>Error removing &apos;%1&apos;: %2; </source>
- <translation type="unfinished"/>
+ <translation>Erro eliminando &apos;%1&apos;: %2;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="79"/>
<source>Could not remove directory &apos;%1&apos;; </source>
- <translation type="unfinished"/>
+ <translation>Non se puido eliminar o directorio &apos;%1&apos;;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="94"/>
@@ -1425,18 +1434,18 @@ Recomendámoslle que non o use.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>O ficheiro local cambiou durante a sincronización, sincronizando unha vez quedou completado</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>A sincronización foi interrompida polo usuario.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>O ficheiro foi editado localmente mais é parte dunha compartición de só lectura. O ficheiro foi restaurado e a súa edición atopase no ficheiro de conflitos.</translation>
</message>
@@ -1444,23 +1453,23 @@ Recomendámoslle que non o use.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>O ficheiro foi editado localmente mais é parte dunha compartición de só lectura. O ficheiro foi restaurado e a súa edición atopase no ficheiro de conflitos.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>O ficheiro local retirarase durante a sincronización.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>O ficheiro local cambiou durante a sincronización.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>O servidor non recoñeceu o último fragmento. (Non hai e-tag presente)</translation>
</message>
@@ -1538,28 +1547,39 @@ Recomendámoslle que non o use.</translation>
<translation>O estado de sincronización foi copiado no portapapeis.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Actualmente non hai ficheiros ignorados por mor de erros anteriores.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
<message>
<location filename="../src/mirall/selectivesyncdialog.cpp" line="271"/>
<source>Choose What to Sync</source>
- <translation type="unfinished"/>
+ <translation>Escolla qué sincronizar</translation>
</message>
<message>
<location filename="../src/mirall/selectivesyncdialog.cpp" line="274"/>
<source>Unchecked folders will be &lt;b&gt;removed&lt;/b&gt; from your local file system and will not be synchronized to this computer anymore</source>
- <translation type="unfinished"/>
+ <translation>Os cartafoles non selecionados serán &lt;b&gt;eliminados&lt;/b&gt; do seu sistema de ficheiros local e non se voltarán a sincronizar con esta computadora</translation>
</message>
</context>
<context>
@@ -1634,12 +1654,12 @@ Recomendámoslle que non o use.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Erro de acceso</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Ten que rexistrarse como usuario %1</translation>
</message>
@@ -2014,7 +2034,7 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/mirall/syncengine.cpp" line="183"/>
<source>The mounted directory is temporary not available on the server</source>
- <translation type="unfinished"/>
+ <translation>O directorio montado non está temporalmente dispoñible no servidor</translation>
</message>
<message>
<location filename="../src/mirall/syncengine.cpp" line="186"/>
@@ -2047,69 +2067,69 @@ Recomendámoslle que non o use.</translation>
<translation>O ficheiro conten caracteres incorrectos que non poden sincronizarse entre distintas plataformas.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Non é posíbel iniciar un rexistro de sincronización.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Non foi posíbel abrir o rexistro de sincronización</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
- <translation type="unfinished"/>
+ <translation>Ignorado debido a lista negra de &quot;escolla qué sincronizar&quot;</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Non está permitido xa que non ten permiso para engadir subdirectorios nese directorio</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Non está permitido xa que non ten permiso para engadir un directorio pai</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Non está permitido xa que non ten permiso para engadir ficheiros nese directorio</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Non está permitido o envío xa que o ficheiro é só de lectura no servidor, restaurando</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Non está permitido retiralo, restaurando</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
- <translation type="unfinished"/>
+ <translation>Ficheiros locáis e cartafol compartido eliminados.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Nos está permitido movelo, elemento restaurado</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Bon está permitido movelo xa que %1 é só de lectura</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>o destino</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>a orixe</translation>
</message>
@@ -2155,7 +2175,7 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="280"/>
<source>There are no sync folders configured.</source>
- <translation type="unfinished"/>
+ <translation>Non existen cartafoles de sincronización configurados.</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="306"/>
@@ -2245,7 +2265,7 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="470"/>
<source>Discovering &apos;%1&apos;</source>
- <translation type="unfinished"/>
+ <translation>Atopando &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="474"/>
@@ -2273,7 +2293,7 @@ Recomendámoslle que non o use.</translation>
<message utf8="true">
<location filename="../src/mirall/owncloudtheme.cpp" line="48"/>
<source>&lt;p&gt;Version %2. For more information visit &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.&lt;br/&gt;Based on Mirall by Duncan Mac-Vicar P.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Licensed under the GNU General Public License (GPL) Version 2.0&lt;br/&gt;ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.&lt;/p&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;p&gt;Versión %2. Para máis información visite &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;Por Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz e outros.&lt;br/&gt;Baseado en Mirall de Duncan Mac-Vicar P.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Licenciado baixo a GNU General Public License (GPL) Version 2.0&lt;br/&gt;ownCloud e o Logo ownCloud son marcas rexistradas de ownCloud, Inc. nos Estados Unidos, outros países ou en ambos.&lt;/p&gt;</translation>
</message>
</context>
<context>
@@ -2300,12 +2320,12 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="103"/>
<source>Sync everything from server</source>
- <translation type="unfinished"/>
+ <translation>Sincronice todo o contido do servidor</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="122"/>
<source>Choose what to sync</source>
- <translation type="unfinished"/>
+ <translation>Escolla qué sincronizar</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="178"/>
@@ -2315,7 +2335,7 @@ Recomendámoslle que non o use.</translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="221"/>
<source>&amp;Start a clean sync (Erases the local folder!)</source>
- <translation type="unfinished"/>
+ <translation>&amp;Iniciar unha nova sincronización (Elimina o cartafol local!)</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="256"/>
diff --git a/translations/mirall_hu.ts b/translations/mirall_hu.ts
index c2c66d6d0..2c579e9b0 100644
--- a/translations/mirall_hu.ts
+++ b/translations/mirall_hu.ts
@@ -385,29 +385,29 @@ Total time left %5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>El legyen távolítva az összes fájl?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Összes fájl eltávolítása</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Fájlok megtartása</translation>
</message>
@@ -634,22 +634,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -1106,7 +1106,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"/>
</message>
<message>
@@ -1299,27 +1303,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1327,12 +1331,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1418,18 +1427,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1437,23 +1446,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1531,16 +1540,27 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1627,12 +1647,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2038,69 +2058,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
diff --git a/translations/mirall_it.ts b/translations/mirall_it.ts
index 425027791..a0296167f 100644
--- a/translations/mirall_it.ts
+++ b/translations/mirall_it.ts
@@ -386,12 +386,12 @@ Totale tempo rimanente %5</translation>
<translation>Sincronizza attività</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Impossibile leggere il file di esclusione di sistema</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Ciò potrebbe accadere in caso di riconfigurazione della cartella o di rimozione
Sei sicuro di voler eseguire questa operazione?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Vuoi rimuovere tutti i file?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Rimuovi tutti i file</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Mantieni i file</translation>
</message>
@@ -637,22 +637,22 @@ Sei sicuro di voler eseguire questa operazione?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nessun e-tag ricevuto dal server, controlla il proxy/gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Abbiamo ricevuto un e-tag diverso per il recupero. Riprova più tardi.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Il server ha restituito un content-range errato</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Connessione scaduta</translation>
</message>
@@ -1112,8 +1112,16 @@ Non è consigliabile utilizzarlo.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Impossibile connettersi in modo sicuro. Vuoi provare a connetterti senza cifratura (non consigliato)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Impossibile connettersi in modo sicuro:
+
+%1
+
+Vuoi invece connetterti senza cifratura (non consigliato)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1305,27 +1313,27 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Sincronizzazione interrotta dall&apos;utente.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nessun e-tag ricevuto dal server, controlla il proxy/gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Abbiamo ricevuto un e-tag diverso per il recupero. Riprova più tardi.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Il server ha restituito un content-range errato</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Il file %1 non può essere scaricato a causa di un conflitto con un file locale.</translation>
</message>
@@ -1333,12 +1341,17 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Il file %1 non può essere scaricato a causa di un conflitto con un file locale.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Il file non può essere scaricato completamente.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Il file %1 non può essere salvato a causa di un conflitto con un file locale.</translation>
</message>
@@ -1424,18 +1437,18 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Un file locale è cambiato durante la sincronizzazione, nuova sincronizzazione alla ricezione.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Sincronizzazione interrotta dall&apos;utente.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Il file è stato modificato localmente, ma è parte di una condivisione in sola lettura. È stato ripristinato e la tua modifica è nel file di conflitto.</translation>
</message>
@@ -1443,23 +1456,23 @@ Non è consigliabile utilizzarlo.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Il file è stato modificato localmente, ma è parte di una condivisione in sola lettura. È stato ripristinato e la tua modifica è nel file di conflitto.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Il file locale è stato rimosso durante la sincronizzazione.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Un file locale è cambiato durante la sincronizzazione.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Il server non ha riconosciuto l&apos;ultimo pezzo. (Non era presente alcun e-tag)</translation>
</message>
@@ -1537,17 +1550,30 @@ Non è consigliabile utilizzarlo.</translation>
<translation>Lo stato di sincronizzazione è stato copiato negli appunti.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Attualmente nessun file è ignorato a causa di errori precedenti.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Attualmente nessun file è ignorato a causa di errori precedenti e non ci sono scaricamenti in corso.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
<translation><numerusform>%n file sono ignorati a causa di errori precedenti.
-Prova a sincronizzare nuovamente.</numerusform><numerusform>%n file sono ignorati a causa di errori precedenti.
-Prova a sincronizzare nuovamente.</numerusform></translation>
+</numerusform><numerusform>%n file sono ignorati a causa di errori precedenti.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n file sono stati scaricati parzialmente.
+ </numerusform><numerusform>%n file sono stati scaricati parzialmente.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Prova a sincronizzarli nuovamente.</translation>
</message>
</context>
<context>
@@ -1635,12 +1661,12 @@ Prova a sincronizzare nuovamente.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Errore di accesso</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Devi accedere con l&apos;utente %1</translation>
</message>
@@ -2048,69 +2074,69 @@ Prova a sincronizzare nuovamente.</numerusform></translation>
<translation>Il file contiene caratteri non validi che non possono essere sincronizzati su diverse piattaforme.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Impossibile inizializzare il registro di sincronizzazione.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Impossibile aprire il registro di sincronizzazione</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorato in base alla lista nera per la scelta di cosa sincronizzare</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Non consentito poiché non disponi dei permessi per aggiungere sottocartelle in quella cartella</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Non consentito poiché non disponi dei permessi per aggiungere la cartella superiore</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Non consentito poiché non disponi dei permessi per aggiungere file in quella cartella</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Il caricamento di questo file non è consentito poiché è in sola lettura sul server, ripristino</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Rimozione non consentita, ripristino</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>I file locali e la cartella condivisa sono stati rimossi.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Spostamento non consentito, elemento ripristinato</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Spostamento non consentito poiché %1 è in sola lettura</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>la destinazione</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>l&apos;origine</translation>
</message>
diff --git a/translations/mirall_ja.ts b/translations/mirall_ja.ts
index b36ac2a10..e5be379c4 100644
--- a/translations/mirall_ja.ts
+++ b/translations/mirall_ja.ts
@@ -386,12 +386,12 @@ Total time left %5</source>
<translation>同期アクティビティ</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>システム上の除外ファイルを読み込めません</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Are you sure you want to perform this operation?</source>
本当にこの操作を実行しますか?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>すべてのファイルを削除しますか?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>すべてのファイルを削除</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>ファイルを残す</translation>
</message>
@@ -637,22 +637,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>サーバーからE-Tagを受信できません。プロキシ/ゲートウェイを確認してください。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>同期再開時に違う E-Tagを受信しました。次回リトライします。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>サーバーが間違ったcontent-rangeを返しました</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>接続タイムアウト</translation>
</message>
@@ -1111,8 +1111,16 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>安全に接続できませんでした。暗号化せずに接続しますか?(非推奨)</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>安全な接続ができませんでした:
+
+%1
+
+非暗号化接続しますか?(推奨されません)</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1304,27 +1312,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>同期はユーザーによって中止されました。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>サーバーからE-Tagを受信できません。プロキシ/ゲートウェイを確認してください。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>同期再開時に違う E-Tagを受信しました。次回リトライします。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>サーバーが間違ったcontent-rangeを返しました</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>ファイル %1 はローカルファイル名が衝突しているためダウンロードできません!</translation>
</message>
@@ -1332,12 +1340,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>ファイル %1 はローカルファイル名が衝突しているためダウンロードできません!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>%1 はローカルファイル名が衝突しているため保存できません!</translation>
</message>
@@ -1423,18 +1436,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>同期中にローカルファイルが変更されました。完了してからもう一度同期してください。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>同期はユーザーによって中止されました。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1442,23 +1455,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>ローカルファイルを同期時に削除します。</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>ローカルのファイルが同期中に変更されました。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>サーバーは最終チャンクを認識しません。(e-tag が存在しません)</translation>
</message>
@@ -1536,16 +1549,28 @@ It is not advisable to use it.</source>
<translation>同期状況をクリップボードにコピーしました。</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>処理前にエラーが発生したため、ファイルは何も除外されていません。</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>以前のエラーのため無視したファイルはありません。進行中のダウンロードもありません。</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>直前のエラーのため、%n個のファイルが無視されました。
-もう一度同期してください。</numerusform></translation>
+</source>
+ <translation><numerusform>前のエラーのため、%n個のファイルが無視されました。
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%nファイルのダウンロードが不完全です。
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>これらをもう一度同期してください。</translation>
</message>
</context>
<context>
@@ -1633,12 +1658,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>ログインエラー</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>ユーザー %1 としてログインする必要があります</translation>
</message>
@@ -2046,69 +2071,69 @@ It is not advisable to use it.</source>
<translation>ファイルに無効な文字が含まれているため、クロスプラットフォーム環境での同期ができません。</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>同期ジャーナルの初期化ができません。</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>同期ジャーナルを開くことができません</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>&quot;同期対象先&quot; ブラックリストにより無視されました。</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>そのディレクトリにサブディレクトリを追加する権限がありません</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>親ディレクトリを追加する権限がありません</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>そのディレクトリにファイルを追加する権限がありません</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>サーバーでは読み取り専用となっているため、このファイルをアップロードすることはできません、復元しています</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>削除できません、復元しています</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>ローカルファイルと共有フォルダが削除されました。</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>移動できません、項目を復元しました</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>%1 は読み取り専用のため移動できません</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>移動先</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>移動元</translation>
</message>
diff --git a/translations/mirall_nl.ts b/translations/mirall_nl.ts
index 57e72a438..4c4b2f819 100644
--- a/translations/mirall_nl.ts
+++ b/translations/mirall_nl.ts
@@ -386,12 +386,12 @@ Totaal resterende tijd %5</translation>
<translation>Synchronisatie-activiteit</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Kon het systeem-uitsluitingsbestand niet lezen</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Dit kan komen doordat de map ongemerkt opnieuw geconfigureerd is of doordat alle
Weet u zeker dat u deze bewerking wilt uitvoeren?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Verwijder alle bestanden?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Verwijder alle bestanden</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Bewaar bestanden</translation>
</message>
@@ -637,22 +637,22 @@ Weet u zeker dat u deze bewerking wilt uitvoeren?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Geen E-Tag ontvangen van de server, controleer Proxy/Gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>We ontvingen een afwijkende E-Tag om door te gaan. We proberen het later opnieuw.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Server retourneerde verkeerde content-bandbreedte</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Verbindingstime-out</translation>
</message>
@@ -1113,8 +1113,16 @@ We adviseren deze site niet te gebruiken.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Kon geen beveiligde verbinding maken. Wilt u een onversleutelde verbinding maken (niet aan te raden)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Kon geen beveiligde verbinding maken:
+
+%1
+
+Wilt u een onversleutelde verbinding maken (niet aanbevolen)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ We adviseren deze site niet te gebruiken.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synchronisatie afgebroken door gebruiker.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Geen E-Tag ontvangen van de server, controleer Proxy/Gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>We ontvingen een afwijkende E-Tag om door te gaan. We proberen het later opnieuw.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Server retourneerde verkeerde content-bandbreedte</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Bestand %1 kan niet worden gedownload omdat de naam conflicteert met een lokaal bestand</translation>
</message>
@@ -1334,12 +1342,17 @@ We adviseren deze site niet te gebruiken.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Bestand %1 kan niet worden gedownload omdat de naam conflicteert met een lokaal bestand</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Het bestand kon niet volledig worden gedownload.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Bestand %1 kan niet worden opgeslagen wegens een lokaal bestandsnaam conflict!</translation>
</message>
@@ -1425,18 +1438,18 @@ We adviseren deze site niet te gebruiken.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Een lokaal bestand is gewijzigd tijdens het synchroniseren, wordt gesynchroniseerd als het volledig is aangekomen.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synchronisatie afgebroken door gebruiker.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Het bestand is lokaal bewerkt, maar hoort bij een alleen-lezen share. Het originele bestand is teruggezet en uw bewerking staat in het conflicten bestand.</translation>
</message>
@@ -1444,23 +1457,23 @@ We adviseren deze site niet te gebruiken.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Het bestand is lokaal bewerkt, maar hoort bij een alleen-lezen share. Het originele bestand is teruggezet en uw bewerking staat in het conflicten bestand.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Het lokale bestand werd verwijderd tijdens sync.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Lokaal bestand gewijzigd bij sync.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>De server heeft het laatste deel niet bevestigd (er was geen e-tag aanwezig)</translation>
</message>
@@ -1538,17 +1551,29 @@ We adviseren deze site niet te gebruiken.</translation>
<translation>Het synchronisatie overzicht is gekopieerd naar het klembord.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Er zijn nu geen bestanden genegeerd vanwege eerdere fouten.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Er worden op dit moment geen bestanden genegeerd vanwege eerdere fouten er zijn geen downloads bezig.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%1 bestand genegeerd vanwege eerdere fouten.
-Probeer opnieuw te synchroniseren.</numerusform><numerusform>%1 bestanden zijn genegeerd vanwege eerdere fouten.
-Probeer opnieuw te synchroniseren.</numerusform></translation>
+</source>
+ <translation><numerusform>%n bestand genegeerd wegens eerdere fouten.</numerusform><numerusform>%n bestanden genegeerd wegens eerdere fouten.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n bestand gedeeltelijk gedownload.
+</numerusform><numerusform>%n bestanden gedeeltelijk gedownload.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Probeer deze opnieuw te synchen.</translation>
</message>
</context>
<context>
@@ -1636,12 +1661,12 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Inlogfout</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>U moet inloggen als gebruiker %1</translation>
</message>
@@ -2041,7 +2066,7 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<message>
<location filename="../src/mirall/syncengine.cpp" line="367"/>
<source>File is listed on the ignore list.</source>
- <translation>De file is opgenomen op de negeerlijst.</translation>
+ <translation>Het bestand is opgenomen op de negeerlijst.</translation>
</message>
<message>
<location filename="../src/mirall/syncengine.cpp" line="370"/>
@@ -2049,69 +2074,69 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<translation>Bestand bevat ongeldige karakters die niet tussen platformen gesynchroniseerd kunnen worden.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
- <translation>Niet in staat om een synchornisatie journaal te starten.</translation>
+ <translation>Niet in staat om een synchronisatie transactielog te starten.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
- <translation>Kan het sync journal niet openen</translation>
+ <translation>Kan het sync transactielog niet openen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Genegeerd vanwege de &quot;kies wat te synchen&quot; zwarte lijst</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Niet toegestaan, omdat u geen rechten hebt om sub-directories aan te maken in die directory</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Niet toegestaan, omdat u geen rechten hebt om een bovenliggende directories toe te voegen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Niet toegestaan, omdat u geen rechten hebt om bestanden in die directory toe te voegen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Niet toegestaan om dit bestand te uploaden, omdat het alleen-lezen is op de server, herstellen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Niet toegestaan te verwijderen, herstellen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Lokale bestanden en share-map verwijderd. </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Verplaatsen niet toegestaan, object hersteld</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Verplaatsen niet toegestaan omdat %1 alleen-lezen is</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>bestemming</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>bron</translation>
</message>
@@ -2380,7 +2405,7 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="20"/>
<source>Server &amp;address:</source>
- <translation>Server adres:</translation>
+ <translation>Server &amp;adres:</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="36"/>
@@ -2429,7 +2454,7 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="120"/>
<source>&amp;Do not store password on local machine</source>
- <translation>&amp;Geen wachtwoorden opslaan op de lokale machine.</translation>
+ <translation>&amp;Sla geen wachtwoorden op op de lokale machine.</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="140"/>
@@ -2439,12 +2464,12 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="147"/>
<source>Enter the url of the ownCloud you want to connect to (without http or https).</source>
- <translation>Voer de url in van de ownCloud-server waarmee u wilt verbinden (met http of https).</translation>
+ <translation>Voer de URL in van de server waarmee u wilt verbinden (zonder http of https).</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetupnocredspage.ui" line="83"/>
<source>Server &amp;Address</source>
- <translation>Server&amp;adres</translation>
+ <translation>Server &amp;adres</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetupnocredspage.ui" line="99"/>
@@ -2560,7 +2585,7 @@ Probeer opnieuw te synchroniseren.</numerusform></translation>
<message>
<location filename="../src/mirall/progressdispatcher.cpp" line="44"/>
<source>Filesystem access error</source>
- <translation>Bestandssysteem toegangsfout</translation>
+ <translation>Toegangsfout van het bestandssysteem</translation>
</message>
<message>
<location filename="../src/mirall/progressdispatcher.cpp" line="46"/>
diff --git a/translations/mirall_pl.ts b/translations/mirall_pl.ts
index 203ee4d1d..e9ee7b788 100644
--- a/translations/mirall_pl.ts
+++ b/translations/mirall_pl.ts
@@ -386,12 +386,12 @@ Pozostało czasu %5</translation>
<translation>Aktywności synchronizacji</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Nie można przeczytać pliku wyłączeń</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Mogło się tak zdarzyć z powodu niezauważonej rekonfiguracji folderu, lub te
Czy jesteś pewien/pewna, że chcesz wykonać tę operację?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Usunąć wszystkie pliki?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Usuń wszystkie pliki</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Pozostaw pliki</translation>
</message>
@@ -637,22 +637,22 @@ Czy jesteś pewien/pewna, że chcesz wykonać tę operację?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nie otrzymano E-Tag z serwera, sprawdź Proxy/Bramę</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Otrzymaliśmy inny E-Tag wznowienia. Spróbuje ponownie następnym razem.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Serwer zwrócił błędną zakres zawartości</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Limit czasu połączenia</translation>
</message>
@@ -1113,8 +1113,12 @@ Niezalecane jest jego użycie.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Nie udało się połączyć bezpiecznie. Czy chcesz nawiązać połączenie nieszyfrowane (niezalecane)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1310,27 @@ Niezalecane jest jego użycie.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synchronizacja anulowane przez użytkownika.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nie otrzymano E-Tag z serwera, sprawdź Proxy/Bramę</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Otrzymaliśmy inny E-Tag wznowienia. Spróbuje ponownie następnym razem.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Serwer zwrócił błędną zakres zawartości</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Nie można pobrać pliku %1 ze względu na konflikt nazwy pliku lokalnego!</translation>
</message>
@@ -1334,12 +1338,17 @@ Niezalecane jest jego użycie.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Nie można pobrać pliku %1 ze względu na konflikt nazwy pliku lokalnego!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1425,18 +1434,18 @@ Niezalecane jest jego użycie.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Lokalny plik zmienił się podczas synchronizacji, synchronizuję ponownie ponieważ dotarł w całości.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synchronizacja anulowane przez użytkownika.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Plik był edytowany lokalnie ale jest częścią udziału z prawem tylko do odczytu. Został przywrócony i Twoja edycja jest w pliku konfliktu</translation>
</message>
@@ -1444,23 +1453,23 @@ Niezalecane jest jego użycie.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Plik był edytowany lokalnie ale jest częścią udziału z prawem tylko do odczytu. Został przywrócony i Twoja edycja jest w pliku konfliktu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Pliki lokalny został usunięty podczas synchronizacji.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Lokalny plik zmienił się podczas synchronizacji.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Serwer nie potwierdził ostatniego łańcucha danych. (Nie było żadnego e-tag-u)</translation>
</message>
@@ -1538,16 +1547,27 @@ Niezalecane jest jego użycie.</translation>
<translation>Status synchronizacji został skopiowany do schowka.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Obecnie nie ma plików, które są ignorowane z powodu wcześniejszych błędów.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1634,12 +1654,12 @@ Niezalecane jest jego użycie.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Błąd logowania</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Musisz zalogować się jako użytkownik %1</translation>
</message>
@@ -2047,69 +2067,69 @@ Niezalecane jest jego użycie.</translation>
<translation>Plik zawiera nieprawidłowe znaki, które nie mogą być synchronizowane wieloplatformowo.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Nie można zainicjować synchronizacji dziennika.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Nie można otworzyć dziennika synchronizacji</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Nie masz uprawnień do dodawania podkatalogów w tym katalogu.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Nie masz uprawnień by dodać katalog nadrzędny</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Nie masz uprawnień by dodać pliki w tym katalogu</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Wgrywanie niedozwolone, ponieważ plik jest tylko do odczytu na serwerze, przywracanie</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Brak uprawnień by usunąć, przywracanie</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Przenoszenie niedozwolone, obiekt przywrócony</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Przenoszenie niedozwolone, ponieważ %1 jest tylko do odczytu</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>docelowy</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>źródło</translation>
</message>
diff --git a/translations/mirall_pt.ts b/translations/mirall_pt.ts
index 7d8ea3b67..cff0335f6 100644
--- a/translations/mirall_pt.ts
+++ b/translations/mirall_pt.ts
@@ -9,17 +9,17 @@
<message>
<location filename="../src/mirall/folderwizardsourcepage.ui" line="33"/>
<source>Pick a local folder on your computer to sync</source>
- <translation>Escollha a pasta local a sincronizar</translation>
+ <translation>Escolha a pasta local no seu computador para sincronizar</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardsourcepage.ui" line="44"/>
<source>&amp;Choose...</source>
- <translation>&amp;Escolha...</translation>
+ <translation>&amp;Escolher ...</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardsourcepage.ui" line="55"/>
<source>&amp;Directory alias name:</source>
- <translation>Nome do &amp;directorio:</translation>
+ <translation>Nome da &amp;diretoria:</translation>
</message>
</context>
<context>
@@ -32,17 +32,17 @@
<message>
<location filename="../src/mirall/folderwizardtargetpage.ui" line="128"/>
<source>Select a remote destination folder</source>
- <translation>Seleccione a pasta de destino</translation>
+ <translation>Selecione a pasta de destino remota</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardtargetpage.ui" line="140"/>
<source>Add Folder</source>
- <translation>Adicionar pasta</translation>
+ <translation>Adicionar Pasta</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardtargetpage.ui" line="160"/>
<source>Refresh</source>
- <translation>Actualizar</translation>
+ <translation>Atualizar</translation>
</message>
<message>
<location filename="../src/mirall/folderwizardtargetpage.ui" line="174"/>
@@ -70,28 +70,28 @@
<message>
<location filename="../src/mirall/accountsettings.ui" line="152"/>
<source>Edit Ignored Files</source>
- <translation>Editar ficheiros ignorados</translation>
+ <translation>Editar Ficheiros Ignorados</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="159"/>
<source>Modify Account</source>
- <translation>Modificar conta</translation>
+ <translation>Modificar Conta</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="20"/>
<source>Account to Synchronize</source>
- <translation>Conta a sincronizar</translation>
+ <translation>Conta a Sincronizar</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="41"/>
<source>Connected with &lt;server&gt; as &lt;user&gt;</source>
- <translation>Ligado a &lt;server&gt; como &lt;user&gt;</translation>
+ <translation>Conetado com &lt;server&gt; como &lt;user&gt;</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="62"/>
<location filename="../src/mirall/accountsettings.cpp" line="169"/>
<source>Pause</source>
- <translation>Pausa</translation>
+ <translation>Pausar</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="69"/>
@@ -101,22 +101,22 @@
<message>
<location filename="../src/mirall/accountsettings.ui" line="55"/>
<source>Add Folder...</source>
- <translation>Adicionar Pasta...</translation>
+ <translation>Adicionar Pasta ...</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="76"/>
<source>Choose What to Sync</source>
- <translation>Escolher o que sincronizar</translation>
+ <translation>Escolher o Que Sincronizar</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="101"/>
<source>Storage Usage</source>
- <translation>Utilização do armazenamento</translation>
+ <translation>Utilização do Armazenamento</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="123"/>
<source>Retrieving usage information...</source>
- <translation>A obter estatísticas de utilização...</translation>
+ <translation>A obter estatísticas da utilização ...</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.ui" line="130"/>
@@ -126,12 +126,12 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="171"/>
<source>Resume</source>
- <translation>Resumir</translation>
+ <translation>Retomar</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="339"/>
<source>Confirm Folder Remove</source>
- <translation>Confirme a remoção da pasta</translation>
+ <translation>Confirmar Remover Pasta</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="340"/>
@@ -141,7 +141,7 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="376"/>
<source>Confirm Folder Reset</source>
- <translation>Confirmar reposição da pasta</translation>
+ <translation>Confirmar Repor Pasta</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="377"/>
@@ -168,12 +168,12 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
<source>%1 (%3%) of %2 server space in use.</source>
- <translation>%1 (%3%) de %2 de espaço utilizado.</translation>
+ <translation>%1 (%3%) de %2 de espaço do servidor em uso.</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="807"/>
<source>No connection to %1 at &lt;a href=&quot;%2&quot;&gt;%3&lt;/a&gt;.</source>
- <translation>Sem ligação a %1 em &lt;a href=&quot;%2&quot;&gt;%3&lt;/a&gt;.</translation>
+ <translation>Sem coneção para %1 em &lt;a href=&quot;%2&quot;&gt;%3&lt;/a&gt;.</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="814"/>
@@ -183,7 +183,7 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="487"/>
<source>Sync Running</source>
- <translation>A sincronização está a decorrer</translation>
+ <translation>Sincronização em Execução</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="110"/>
@@ -204,29 +204,29 @@
<location filename="../src/mirall/accountsettings.cpp" line="648"/>
<source>%1 %2 (%3 of %4) %5 left at a rate of %6/s</source>
<extracomment>Example text: &quot;uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s&quot;</extracomment>
- <translation>%1 %2 (%3 de %4) %5 faltando a uma taxa de %6/s</translation>
+ <translation>%1 %2 (%3 de %4) %5 restante, a uma taxa de %6/s</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="669"/>
<source>%1 of %2, file %3 of %4
Total time left %5</source>
- <translation>
-</translation>
+ <translation>%1 of %2, ficheiro %3 de %4
+Tempo total restante %5</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="800"/>
<source>Connected to &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;.</source>
- <translation>Conectado a &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;.</translation>
+ <translation>Conetado a &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt;.</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="803"/>
<source>Connected to &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; as &lt;i&gt;%3&lt;/i&gt;.</source>
- <translation>Conectado a &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; como &lt;i&gt;%3&lt;/i&gt;.</translation>
+ <translation>Conetado a &lt;a href=&quot;%1&quot;&gt;%2&lt;/a&gt; como &lt;i&gt;%3&lt;/i&gt;.</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
<source>Currently there is no storage usage information available.</source>
- <translation>Histórico de utilização de armazenamento não disponível.</translation>
+ <translation>Atualmente não está disponível nenhuma informação da utilização do armazenamento.</translation>
</message>
</context>
<context>
@@ -234,22 +234,22 @@ Total time left %5</source>
<message>
<location filename="../src/mirall/authenticationdialog.cpp" line="29"/>
<source>Authentication Required</source>
- <translation>Autenticação necessária</translation>
+ <translation>Autenticação Requerida</translation>
</message>
<message>
<location filename="../src/mirall/authenticationdialog.cpp" line="31"/>
<source>Enter username and password for &apos;%1&apos; at %2.</source>
- <translation>Introduza o nome de utilizador e password para &apos;%1&apos; em %2.</translation>
+ <translation>Insira o nome de utilizador e a senha para &apos;%1&apos; em %2.</translation>
</message>
<message>
<location filename="../src/mirall/authenticationdialog.cpp" line="35"/>
<source>&amp;User:</source>
- <translation>&amp;Utilizador</translation>
+ <translation>&amp;Utilizador:</translation>
</message>
<message>
<location filename="../src/mirall/authenticationdialog.cpp" line="36"/>
<source>&amp;Password:</source>
- <translation>Password&amp;:</translation>
+ <translation>&amp;Senha:</translation>
</message>
</context>
<context>
@@ -273,12 +273,12 @@ Total time left %5</source>
<location filename="../src/mirall/connectionvalidator.cpp" line="127"/>
<location filename="../src/mirall/connectionvalidator.cpp" line="137"/>
<source>Unable to connect to %1</source>
- <translation>Não foi possível ligar a %1</translation>
+ <translation>Não foi possível conetar a %1</translation>
</message>
<message>
<location filename="../src/mirall/connectionvalidator.cpp" line="138"/>
<source>timeout</source>
- <translation>tempo limite</translation>
+ <translation>tempo expirado</translation>
</message>
<message>
<location filename="../src/mirall/connectionvalidator.cpp" line="167"/>
@@ -291,7 +291,7 @@ Total time left %5</source>
<message>
<location filename="../src/mirall/folder.cpp" line="114"/>
<source>Unable to create csync-context</source>
- <translation>Impossível criar &apos;csync-context&apos;</translation>
+ <translation>Não é possível criar &apos;csync-context&apos;</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="168"/>
@@ -306,7 +306,7 @@ Total time left %5</source>
<message>
<location filename="../src/mirall/folder.cpp" line="174"/>
<source>%1 is not readable.</source>
- <translation>Não é possível ler %1</translation>
+ <translation>%1 não é legível.</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="368"/>
@@ -335,18 +335,18 @@ Total time left %5</source>
<location filename="../src/mirall/folder.cpp" line="468"/>
<source>%1 has been downloaded.</source>
<comment>%1 names a file.</comment>
- <translation>Fez o download de %1 </translation>
+ <translation>%1 foi transferido.</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="473"/>
<source>%1 and %2 other files have been updated.</source>
- <translation>Os ficheiros %1 e %2 foram actualizados.</translation>
+ <translation>%1 e %2 outros ficheiros foram atualizados.</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="475"/>
<source>%1 has been updated.</source>
<comment>%1 names a file.</comment>
- <translation>%1 foi actualizado.</translation>
+ <translation>%1 foi atualizado.</translation>
</message>
<message>
<location filename="../src/mirall/folder.cpp" line="480"/>
@@ -383,15 +383,15 @@ Total time left %5</source>
<message>
<location filename="../src/mirall/folder.cpp" line="504"/>
<source>Sync Activity</source>
- <translation>Actividade de sincronicação</translation>
+ <translation>Atividade de Sincronização</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Não foi possível ler o ficheiro system exclude</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -399,17 +399,17 @@ Are you sure you want to perform this operation?</source>
Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &quot;Manter os ficheiros&quot;. Se quer apagar os seus dados, escolha &quot;Remover todos os ficheiros&quot;.</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Remover todos os ficheiros?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Remover todos os ficheiros</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Manter os ficheiros</translation>
</message>
@@ -434,22 +434,22 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<message>
<location filename="../src/mirall/folderman.cpp" line="873"/>
<source>Waits to start syncing.</source>
- <translation>A aguardar o inicio da sincronização.</translation>
+ <translation>A aguardar para iniciar a sincronização.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="876"/>
<source>Preparing for sync.</source>
- <translation>A preparar para sincronização.</translation>
+ <translation>A preparar para sincronizar.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="879"/>
<source>Sync is running.</source>
- <translation>A sincronização está a correr.</translation>
+ <translation>A sincronização está em execução.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="882"/>
<source>Last Sync was successful.</source>
- <translation>A última sincronização foi efectuada com sucesso.</translation>
+ <translation>A última sincronização foi efetuada com sucesso.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="887"/>
@@ -469,12 +469,12 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<message>
<location filename="../src/mirall/folderman.cpp" line="896"/>
<source>Sync is paused.</source>
- <translation>A sincronização está em pausa.</translation>
+ <translation>A sincronização está pausada.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="902"/>
<source>%1 (Sync is paused)</source>
- <translation>%1 (Sincronização em pausa)</translation>
+ <translation>%1 (A sincronização está pausada)</translation>
</message>
</context>
<context>
@@ -488,12 +488,12 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<message>
<location filename="../src/mirall/folderstatusmodel.cpp" line="205"/>
<source>Syncing all files in your account with</source>
- <translation>A sincronizar todos os ficheiros sua conta com</translation>
+ <translation>A sincronizar todos os ficheiros na sua conta com</translation>
</message>
<message>
<location filename="../src/mirall/folderstatusmodel.cpp" line="208"/>
<source>Remote path: %1</source>
- <translation>Pasta remota: %1</translation>
+ <translation>Caminho remoto: %1</translation>
</message>
</context>
<context>
@@ -502,7 +502,7 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<location filename="../src/mirall/folderwizard.cpp" line="494"/>
<location filename="../src/mirall/folderwizard.cpp" line="496"/>
<source>Add Folder</source>
- <translation>Acrescentar pasta</translation>
+ <translation>Adicionar Pasta</translation>
</message>
</context>
<context>
@@ -510,7 +510,7 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<message>
<location filename="../src/mirall/folderwizard.cpp" line="63"/>
<source>Click to select a local folder to sync.</source>
- <translation>Escolha a pasta local a sincronizar.</translation>
+ <translation>Clique para selecionar a pasta local para sincronizar.</translation>
</message>
<message>
<location filename="../src/mirall/folderwizard.cpp" line="67"/>
@@ -636,22 +636,22 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nenhum E-Tag recebido do servidor, verifique Proxy / gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recebemos um e-Tag diferente para resumir. Tentando uma próxima vez.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>O servidor retornou o alcance-conteúdo errado</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>O tempo de ligação expirou </translation>
</message>
@@ -705,12 +705,12 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<message>
<location filename="../src/creds/httpcredentials.cpp" line="374"/>
<source>Enter Password</source>
- <translation>Introduza a Palavra-passe</translation>
+ <translation>Insira a Senha</translation>
</message>
<message>
<location filename="../src/creds/httpcredentials.cpp" line="375"/>
<source>Please enter %1 password for user &apos;%2&apos;:</source>
- <translation>Por favor introduza %1 password para o utilizador &apos;%2&apos;:</translation>
+ <translation>Por favor, insira %1 senha para o utilizador &apos;%2&apos;:</translation>
</message>
</context>
<context>
@@ -728,7 +728,7 @@ Se você, ou o seu administrador, reiniciou a sua conta no servidor, escolha &q
<message>
<location filename="../src/mirall/ignorelisteditor.ui" line="63"/>
<source>Remove</source>
- <translation>Apagar</translation>
+ <translation>Remover</translation>
</message>
<message>
<location filename="../src/mirall/ignorelisteditor.cpp" line="35"/>
@@ -851,7 +851,7 @@ Itens verificados também serão removidos se evitarem que um diretório seja re
<message>
<location filename="../src/updater/ocupdater.cpp" line="262"/>
<source>&lt;p&gt;A new version of the %1 Client is available.&lt;/p&gt;&lt;p&gt;&lt;b&gt;%2&lt;/b&gt; is available for download. The installed version is %3.&lt;/p&gt;</source>
- <translation>&lt;p&gt;A nova serão do %1 Cliente está disponivel.&lt;/p&gt;&lt;p&gt;&lt;b&gt;%2&lt;/b&gt; está disponível para descarga. A versão instalada é a %3.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;A nova serão do %1 Cliente está disponivel.&lt;/p&gt;&lt;p&gt;&lt;b&gt;%2&lt;/b&gt; está disponível para transferência. A versão instalada é a %3.&lt;/p&gt;</translation>
</message>
<message>
<location filename="../src/updater/ocupdater.cpp" line="275"/>
@@ -947,17 +947,17 @@ Itens verificados também serão removidos se evitarem que um diretório seja re
<message>
<location filename="../src/mirall/networksettings.cpp" line="34"/>
<source>Hostname of proxy server</source>
- <translation>Nome do servidor proxy.</translation>
+ <translation>Nome do servidor proxy</translation>
</message>
<message>
<location filename="../src/mirall/networksettings.cpp" line="35"/>
<source>Username for proxy server</source>
- <translation>Nome de utilizador para o servidor proxy.</translation>
+ <translation>Nome de utilizador para o servidor proxy</translation>
</message>
<message>
<location filename="../src/mirall/networksettings.cpp" line="36"/>
<source>Password for proxy server</source>
- <translation>Password para o servidor proxy.</translation>
+ <translation>Senha para o servidor proxy.</translation>
</message>
<message>
<location filename="../src/mirall/networksettings.cpp" line="38"/>
@@ -975,7 +975,7 @@ Itens verificados também serão removidos se evitarem que um diretório seja re
<message>
<location filename="../src/updater/ocupdater.cpp" line="55"/>
<source>New Update Ready</source>
- <translation>Nova actualização disponível</translation>
+ <translation>Nova atualização disponível</translation>
</message>
<message>
<location filename="../src/updater/ocupdater.cpp" line="56"/>
@@ -1006,7 +1006,7 @@ for additional privileges during the process.</source>
<message>
<location filename="../src/updater/ocupdater.cpp" line="85"/>
<source>New version %1 available. Please use the system&apos;s update tool to install it.</source>
- <translation>Uma nova versão %1 está disponível. Por favor use o sistema de actualização para instalar.</translation>
+ <translation>Nova versão %1 disponível. Por favor use a ferramenta de atualização do sistema para a instalar.</translation>
</message>
<message>
<location filename="../src/updater/ocupdater.cpp" line="87"/>
@@ -1016,7 +1016,7 @@ for additional privileges during the process.</source>
<message>
<location filename="../src/updater/ocupdater.cpp" line="89"/>
<source>Update status is unknown: Did not check for new updates.</source>
- <translation>Estado de actualização é desconhecido: não foi possível procurar novas actualizações</translation>
+ <translation>Estado de actualização é desconhecido: não foi possível procurar novas actualizações.</translation>
</message>
<message>
<location filename="../src/updater/ocupdater.cpp" line="93"/>
@@ -1110,8 +1110,16 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Não foi possível estabelecer uma ligação segura. Deseja utilizar uma ligação não segura?(não recomendado)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Não foi possível ligar com segurança:
+
+%1
+
+Em vez disso deseja utilizar uma ligação não codificada (não recomendado)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1303,27 +1311,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>A sincronização foi cancelada pelo utilizador.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nenhum E-Tag recebido do servidor, verifique Proxy / gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recebemos um e-Tag diferente para resumir. Tentando uma próxima vez.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>O servidor retornou o alcance-conteúdo errado</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>O ficheiro %1 não pode ser descarregado devido a conflito com um nome de ficheiro local!</translation>
</message>
@@ -1331,12 +1339,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>O ficheiro %1 não pode ser descarregado devido a conflito com um nome de ficheiro local!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Não foi possível transferir o ficheiro na totalidade.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>Ficheiro %1 não pode ser guardado devido à existência de um ficheiro local com o mesmo nome.</translation>
</message>
@@ -1422,18 +1435,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Ficheiro local foi alterado durante a sincronização. A sincronizar quando chegar na totalidade</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>A sincronização foi cancelada pelo utilizador.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>O ficheiro foi editado localmente mas faz parte de uma prtilha só de leitura. Foi restaurado mas a edição está no ficheiro de conflito.</translation>
</message>
@@ -1441,23 +1454,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>O ficheiro foi editado localmente mas faz parte de uma prtilha só de leitura. Foi restaurado mas a edição está no ficheiro de conflito.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>O arquivo local foi removido durante a sincronização.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Ficheiro local alterado durante a sincronização.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>O servidor não reconheceu o último bloco. (Nenhuma e-tag estava presente)</translation>
</message>
@@ -1535,17 +1548,30 @@ It is not advisable to use it.</source>
<translation>O estado da sincronização foi copiada para a área de transferência.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Devido a erros anteriores, nenhum ficheiro é ignorado.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Atualmente os ficheiros não são ignorados devido a erros anteriores e não existem transferências em progresso</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n ficheiros são ignorados devido a erros anteriores.
-Tente sincronizá-los novamente.</numerusform><numerusform>%n ficheiros são ignorados devido a erros anteriores.
-Tente sincronizá-los novamente.</numerusform></translation>
+</source>
+ <translation><numerusform>é ignorado %n ficheiro devido a erros anteriores.
+</numerusform><numerusform>são ignorados %n ficheiros devido a erros anteriores.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n ficheiro foi parcialmente transferido.
+</numerusform><numerusform>%n ficheiros foram parcialmente transferidos.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Tente sincronizar estes também.</translation>
</message>
</context>
<context>
@@ -1633,12 +1659,12 @@ Tente sincronizá-los novamente.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Erro de login</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Deve fazer o login como utilizador %1.</translation>
</message>
@@ -2047,69 +2073,69 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<translation>O ficheiro contém caracteres inválidos que não podem ser sincronizados pelas várias plataformas.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Impossível inicializar sincronização &apos;journal&apos;.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Impossível abrir o jornal de sincronismo</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorado devido à blacklist de escolha para sincronização</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Não permitido, porque não tem permissão para adicionar sub-directórios ao directório</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Não permitido, porque não tem permissão para adicionar o directório principal</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Não permitido, porque não tem permissão para adicionar ficheiros no directório</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Não é permitido fazer o envio deste ficheiro porque é só de leitura no servidor, restaurando</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Não autorizado para remoção, restaurando</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Ficheiros locais e pasta partilhada removidos.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Mover não foi permitido, item restaurado</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Mover não foi autorizado porque %1 é só de leitura</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>o destino</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>a origem</translation>
</message>
@@ -2220,12 +2246,12 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="429"/>
<source>Sign in...</source>
- <translation>Entrar...</translation>
+ <translation>Iniciar sessão...</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="431"/>
<source>Sign out</source>
- <translation>Sair</translation>
+ <translation>Terminar sessão</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="439"/>
@@ -2255,7 +2281,7 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="479"/>
<source>Syncing %1 (%2 left)</source>
- <translation>Sincronizando %1 (%2 faltando)</translation>
+ <translation>A sincronizar %1 (%2 em falta)</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="499"/>
@@ -2265,7 +2291,7 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="527"/>
<source>Up to date</source>
- <translation>Actualizado</translation>
+ <translation>Atualizado</translation>
</message>
</context>
<context>
@@ -2273,7 +2299,7 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<message utf8="true">
<location filename="../src/mirall/owncloudtheme.cpp" line="48"/>
<source>&lt;p&gt;Version %2. For more information visit &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.&lt;br/&gt;Based on Mirall by Duncan Mac-Vicar P.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Licensed under the GNU General Public License (GPL) Version 2.0&lt;br/&gt;ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Versão %2. Para mais informação visita &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;Por Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.&lt;br/&gt;Baseado em Mirall por Duncan Mac-Vicar P.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Licenciado sob a GNU General Public License (GPL) Versão 2.0&lt;br/&gt;ownCloud e ownCloud Logo são marcas registadas de ownCloud, Inc. nos Estados Unidos da América, em outros países, ou ambos.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Versão %2. Para mais informações visite &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;Por Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.&lt;br/&gt;Baseado em Mirall por Duncan Mac-Vicar P.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Licenciado sob a GNU General Public License (GPL) Versão 2.0&lt;br/&gt;ownCloud e ownCloud Logo são marcas registadas de ownCloud, Inc. nos Estados Unidos da América, em outros países, ou ambos.&lt;/p&gt;</translation>
</message>
</context>
<context>
@@ -2353,7 +2379,7 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<message>
<location filename="../src/wizard/owncloudhttpcredspage.ui" line="48"/>
<source>&amp;Password</source>
- <translation>&amp;Password</translation>
+ <translation>&amp;Senha</translation>
</message>
<message>
<location filename="../src/wizard/owncloudhttpcredspage.ui" line="58"/>
@@ -2412,22 +2438,22 @@ Por favor utilize um servidor de sincronização horária (NTP), no servidor e n
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="92"/>
<source>&amp;Password:</source>
- <translation>Password&amp;:</translation>
+ <translation>&amp;Senha:</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="102"/>
<source>Enter the ownCloud password.</source>
- <translation>Introduza a sua palavra-passe do ownCloud</translation>
+ <translation>Introduza a sua senha do ownCloud</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="117"/>
<source>Do not allow the local storage of the password.</source>
- <translation>Não permitir que a palavra-passe seja guardada.</translation>
+ <translation>Não permitir que a senha seja guardada localmente.</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="120"/>
<source>&amp;Do not store password on local machine</source>
- <translation>&amp;Não guardar a password</translation>
+ <translation>&amp;Não guardar a senha na máquina local</translation>
</message>
<message>
<location filename="../src/mirall/owncloudsetuppage.ui" line="140"/>
diff --git a/translations/mirall_pt_BR.ts b/translations/mirall_pt_BR.ts
index 7af8da783..1f30273f7 100644
--- a/translations/mirall_pt_BR.ts
+++ b/translations/mirall_pt_BR.ts
@@ -386,12 +386,12 @@ Total de tempo que falta 5%</translation>
<translation>Atividade de Sincronização</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Não foi possível ler o sistema de arquivo de exclusão</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Isso pode ser porque a pasta foi silenciosamente reconfigurada, ou todos os arqu
Você tem certeza que quer executar esta operação?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Deseja Remover Todos os Arquivos?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Remover todos os arquivos</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Manter arquivos</translation>
</message>
@@ -637,22 +637,22 @@ Você tem certeza que quer executar esta operação?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nenhuma E-Tag recebida do servidor, verifique Proxy / gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recebemos um e-Tag diferente para resumir. Tente uma próxima vez.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>O servidor retornou erro numa série-de-conteúdo</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Conexão Finalizada</translation>
</message>
@@ -1111,8 +1111,16 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Não foi possível conectar com segurança. Você deseja se conectar sem usar criptografia (não recomendado)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Não foi possível conectar com segurança:
+
+%1
+
+Você deseja se conectar sem criptografia (não recomendado)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1304,27 +1312,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>A sincronização foi abortada pelo usuário.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Nenhuma E-Tag recebida do servidor, verifique Proxy / gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Recebemos um e-Tag diferente para resumir. Tente uma próxima vez.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>O servidor retornou erro numa série-de-conteúdo</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>O arquivo %1 não pode ser baixado por causa de um confronto local no nome do arquivo!</translation>
</message>
@@ -1332,12 +1340,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>O arquivo %1 não pode ser baixado por causa de um confronto local no nome do arquivo!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>O arquivo não pode ser baixado completamente.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation>O arquivo %1 não pode ser salvo por causa de um confronto com um nome de arquivo local!</translation>
</message>
@@ -1423,18 +1436,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Arquivo local alterado durante a sincronização, sincronizando uma vez que chegou completamente</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>A sincronização foi abortada pelo usuário.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>O arquivo foi editado localmente mas faz parte de compartilhamento só de leitura. Ele foi restaurado mas sua edição está em conflito com o arquivo.</translation>
</message>
@@ -1442,23 +1455,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>O arquivo foi editado localmente mas faz parte de compartilhamento só de leitura. Ele foi restaurado mas sua edição está em conflito com o arquivo.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>O arquivo local foi removido durante a sincronização.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Arquivo local modificado durante a sincronização.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>O servidor não reconheceu o último bloco. (Nenhuma e-tag estava presente)</translation>
</message>
@@ -1536,15 +1549,29 @@ It is not advisable to use it.</source>
<translation>O estado de sincronização foi copiado para a área de transferência.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Correntemente nenhum arquivo será ignorado por causa de erros prévios.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Atualmente não há arquivos ignorados devido a erros anteriores e nenhum downloads está em andamento.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+</source>
+ <translation><numerusform>%n arquivo foi ignorado por causa dos erros anteriores.
+</numerusform><numerusform>%n arquivos foram ignorados por causa dos erros anteriores.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n arquivo está parcialmente baixado.
+</numerusform><numerusform>%n arquivos forão parcialmente baixados.</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Tente sincronizar estes novamente.</translation>
</message>
</context>
<context>
@@ -1632,12 +1659,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Erro de Login</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Você deve entrar como usuário %1</translation>
</message>
@@ -2045,69 +2072,69 @@ It is not advisable to use it.</source>
<translation>Arquivos que contém caracteres inválidos não podem ser sincronizados através de plataformas. </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Impossibilitado de iniciar a sincronização.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Não é possível abrir o arquivo de sincronização</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorado por causa da lista negra &quot;escolher o que sincronizar&quot;</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Não permitido porque você não tem permissão de criar sub-pastas nesta pasta</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Não permitido porque você não tem permissão de criar pastas mãe</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Não permitido porque você não tem permissão de adicionar arquivos a esta pasta</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Não é permitido fazer o upload deste arquivo porque ele é somente leitura no servidor, restaurando</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Não é permitido remover, restaurando</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Arquivos locais e pasta compartilhada removida.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Não é permitido mover, item restaurado</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Não é permitido mover porque %1 é somente para leitura</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>o destino</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>a fonte</translation>
</message>
diff --git a/translations/mirall_ru.ts b/translations/mirall_ru.ts
index 018950bda..298726c05 100644
--- a/translations/mirall_ru.ts
+++ b/translations/mirall_ru.ts
@@ -198,7 +198,7 @@
<message>
<location filename="../src/mirall/accountsettings.cpp" line="608"/>
<source>Discovering &apos;%1&apos;</source>
- <translation type="unfinished"/>
+ <translation>Ищем &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/mirall/accountsettings.cpp" line="648"/>
@@ -386,12 +386,12 @@ Total time left %5</source>
<translation>Журнал синхронизации</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Невозможно прочесть исключенный системный файл</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Are you sure you want to perform this operation?</source>
Вы уверены, что хотите выполнить операцию?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Удалить все файлы?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Удалить все файлы</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Сохранить файлы</translation>
</message>
@@ -637,22 +637,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation> E-Tag от сервера на получен, проверьте сетевые настройки (настройки прокси, шлюз).</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Мы получили другой E-Tag для возобновления. Повторите попытку позже.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Сервер вернул неверный диапазон содержания</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Тайм-аут подключения</translation>
</message>
@@ -1113,8 +1113,16 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Не удалось безопасно подключиться . Вы хотите подключиться в незашифрованном виде(не рекомендуется)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Не удаётся установить защищённое подключение к:
+
+%1
+
+Хотите установить незашифрованное подключение (не рекомендуется)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Синхронизация прервана пользователем.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation> E-Tag от сервера на получен, проверьте сетевые настройки (настройки прокси, шлюз).</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Мы получили другой E-Tag для возобновления. Повторите попытку позже.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Сервер вернул неверный диапазон содержания</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Файл %1 не может быть загружен из-за локальных конфликтов имен!</translation>
</message>
@@ -1334,14 +1342,19 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Файл %1 не может быть загружен из-за локальных конфликтов имен!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Невозможно полностью загрузить файл.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
- <translation type="unfinished"/>
+ <translation>Файл %1 не может быть сохранён из-за совпадения его имени с локальным файлом!</translation>
</message>
</context>
<context>
@@ -1425,18 +1438,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Локальный файл изменился в процессе синхронизации, повторяем процесс</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Синхронизация прервана пользователем.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1444,23 +1457,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Локальный файл был удалён в процессе синхронизации.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Локальный файл изменился в процессе синхронизации.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Сервер не смог подтвердить последний отрезок данных. (Отсутствовали теги e-tag)</translation>
</message>
@@ -1538,18 +1551,33 @@ It is not advisable to use it.</source>
<translation>Статус синхронизации скопирован в буфер обмена.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>На данный момент файлы, игнорируемые из-за ошибок, отсутствуют.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>В настоящий момент из-за предыдущих ошибок ни один из файлов не игнорируется и нет ни одной активной загрузки.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n файл проигнорированы из-за предыдущих ошибок.
-Попробуйте синхронизировать их ещё раз.</numerusform><numerusform>%n файлов проигнорированы из-за предыдущих ошибок.
-Попробуйте синхронизировать их ещё раз.</numerusform><numerusform>%n файла проигнорированы из-за предыдущих ошибок.
-Попробуйте синхронизировать их ещё раз.</numerusform></translation>
+</source>
+ <translation><numerusform>%n файл игнорируется из-за предыдущих ошибок.
+
+</numerusform><numerusform>%n файла игнорируются из-за предыдущих ошибок.
+</numerusform><numerusform>%n файлов игнорируются из-за предыдущих ошибок.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n файл частично загружен.
+</numerusform><numerusform>%n файла частично загружены.
+</numerusform><numerusform>%n файлов частично загружены.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Попробуйте синхронизировать позже</translation>
</message>
</context>
<context>
@@ -1562,7 +1590,7 @@ It is not advisable to use it.</source>
<message>
<location filename="../src/mirall/selectivesyncdialog.cpp" line="274"/>
<source>Unchecked folders will be &lt;b&gt;removed&lt;/b&gt; from your local file system and will not be synchronized to this computer anymore</source>
- <translation type="unfinished"/>
+ <translation>Неотмеченные папки будут &lt;b&gt;удалены&lt;/b&gt; из вашей локальной файловой системы и больше не будут синхронизироваться на этом компьютере</translation>
</message>
</context>
<context>
@@ -1637,12 +1665,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Ошибка входа</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Вы должны войти как пользователь %1</translation>
</message>
@@ -2050,69 +2078,69 @@ It is not advisable to use it.</source>
<translation>Файл содержит недопустимые символы, которые невозможно синхронизировать между платформами.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Не удалось инициализировать журнал синхронизации.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Не удаётся открыть журнал синхронизации</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Игнорируется из-за черного списка в &quot;выбрать что синхронизировать&quot;</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Недопустимо из-за отсутствия у вас разрешений на добавление подпапок в этой папке</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Недопустимо из-за отсутствия у вас разрешений на добавление родительской папки</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Недопустимо из-за отсутствия у вас разрешений на добавление файлов в эту папку</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Недопустимо отправить этот файл поскольку на севрере он помечен только для чтения, восстанавливаем</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Недопустимо удалить, восстанавливаем</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Локальные файлы и папки, добавленные в общий доступ, удалены.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Перемещение недопустимо, элемент восстановлен</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Перемещение недопустимо, поскольку %1 помечен только для чтения</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation> Назначение</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>Источник</translation>
</message>
@@ -2248,7 +2276,7 @@ It is not advisable to use it.</source>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="470"/>
<source>Discovering &apos;%1&apos;</source>
- <translation type="unfinished"/>
+ <translation>Ищем &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/mirall/owncloudgui.cpp" line="474"/>
diff --git a/translations/mirall_sk.ts b/translations/mirall_sk.ts
index 27ee09d7d..568a656a0 100644
--- a/translations/mirall_sk.ts
+++ b/translations/mirall_sk.ts
@@ -386,12 +386,12 @@ Celkom zostáva %5</translation>
<translation>Aktivita synchronizácie</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Toto môže byť kvôli tichej rekonfigurácii priečinka, prípadne boli všetk
Ste si istý, že chcete uskutočniť danú operáciu?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Odstrániť všetky súbory?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Odstrániť všetky súbory</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Ponechať súbory</translation>
</message>
@@ -637,22 +637,22 @@ Ste si istý, že chcete uskutočniť danú operáciu?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Zo servera nebol prijatý E-Tag, skontrolujte proxy/bránu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Prijali sme iný E-Tag pre pokračovanie. Skúsim to neskôr znovu.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Server vrátil nesprávnu hodnotu Content-range</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Spojenie vypršalo</translation>
</message>
@@ -1113,8 +1113,12 @@ Nie je vhodné ju používať.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Nemožno sa bezpečne pripojiť. Chcete sa pripojiť nešifrovane (neodporúča sa)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1310,27 @@ Nie je vhodné ju používať.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synchronizácia zrušená používateľom.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Zo servera nebol prijatý E-Tag, skontrolujte proxy/bránu</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Prijali sme iný E-Tag pre pokračovanie. Skúsim to neskôr znovu.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Server vrátil nesprávnu hodnotu Content-range</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Súbor %1 nie je možné stiahnuť, pretože súbor s rovnakým menom už existuje!</translation>
</message>
@@ -1334,12 +1338,17 @@ Nie je vhodné ju používať.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Súbor %1 nie je možné stiahnuť, pretože súbor s rovnakým menom už existuje!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1425,18 +1434,18 @@ Nie je vhodné ju používať.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Lokálny súbor bol počas synchronizácie zmenený, zosynchronizuje sa, akonáhle bude kompletný</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synchronizácia zrušená používateľom.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Súbor bol zmenený, ale je súčasťou zdieľania len na čítanie. Pôvodný súbor bol obnovený a upravená verzia je uložená v konfliktnom súbore.</translation>
</message>
@@ -1444,23 +1453,23 @@ Nie je vhodné ju používať.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Súbor bol zmenený, ale je súčasťou zdieľania len na čítanie. Pôvodný súbor bol obnovený a upravená verzia je uložená v konfliktnom súbore.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Lokálny súbor bol odstránený počas synchronizácie.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Lokálny súbor bol zmenený počas synchronizácie.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Server nepotvrdil posledný kúsok. (Nebol prítomný e-tag)</translation>
</message>
@@ -1538,16 +1547,27 @@ Nie je vhodné ju používať.</translation>
<translation>Stav synchronizácie bol nakopírovaný do schránky.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>V súčastnosti nie sú na čiernej listine žiadne súbory kvôli predchádzajúcim chybovým stavom.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1634,12 +1654,12 @@ Nie je vhodné ju používať.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Chybné prihlásenie</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Musíte sa prihlásiť ako používateľ %1</translation>
</message>
@@ -2047,69 +2067,69 @@ Nie je vhodné ju používať.</translation>
<translation>Súbor obsahuje neplatné znaky, ktoré nemôžu byť zosynchronizované medzi platformami.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Nemôžem inicializovať synchronizačný žurnál.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Nemožno otvoriť sync žurnál</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Nie je dovolené, pretože nemáte oprávnenie pridávať do tohto adresára podadresáre.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Nie je dovolené, pretože nemáte oprávnenie pridať nadradený adresár.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Nie je dovolené, pretože nemáte oprávnenie pridávať do tohto adresára súbory.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Nie je dovolené tento súbor nahrať, pretože je na serveri iba na čítanie. Obnovuje sa.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Nie je dovolené odstrániť. Obnovuje sa.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Presunutie nie je dovolené. Položka obnovená.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Presunutie nie je dovolené, pretože %1 je na serveri iba na čítanie</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>cieľ</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>zdroj</translation>
</message>
@@ -2300,7 +2320,7 @@ Nie je vhodné ju používať.</translation>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="103"/>
<source>Sync everything from server</source>
- <translation type="unfinished"/>
+ <translation>Synchronizovať všetko zo servera</translation>
</message>
<message>
<location filename="../src/wizard/owncloudadvancedsetuppage.ui" line="122"/>
diff --git a/translations/mirall_sl.ts b/translations/mirall_sl.ts
index 7113bfec7..d879b38b7 100644
--- a/translations/mirall_sl.ts
+++ b/translations/mirall_sl.ts
@@ -386,12 +386,12 @@ Skupaj še %5</translation>
<translation>Dejavnost usklajevanja</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Ni mogoče prebrati sistemske izločitvene datoteke</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Mapa je bila morda odstranjena ali pa so bile nastavitve spremenjene.
Ali sta prepričani, da želite izvesti to opravilo?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Ali naj bodo odstranjene vse datoteke?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Odstrani vse datoteke</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Ohrani datoteke</translation>
</message>
@@ -637,22 +637,22 @@ Ali sta prepričani, da želite izvesti to opravilo?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ni prejete oznake s strežnika. Preveriti je treba podatke posredovalnega strežnika ali prehoda.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Prejeta je različna oznaka za nadaljevanje opravila. Ponovni poskus bo izveden kasneje.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Odziv strežnika kaže na neveljaven obseg vsebine</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Povezava časovno pretekla</translation>
</message>
@@ -1113,8 +1113,16 @@ Uporaba ni priporočljiva.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Ni mogoče vzpostaviti varne povezave. Ali želite vzpostaviti nešifrirano povezavo (ni priporočljivo)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Ni mogoče vzpostaviti varne povezave:
+
+%1
+
+Ali želite vzpostaviti nešifrirano povezavo (ni priporočljivo)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ Uporaba ni priporočljiva.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Usklajevanje je bilo prekinjeno s strani uporabnika</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ni prejete oznake s strežnika. Preveriti je treba podatke posredovalnega strežnika ali prehoda.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Prejeta je različna oznaka za nadaljevanje opravila. Ponovni poskus bo izveden kasneje.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Odziv strežnika kaže na neveljaven obseg vsebine</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Datoteke %1 ni možno prejeti, zaradi neskladja z imenom krajevne datoteke!</translation>
</message>
@@ -1334,15 +1342,20 @@ Uporaba ni priporočljiva.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Datoteke %1 ni mogoče prejeti zaradi neskladja z imenom krajevne datoteke!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
- <source>File %1 cannot be saved because of a local file name clash!</source>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
+ <source>File %1 cannot be saved because of a local file name clash!</source>
+ <translation>Datoteke %1 ni mogoče shraniti zaradi neskladja z imenom obstoječe datoteke!</translation>
+ </message>
</context>
<context>
<name>Mirall::PropagateItemJob</name>
@@ -1375,12 +1388,12 @@ Uporaba ni priporočljiva.</translation>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="68"/>
<source>Error removing &apos;%1&apos;: %2; </source>
- <translation type="unfinished"/>
+ <translation>Napaka odstranjevanja &apos;%1&apos;: %2; </translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="79"/>
<source>Could not remove directory &apos;%1&apos;; </source>
- <translation type="unfinished"/>
+ <translation>Ni mogoče odstraniti mape &apos;%1&apos;; </translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="94"/>
@@ -1425,18 +1438,18 @@ Uporaba ni priporočljiva.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Krajevna datoteka je bila med usklajevanjem spremenjena. Usklajena bo, ko bo shranjena.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Usklajevanje je bilo prekinjeno s strani uporabnika</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Datoteka je bila krajevno spremenjena, vendar pa je označena za souporabo le za branje. Izvorna datoteka je obnovljena, vaše spremembe pa so zabeležene v datoteki spora.</translation>
</message>
@@ -1444,23 +1457,23 @@ Uporaba ni priporočljiva.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Datoteka je bila krajevno spremenjena, vendar pa je označena za souporabo le za branje. Izvorna datoteka je obnovljena, vaše spremembe pa so zabeležene v datoteki spora.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Krajevna datoteka je bila me usklajevanjem odstranjena.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Krajevna datoteka je bila med usklajevanjem spremenjena.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Strežnik ni prepoznal zadnjega niza besed. (ni določenih e-oznak)</translation>
</message>
@@ -1538,19 +1551,34 @@ Uporaba ni priporočljiva.</translation>
<translation>Stanje usklajevanja je kopirano v odložišče.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Trenutno zaradi predhodnih napak ni prezrta nobena datoteka.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Trenutno zaradi predhodnih napak ni prezrta nobena datoteka in ni dejavnih prejemov.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n datoteka je prezrta zaradi predhodnih napak.
-Datoteko poskusite uskladiti znova.</numerusform><numerusform>%n datoteki sta prezrti zaradi predhodnih napak.
-Datoteki poskusite uskladiti znova.</numerusform><numerusform>%n datoteke so prezrte zaradi predhodnih napak.
-Datoteke poskusite uskladiti znova.</numerusform><numerusform>%n datotek je prezrtih zaradi predhodnih napak.
-Datoteke poskusite uskladiti znova.</numerusform></translation>
+</source>
+ <translation><numerusform>Zaradi predhodnih napak je prezrta %n datoteka.
+</numerusform><numerusform>Zaradi predhodnih napak sta prezrti %n datoteki.
+</numerusform><numerusform>Zaradi predhodnih napak so prezrte %n datoteke.
+</numerusform><numerusform>Zaradi predhodnih napak je prezrtih %n datotek.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>Prenos %n datoteke še ni končan.
+</numerusform><numerusform>Prenos %n datotek še ni končan.
+</numerusform><numerusform>Prenos %n datotek še ni končan.
+</numerusform><numerusform>Prenos %n datotek še ni končan.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Poskusi s ponovnim usklajevanje.</translation>
</message>
</context>
<context>
@@ -1638,12 +1666,12 @@ Datoteke poskusite uskladiti znova.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Napaka prijave</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Prijaviti se je treba kot uporabnik %1</translation>
</message>
@@ -2051,69 +2079,69 @@ Datoteke poskusite uskladiti znova.</numerusform></translation>
<translation>Ime datoteke vsebuje neveljavne znake, ki niso podprti na vseh okoljih.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Dnevnika usklajevanja ni mogoče začeti.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Ni mogoče odpreti dnevnika usklajevanja</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Prezrto, ker ni neizbrano za usklajevanje</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Ni ustreznih dovoljenj za dodajanje podmap v izbrano mapo.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Ni ustreznih dovoljenj za dodajanje nadrejene mape.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Ni ustreznih dovoljenj za dodajanje datotek v izbrano mapo.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Ni dovoljeno pošiljati te datoteke, ker ima določena dovoljenja le za branje. Datoteka bo obnovljena na izvorno različico.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Odstranitev ni dovoljena, datoteka bo obnovljena.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Krajevne datoteke in mape v souporabi so odstranjene.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Premikanje ni dovoljeno, datoteka bo obnovljena.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Premikanje ni dovoljeno, ker je nastavljeno določilo %1 le za branje.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>cilj</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>vir</translation>
</message>
diff --git a/translations/mirall_sv.ts b/translations/mirall_sv.ts
index 3eeb0d7c1..81f9b3775 100644
--- a/translations/mirall_sv.ts
+++ b/translations/mirall_sv.ts
@@ -386,12 +386,12 @@ Total tid kvar %5</translation>
<translation>Synk aktivitet</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Detta kan bero på att konfigurationen för mappen ändrats, eller att alla file
Är du säker på att du vill fortsätta?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Ta bort alla filer?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Ta bort alla filer</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Behåll filer</translation>
</message>
@@ -637,22 +637,22 @@ Detta kan bero på att konfigurationen för mappen ändrats, eller att alla file
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ingen e-tag mottogs från servern, kontrollera proxy/gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Vi mottog en helt annan e-tag för att återuppta. Försök igen nästa gång.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Anslutningen avbröts på grund av timeout</translation>
</message>
@@ -1113,8 +1113,12 @@ Det är inte lämpligt använda den.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Kunde inte ansluta säkert. Vill du ansluta okrypterat istället (rekommenderas ej)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1310,27 @@ Det är inte lämpligt använda den.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Synkningen avbröts av användare.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Ingen E-Tag mottogs från servern, kontrollera proxy/gateway</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Vi mottog en helt annan E-Tag för att återuppta. Försöker igen nästa gång.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Fil %1 kan inte laddas ner på grund av namnkonflikt med en lokal fil!</translation>
</message>
@@ -1334,12 +1338,17 @@ Det är inte lämpligt använda den.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Fil %1 kan inte laddas ner på grund av namnkonflikt med en lokal fil!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1425,18 +1434,18 @@ Det är inte lämpligt använda den.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Lokal fil ändrades under synk, synkar när den har anlänt komplett</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Synkningen avbröts av användare.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Filen ändrades lokalt men är en del av en endast-läsbar delning. Den återställs och din editering är i konflikt filen.</translation>
</message>
@@ -1444,23 +1453,23 @@ Det är inte lämpligt använda den.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Filen ändrades lokalt men är en del av en endast-läsbar delning. Den återställdes och din editering är i konflikt filen.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Den lokala filen togs bort under synkronisering.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Lokal fil ändrades under synk.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Servern bekräftade inte det sista fil-fragmentet (Ingen e-tag fanns tillgänglig)</translation>
</message>
@@ -1538,16 +1547,27 @@ Det är inte lämpligt använda den.</translation>
<translation>Synkroniseringsstatus har kopierats till urklipp.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>För närvarande ignoreras inga filer på grund av föregående fel.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1634,12 +1654,12 @@ Det är inte lämpligt använda den.</translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Login fel</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Du måste logga in som en användare %1</translation>
</message>
@@ -2047,69 +2067,69 @@ Det är inte lämpligt använda den.</translation>
<translation>Filen innehåller ogiltiga tecken som inte kan synkas oberoende av plattform.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Kan inte initialisera en synk journal. </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Kunde inte öppna synk journalen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ignorerad eftersom den är svartlistad i &quot;välj vad som ska synkas&quot; </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Går ej att genomföra då du saknar rättigheter att lägga till underkataloger i den katalogen </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Går ej att genomföra då du saknar rättigheter att lägga till någon moderkatalog</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Går ej att genomföra då du saknar rättigheter att lägga till filer i den katalogen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Inte behörig att ladda upp denna fil då den är skrivskyddad på servern, återställer </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Inte behörig att radera, återställer</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Lokala filer och mappar som är delade är borttagna.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Det gick inte att genomföra flytten, objektet återställs</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Det gick inte att genomföra flytten då %1 är skrivskyddad</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>destinationen</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>källan</translation>
</message>
diff --git a/translations/mirall_th.ts b/translations/mirall_th.ts
index 3d85fc164..e171e4363 100644
--- a/translations/mirall_th.ts
+++ b/translations/mirall_th.ts
@@ -385,29 +385,29 @@ Total time left %5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation type="unfinished"/>
</message>
@@ -634,22 +634,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -1106,7 +1106,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"/>
</message>
<message>
@@ -1299,27 +1303,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1327,12 +1331,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1418,18 +1427,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1437,23 +1446,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1531,16 +1540,27 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1627,12 +1647,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2038,69 +2058,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
diff --git a/translations/mirall_tr.ts b/translations/mirall_tr.ts
index 0e9c78fbf..77a5e1b20 100644
--- a/translations/mirall_tr.ts
+++ b/translations/mirall_tr.ts
@@ -386,12 +386,12 @@ Toplam kalan süre: %5</translation>
<translation>Eşitleme Etkinliği</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Sistem hariç tutulma dosyası okunamadı</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Bu, klasörün sessizce yeniden yapılandırılması veya tüm dosyaların el il
Bu işlemi gerçekleştirmek istediğinize emin misiniz?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Tüm Dosyalar Kaldırılsın mı?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Tüm dosyaları kaldır</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Dosyaları koru</translation>
</message>
@@ -435,7 +435,7 @@ Bu işlemi gerçekleştirmek istediğinize emin misiniz?</translation>
<message>
<location filename="../src/mirall/folderman.cpp" line="873"/>
<source>Waits to start syncing.</source>
- <translation>Eşitleme başlatmak için bekleniyor.</translation>
+ <translation>Eşitleme başlatmak için bekliyor.</translation>
</message>
<message>
<location filename="../src/mirall/folderman.cpp" line="876"/>
@@ -637,22 +637,22 @@ Bu işlemi gerçekleştirmek istediğinize emin misiniz?</translation>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Sunucudan E-Etiket alınamadı, Vekil sunucu/Ağ geçidini denetleyin.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Devam etmek üzere farklı bir E-Etiket aldık. Sonraki işlemde yeniden denenecek.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Sunucu yanlış içerik aralığı döndürdü</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Bağlantı Zaman Aşımı</translation>
</message>
@@ -1113,8 +1113,16 @@ Kullanmanız önerilmez.</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Güvenli olarak bağlanılamadı. Bunun yerine şifrelenmemiş bağlantı yapmak ister misiniz (önerilmez)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Güvenli olarak bağlanılamadı:
+
+%1
+
+Bunun yerine şifrelenmemiş bağlantı yapmak ister misiniz (önerilmez)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ Kullanmanız önerilmez.</translation>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Eşitleme kullanıcı tarafından iptal edildi.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Sunucudan E-Etiket alınamadı, Vekil sunucu/Ağ geçidini denetleyin.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Devam etmek üzere farklı bir E-Etiket aldık. Sonraki işlemde yeniden denenecek.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Sunucu yanlış içerik aralığı döndürdü</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>%1 dosyası, yerel dosya adı çakışması nedeniyle indirilemiyor!</translation>
</message>
@@ -1334,14 +1342,19 @@ Kullanmanız önerilmez.</translation>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>%1 dosyası, yerel dosya adı çakışması nedeniyle indirilemiyor!</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Dosya tamamıyla indirilemedi.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
- <translation>Yerel bir dosya ismi ile çakıştığından, %1 dosyası kaydedilemedi.</translation>
+ <translation>Yerel bir dosya ismi ile çakıştığından, %1 dosyası kaydedilemedi!</translation>
</message>
</context>
<context>
@@ -1425,18 +1438,18 @@ Kullanmanız önerilmez.</translation>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Eşitleme sırasında yerel dosya değişti, tamamen ulaştıktan sonra bir kez eşitlenecek</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Eşitleme kullanıcı tarafından iptal edildi.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>Dosya yerel olarak düzenlendi ancak salt okunur paylaşımın bir parçası. Geri yüklendi ve düzenlemeniz çakışan dosyada.</translation>
</message>
@@ -1444,23 +1457,23 @@ Kullanmanız önerilmez.</translation>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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>Dosya yerel olarak düzenlendi ancak salt okunur paylaşımın bir parçası. Geri yüklendi ve düzenlemeniz çakışan dosyada.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Eşitleme sırasında yerel dosya kaldırıldı.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Eşitleme sırasında yerel dosya değişti.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Sunucu son yığını onaylamadı. (Mevcut e-etiket bulunamadı)</translation>
</message>
@@ -1538,17 +1551,30 @@ Kullanmanız önerilmez.</translation>
<translation>Eşitleme durumu panoya kopyalandı.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>Önceki hata koşullarından dolayı yoksayılmış dosya yok.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>Önceki hatalar nedeniyle hiçbir dosya yolsayılmadı ve süren bir indirme yok.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation><numerusform>%n dosya önceki hatalar nedeniyle yoksayıldı.
-Tekrar eşitleyi deneyin.em.</numerusform><numerusform>%n dosya önceki hatalar nedeniyle yoksayıldı.
-Tekrar eşitleyi deneyin.em.</numerusform></translation>
+</source>
+ <translation><numerusform>önceki hatalardan dolayı %n dosya yoksayıldı.
+</numerusform><numerusform>önceki hatalardan dolayı %n dosya yoksayıldı.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n dosya kısmen karşıya indirilebildi.
+</numerusform><numerusform>%n dosya kısmen karşıya indirilebildi.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Bunları tekrar eşitlemeyi deneyin.</translation>
</message>
</context>
<context>
@@ -1636,12 +1662,12 @@ Tekrar eşitleyi deneyin.em.</numerusform></translation>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Oturum Açma Hatası</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>%1 kullanıcısı olarak oturum açmalısınız</translation>
</message>
@@ -2016,7 +2042,7 @@ Tekrar eşitleyi deneyin.em.</numerusform></translation>
<message>
<location filename="../src/mirall/syncengine.cpp" line="183"/>
<source>The mounted directory is temporary not available on the server</source>
- <translation>Bağlanan dizin geçici olup sunucuda mevcut değildir</translation>
+ <translation>Bağlanan dizin geçici olarak sunucuda kullanılamıyor</translation>
</message>
<message>
<location filename="../src/mirall/syncengine.cpp" line="186"/>
@@ -2049,69 +2075,69 @@ Tekrar eşitleyi deneyin.em.</numerusform></translation>
<translation>Dosya, çapraz platform arasında eşitlenemeyecek karakterler içeriyor.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Bir eşitleme günlüğü başlatılamadı.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Eşitleme günlüğü açılamıyor</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>&quot;Eşitlenecekleri seçin&quot; kara listesinde olduğundan yoksayıldı.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Bu dizine alt dizin ekleme yetkiniz olmadığından izin verilmedi</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Üst dizin ekleme yetkiniz olmadığından izin verilmedi</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Bu dizine dosya ekleme yetkiniz olmadığından izin verilmedi</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Sunucuda salt okunur olduğundan, bu dosya yüklenemedi, geri alınıyor</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Kaldırmaya izin verilmedi, geri alınıyor</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Yerel dosyalar ve paylaşım klasörü kaldırıldı.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Taşımaya izin verilmedi, öge geri alındı</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>%1 salt okunur olduğundan taşımaya izin verilmedi</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>hedef</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>kaynak</translation>
</message>
@@ -2129,7 +2155,7 @@ Tekrar eşitleyi deneyin.em.</numerusform></translation>
<message>
<location filename="../src/mirall/theme.cpp" line="233"/>
<source>&lt;p&gt;Version %1 For more information please visit &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Distributed by %4 and licensed under the GNU General Public License (GPL) Version 2.0.&lt;br/&gt;%5 and the %5 logo are registered trademarks of %4 in the United States, other countries, or both.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Sürüm %1 Daha fazla bilgi için lütfen &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt; adresini ziyaret edin.&lt;/p&gt;&lt;p&gt;Telif hakkı ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Dağıtım %4 ve GNU Genel Kamu Lisansı (GPL) Sürüm 2.0 ile lisanslanmıştır olup &lt;br/&gt;%5 ve %5 logoları ABD ve/veya diğer ülkelerde %4 tescili markalarıdır.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Sürüm %1 Daha fazla bilgi için lütfen &lt;a href=&apos;%2&apos;&gt;%3&lt;/a&gt; adresini ziyaret edin.&lt;/p&gt;&lt;p&gt;Telif hakkı ownCloud, Inc.&lt;/p&gt;&lt;p&gt;%4 tarafından dağıtılmakta ve GNU Genel Kamu Lisansı (GPL) Sürüm 2.0 ile lisanslanmıştır olup &lt;br/&gt;%5 ve %5 logoları ABD ve/veya diğer ülkelerde %4 tescili markalarıdır.&lt;/p&gt;</translation>
</message>
</context>
<context>
@@ -2275,7 +2301,7 @@ Tekrar eşitleyi deneyin.em.</numerusform></translation>
<message utf8="true">
<location filename="../src/mirall/owncloudtheme.cpp" line="48"/>
<source>&lt;p&gt;Version %2. For more information visit &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.&lt;br/&gt;Based on Mirall by Duncan Mac-Vicar P.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Copyright ownCloud, Inc.&lt;/p&gt;&lt;p&gt;Licensed under the GNU General Public License (GPL) Version 2.0&lt;br/&gt;ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Sürüm %2. Daha fazla bilgi için lütfen &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt; adresini ziyaret edin.&lt;/p&gt;&lt;p&gt;&lt;small&gt;By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz ve diğerleri.&lt;br&gt;Duncan Mac-Vicar P. tarafından yazılmış Mirall tabanlıdır.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Telif hakkı ownCloud, Inc.&lt;/p&gt;&lt;p&gt;GNU Genel Kamu Lisansı (GPL) Sürüm 2.0 ile lisanslanmıştır.&lt;br&gt;ownCloud ve ownCloud logoları &lt;br&gt;ABD ve/veya diğer ülkelerde ownCloud, Inc.&apos;nin tescili markalarıdır.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Sürüm %2. Daha fazla bilgi için lütfen &lt;a href=&quot;%3&quot;&gt;%4&lt;/a&gt; adresini ziyaret edin.&lt;/p&gt;&lt;p&gt;&lt;small&gt;Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz ve diğerleri.&lt;br/&gt;Duncan Mac-Vicar P. tarafından yazılmış Mirall tabanlıdır.&lt;/small&gt;&lt;/p&gt;&lt;p&gt;Telif hakkı ownCloud, Inc.&lt;/p&gt;&lt;p&gt;GNU Genel Kamu Lisansı (GPL) Sürüm 2.0 ile lisanslanmıştır.&lt;br/&gt;ownCloud ve ownCloud logoları ABD ve/veya diğer ülkelerde ownCloud, Inc.&apos;nin tescili markalarıdır.&lt;/p&gt;</translation>
</message>
</context>
<context>
diff --git a/translations/mirall_uk.ts b/translations/mirall_uk.ts
index 61c5009a5..71e3ae99b 100644
--- a/translations/mirall_uk.ts
+++ b/translations/mirall_uk.ts
@@ -386,12 +386,12 @@ Total time left %5</source>
<translation>Журнал синхронізації</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation>Неможливо прочитати виключений системний файл</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -400,17 +400,17 @@ Are you sure you want to perform this operation?</source>
Ви дійсно бажаєте продовжити цю операцію?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>Видалити усі файли?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>Видалити усі файли</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>Зберегти файли</translation>
</message>
@@ -637,22 +637,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Не отримано E-Tag від серверу, перевірте мережеві налаштування (проксі, шлюз)</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Ми отримали інший E-Tag для відновлення. Спробуйте ще раз пізніше.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation>Сервер повернув невірний content-range</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>Тайм-аут З&apos;єднання</translation>
</message>
@@ -1113,8 +1113,16 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
- <translation>Не вдалося безпечно підключитися. Бажаєте підключитися без шифрування (не рекомендується)?</translation>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
+ <translation>Не вдалося безпечно підключитися.
+
+%1
+
+Бажаєте підключитися без шифрування (не рекомендується)?</translation>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="228"/>
@@ -1306,27 +1314,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>Синхронізація перервана користувачем.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>Не отримано E-Tag від серверу, перевірте мережеві налаштування (проксі, шлюз)</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>Ми отримали інший E-Tag для відновлення. Спробуйте ще раз пізніше.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation>Сервер повернув невірний content-range</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Файл %1 не завантажено, через локальний конфлікт ім&apos;я! </translation>
</message>
@@ -1334,14 +1342,19 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation>Файл %1 не завантажено, через локальний конфлікт ім&apos;я! </translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation>Файл не може бути завантажений повністю.</translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
- <translation type="unfinished"/>
+ <translation>Файл %1 не збережено, через локальний конфлікт ім&apos;я! </translation>
</message>
</context>
<context>
@@ -1375,12 +1388,12 @@ It is not advisable to use it.</source>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="68"/>
<source>Error removing &apos;%1&apos;: %2; </source>
- <translation type="unfinished"/>
+ <translation>Помилка при видалені &apos;%1&apos;: %2;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="79"/>
<source>Could not remove directory &apos;%1&apos;; </source>
- <translation type="unfinished"/>
+ <translation>Неможливо видалити теку &apos;%1&apos;;</translation>
</message>
<message>
<location filename="../src/mirall/propagatorjobs.cpp" line="94"/>
@@ -1425,18 +1438,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation>Локальний файл змінився під час синхронізації, повторюємо процес</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>Синхронізація перервана користувачем.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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>
@@ -1444,23 +1457,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation>Локальний файл було видалено під час синхронізації.</translation>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>Локальний файл змінився під час синхронізації.</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation>Сервер не зміг підтвердити останній відрізок даних. (Були відсутні e-tag)</translation>
</message>
@@ -1538,15 +1551,32 @@ It is not advisable to use it.</source>
<translation>Протокол синхронізації був скопійований в буфер обміну.</translation>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
- <translation>На даний час, проігноровані файли відсутні через помилки.</translation>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
+ <translation>На даний час жоден файл не ігнорується, через попередні помилки, та немає активних завантажень.</translation>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+</source>
+ <translation><numerusform>%n файл проігноровано, через попередні помилки.
+</numerusform><numerusform>%n файлів проігноровано, через попередні помилки.
+</numerusform><numerusform>%n файлів проігноровано, через попередні помилки.
+</numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation><numerusform>%n файл частково завантажений.
+</numerusform><numerusform>%n файли частково завантажені.
+</numerusform><numerusform>%n файли частково завантажені.
+</numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation>Спробуйте синхронізувати ще раз.</translation>
</message>
</context>
<context>
@@ -1559,7 +1589,7 @@ It is not advisable to use it.</source>
<message>
<location filename="../src/mirall/selectivesyncdialog.cpp" line="274"/>
<source>Unchecked folders will be &lt;b&gt;removed&lt;/b&gt; from your local file system and will not be synchronized to this computer anymore</source>
- <translation type="unfinished"/>
+ <translation>Не позначені теки будуть &lt;b&gt;видалені&lt;/b&gt; з вашої системи та більше не будуть синхронізуватися</translation>
</message>
</context>
<context>
@@ -1634,12 +1664,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>Помилка входу</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation>Ви маєте увійти як %1</translation>
</message>
@@ -2014,7 +2044,7 @@ It is not advisable to use it.</source>
<message>
<location filename="../src/mirall/syncengine.cpp" line="183"/>
<source>The mounted directory is temporary not available on the server</source>
- <translation type="unfinished"/>
+ <translation>Змонтована тека тимчасово недоступна на сервері</translation>
</message>
<message>
<location filename="../src/mirall/syncengine.cpp" line="186"/>
@@ -2047,69 +2077,69 @@ It is not advisable to use it.</source>
<translation>Файл містить недопустимі символи, через це синхронізація між платформами неможлива.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>Не вдалося ініціалізувати протокол синхронізації.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>Не вдається відкрити протокол синхронізації</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation>Ігнорується через чорний список в &quot;обрати що синхронізувати&quot;</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation>Не дозволено через відсутність прав на додавання підкаталогів в цій теці.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation>Не дозволено через відсутність прав на додавання батьківської теки.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation>Не дозволено через відсутність прав на додавання файлів в цю теку.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation>Не дозволено завантажувати цей файл, оскільки він має дозвіл лише на перегляд, відновлюємо</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation>Не дозволено видаляти, відновлюємо</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation>Локальні файли та теки в загальному доступі було видалено.</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation>Переміщення не дозволено, елемент відновлено </translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation>Переміщення не дозволено, оскільки %1 помічений тільки для перегляду</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation>призначення</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation>джерело</translation>
</message>
diff --git a/translations/mirall_zh_CN.ts b/translations/mirall_zh_CN.ts
index 39b739602..bd3f8c8c7 100644
--- a/translations/mirall_zh_CN.ts
+++ b/translations/mirall_zh_CN.ts
@@ -385,12 +385,12 @@ Total time left %5</source>
<translation>同步活动</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
@@ -399,17 +399,17 @@ Are you sure you want to perform this operation?</source>
你确定执行该操作吗?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>删除所有文件?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>删除所有文件</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>保持所有文件</translation>
</message>
@@ -636,22 +636,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>未能收到来自服务器的 E-Tag,请检查代理/网关</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>我们收到了不同的恢复 E-Tag,将在下次尝试。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation>连接超时</translation>
</message>
@@ -1110,7 +1110,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"/>
</message>
<message>
@@ -1303,27 +1307,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation>同步被用户撤销。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation>未能收到来自服务器的 E-Tag,请检查代理/网关</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation>我们收到了不同的恢复 E-Tag,将在下次尝试。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1331,12 +1335,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1422,18 +1431,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation>同步被用户撤销。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1441,23 +1450,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation>本地文件在同步时已修改。</translation>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1535,16 +1544,27 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1631,12 +1651,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation>登录错误</translation>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2044,69 +2064,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation>无法初始化同步日志</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation>无法打开同步日志</translation>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"/>
</message>
diff --git a/translations/mirall_zh_TW.ts b/translations/mirall_zh_TW.ts
index 8cbffb9f5..0d1a0e49b 100644
--- a/translations/mirall_zh_TW.ts
+++ b/translations/mirall_zh_TW.ts
@@ -385,29 +385,29 @@ Total time left %5</source>
<translation>同步啟用</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="721"/>
+ <location filename="../src/mirall/folder.cpp" line="743"/>
<source>Could not read system exclude file</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="941"/>
+ <location filename="../src/mirall/folder.cpp" line="963"/>
<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 file were manually removed.
Are you sure you want to perform this operation?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="945"/>
+ <location filename="../src/mirall/folder.cpp" line="967"/>
<source>Remove All Files?</source>
<translation>移除所有檔案?</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="947"/>
+ <location filename="../src/mirall/folder.cpp" line="969"/>
<source>Remove all files</source>
<translation>移除所有檔案</translation>
</message>
<message>
- <location filename="../src/mirall/folder.cpp" line="948"/>
+ <location filename="../src/mirall/folder.cpp" line="970"/>
<source>Keep files</source>
<translation>保留檔案</translation>
</message>
@@ -634,22 +634,22 @@ Are you sure you want to perform this operation?</source>
<context>
<name>Mirall::GETFileJob</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="506"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="507"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="513"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="514"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="540"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="541"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="579"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="580"/>
<source>Connection Timeout</source>
<translation type="unfinished"/>
</message>
@@ -1106,7 +1106,11 @@ It is not advisable to use it.</source>
</message>
<message>
<location filename="../src/wizard/owncloudsetuppage.cpp" line="227"/>
- <source>Could not connect securely. Do you want to connect unencrypted instead (not recommended)?</source>
+ <source>Could not connect securely:
+
+%1
+
+Do you want to connect unencrypted instead (not recommended)?</source>
<translation type="unfinished"/>
</message>
<message>
@@ -1299,27 +1303,27 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="357"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="363"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="410"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
<source>No E-Tag received from server, check Proxy/Gateway</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="416"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="422"/>
<source>We received a different E-Tag for resuming. Retrying next time.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="438"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="444"/>
<source>Server returned wrong content-range</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="489"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="495"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1327,12 +1331,17 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateDownloadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="593"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="594"/>
<source>File %1 can not be downloaded because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="777"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="757"/>
+ <source>The file could not be downloaded completely.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="793"/>
<source>File %1 cannot be saved because of a local file name clash!</source>
<translation type="unfinished"/>
</message>
@@ -1418,18 +1427,18 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileLegacy</name>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="165"/>
- <location filename="../src/mirall/propagator_legacy.cpp" line="224"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="171"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="230"/>
<source>Local file changed during sync, syncing once it arrived completely</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="168"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
<source>Sync was aborted by user.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_legacy.cpp" line="174"/>
+ <location filename="../src/mirall/propagator_legacy.cpp" line="180"/>
<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"/>
</message>
@@ -1437,23 +1446,23 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::PropagateUploadFileQNAM</name>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="296"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="297"/>
<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"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="327"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="328"/>
<source>The local file was removed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/mirall/propagator_qnam.cpp" line="130"/>
- <location filename="../src/mirall/propagator_qnam.cpp" line="340"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="341"/>
<source>Local file changed during sync.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/propagator_qnam.cpp" line="350"/>
+ <location filename="../src/mirall/propagator_qnam.cpp" line="351"/>
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
<translation type="unfinished"/>
</message>
@@ -1531,16 +1540,27 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/protocolwidget.cpp" line="255"/>
- <source>Currently no files are ignored because of previous errors.</source>
+ <location filename="../src/mirall/protocolwidget.cpp" line="262"/>
+ <source>Currently no files are ignored because of previous errors and no downloads are in progress.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../src/mirall/protocolwidget.cpp" line="257"/>
+ <location filename="../src/mirall/protocolwidget.cpp" line="265"/>
<source>%n files are ignored because of previous errors.
- Try to sync these again.</source>
+</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
+ <message numerus="yes">
+ <location filename="../src/mirall/protocolwidget.cpp" line="266"/>
+ <source>%n files are partially downloaded.
+</source>
+ <translation type="unfinished"><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../src/mirall/protocolwidget.cpp" line="267"/>
+ <source>Try to sync these again.</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>Mirall::SelectiveSyncDialog</name>
@@ -1627,12 +1647,12 @@ It is not advisable to use it.</source>
<context>
<name>Mirall::ShibbolethCredentials</name>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>Login Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/creds/shibbolethcredentials.cpp" line="285"/>
+ <location filename="../src/creds/shibbolethcredentials.cpp" line="297"/>
<source>You must sign in as user %1</source>
<translation type="unfinished"/>
</message>
@@ -2038,69 +2058,69 @@ It is not advisable to use it.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="547"/>
+ <location filename="../src/mirall/syncengine.cpp" line="560"/>
<source>Unable to initialize a sync journal.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="628"/>
+ <location filename="../src/mirall/syncengine.cpp" line="641"/>
<source>Cannot open the sync journal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="860"/>
- <location filename="../src/mirall/syncengine.cpp" line="867"/>
+ <location filename="../src/mirall/syncengine.cpp" line="873"/>
+ <location filename="../src/mirall/syncengine.cpp" line="880"/>
<source>Ignored because of the &quot;choose what to sync&quot; blacklist</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="885"/>
+ <location filename="../src/mirall/syncengine.cpp" line="898"/>
<source>Not allowed because you don&apos;t have permission to add sub-directories in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="891"/>
+ <location filename="../src/mirall/syncengine.cpp" line="904"/>
<source>Not allowed because you don&apos;t have permission to add parent directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="898"/>
+ <location filename="../src/mirall/syncengine.cpp" line="911"/>
<source>Not allowed because you don&apos;t have permission to add files in that directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="918"/>
+ <location filename="../src/mirall/syncengine.cpp" line="931"/>
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="935"/>
- <location filename="../src/mirall/syncengine.cpp" line="955"/>
+ <location filename="../src/mirall/syncengine.cpp" line="948"/>
+ <location filename="../src/mirall/syncengine.cpp" line="968"/>
<source>Not allowed to remove, restoring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="970"/>
+ <location filename="../src/mirall/syncengine.cpp" line="983"/>
<source>Local files and share folder removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1025"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1038"/>
<source>Move not allowed, item restored</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1034"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1047"/>
<source>Move not allowed because %1 is read-only</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the destination</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../src/mirall/syncengine.cpp" line="1035"/>
+ <location filename="../src/mirall/syncengine.cpp" line="1048"/>
<source>the source</source>
<translation type="unfinished"/>
</message>