summaryrefslogtreecommitdiff
path: root/plugins-alternative/CopyEngine
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2017-11-24 23:24:09 +0000
committerThomas Preud'homme <robotux@celest.fr>2017-11-24 23:24:09 +0000
commitb3c8bdcc0d1e4b2ab298847a7902b6d60410a5bc (patch)
tree8fce8a51adfb245db8ab2a76831661780c0c713e /plugins-alternative/CopyEngine
parente297dbd8052ef4e66f069e2dd1865ae7fa8af28e (diff)
New upstream version 1.2.3.6
Diffstat (limited to 'plugins-alternative/CopyEngine')
-rw-r--r--plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp94
-rw-r--r--plugins-alternative/CopyEngine/Rsync/AvancedQFile.h32
-rw-r--r--plugins-alternative/CopyEngine/Rsync/CompilerInfo.h1
-rw-r--r--plugins-alternative/CopyEngine/Rsync/DebugEngineMacro.h25
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Environment.h12
-rw-r--r--plugins-alternative/CopyEngine/Rsync/FilterRules.cpp193
-rw-r--r--plugins-alternative/CopyEngine/Rsync/FilterRules.h46
-rw-r--r--plugins-alternative/CopyEngine/Rsync/FilterRules.ui162
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Filters.cpp456
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Filters.h44
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Filters.ui194
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts810
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts806
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts806
-rwxr-xr-xplugins-alternative/CopyEngine/Rsync/ListThread.cpp1720
-rwxr-xr-xplugins-alternative/CopyEngine/Rsync/ListThread.h376
-rw-r--r--plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp66
-rw-r--r--plugins-alternative/CopyEngine/Rsync/MkPath.cpp100
-rw-r--r--plugins-alternative/CopyEngine/Rsync/MkPath.h56
-rw-r--r--plugins-alternative/CopyEngine/Rsync/ReadThread.cpp597
-rw-r--r--plugins-alternative/CopyEngine/Rsync/ReadThread.h144
-rw-r--r--plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp85
-rw-r--r--plugins-alternative/CopyEngine/Rsync/RenamingRules.h34
-rw-r--r--plugins-alternative/CopyEngine/Rsync/RenamingRules.ui129
-rw-r--r--plugins-alternative/CopyEngine/Rsync/RmPath.cpp179
-rw-r--r--plugins-alternative/CopyEngine/Rsync/RmPath.h58
-rw-r--r--plugins-alternative/CopyEngine/Rsync/StructEnumDefinition.h1
-rw-r--r--plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h90
-rw-r--r--plugins-alternative/CopyEngine/Rsync/TransferThread.cpp1252
-rw-r--r--plugins-alternative/CopyEngine/Rsync/TransferThread.h221
-rw-r--r--plugins-alternative/CopyEngine/Rsync/Variable.h35
-rw-r--r--plugins-alternative/CopyEngine/Rsync/WriteThread.cpp508
-rw-r--r--plugins-alternative/CopyEngine/Rsync/WriteThread.h138
-rw-r--r--plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp565
-rwxr-xr-xplugins-alternative/CopyEngine/Rsync/copyEngine.cpp819
-rwxr-xr-xplugins-alternative/CopyEngine/Rsync/copyEngine.h362
-rw-r--r--plugins-alternative/CopyEngine/Rsync/copyEngine.pro82
-rw-r--r--plugins-alternative/CopyEngine/Rsync/debugDialog.cpp70
-rw-r--r--plugins-alternative/CopyEngine/Rsync/debugDialog.h40
-rw-r--r--plugins-alternative/CopyEngine/Rsync/debugDialog.ui100
-rwxr-xr-xplugins-alternative/CopyEngine/Rsync/documentation.dox42
-rw-r--r--plugins-alternative/CopyEngine/Rsync/factory.cpp420
-rw-r--r--plugins-alternative/CopyEngine/Rsync/factory.h96
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp95
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h45
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui220
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp189
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h58
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui367
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp156
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h56
-rw-r--r--plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui192
-rw-r--r--plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp143
-rw-r--r--plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h54
-rw-r--r--plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui282
-rw-r--r--plugins-alternative/CopyEngine/Rsync/informations.xml27
-rw-r--r--plugins-alternative/CopyEngine/Rsync/options.ui328
-rw-r--r--plugins-alternative/CopyEngine/Rsync/resources.qrc8
-rw-r--r--plugins-alternative/CopyEngine/Rsync/resources/add.pngbin564 -> 0 bytes
-rw-r--r--plugins-alternative/CopyEngine/Rsync/resources/edit.pngbin563 -> 0 bytes
-rw-r--r--plugins-alternative/CopyEngine/Rsync/resources/filter.pngbin429 -> 0 bytes
-rw-r--r--plugins-alternative/CopyEngine/Rsync/resources/remove.pngbin722 -> 0 bytes
-rw-r--r--plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp511
-rw-r--r--plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h91
79 files changed, 0 insertions, 26978 deletions
diff --git a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp b/plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp
deleted file mode 100644
index af5805b..0000000
--- a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/** \file AvancedQFile.cpp
-\brief Define the QFile herited class to set file date/time
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include "AvancedQFile.h"
-
-#ifdef Q_CC_GNU
-//this next header is needed to change file time/date under gcc
-#include <utime.h>
-#include <errno.h>
-#endif
-
-//source
-//hSrc=CreateFile(pData->pfiSrcFile->GetFullFilePath(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | (bNoBuffer ? FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH : 0), NULL);
-//destination
-//hDst=CreateFile(pData->strDstFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | (bNoBuffer ? FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH : 0), NULL);
-
-bool AvancedQFile::setCreated(QDateTime time)
-{
- time_t ctime=time.toTime_t();
- #ifdef Q_CC_GNU
- //creation time not exists into unix world
- Q_UNUSED(ctime)
- return true;
- #else
- setErrorString(tr("Not supported on this platform"));
- return false;
- #endif
-}
-
-bool AvancedQFile::setLastModified(QDateTime time)
-{
- time_t actime=QFileInfo(*this).lastRead().toTime_t();
- //protect to wrong actime
- if(actime<0)
- actime=0;
- time_t modtime=time.toTime_t();
- if(modtime<0)
- {
- setErrorString(tr("Last modified date is wrong"));
- return false;
- }
- #ifdef Q_CC_GNU
- //this function avalaible on unix and mingw
- utimbuf butime;
- butime.actime=actime;
- butime.modtime=modtime;
- int returnVal=utime(this->fileName().toLocal8Bit().data(),&butime);
- if(returnVal==0)
- return true;
- else
- {
- setErrorString(strerror(errno));
- return false;
- }
- #else
- setErrorString(tr("Not supported on this platform"));
- return false;
- #endif
-}
-
-bool AvancedQFile::setLastRead(QDateTime time)
-{
- time_t modtime=QFileInfo(*this).lastModified().toTime_t();
- //protect to wrong actime
- if(modtime<0)
- modtime=0;
- time_t actime=time.toTime_t();
- if(actime<0)
- {
- setErrorString(tr("Last access date is wrong"));
- return false;
- }
- #ifdef Q_CC_GNU
- //this function avalaible on unix and mingw
- utimbuf butime;
- butime.actime=actime;
- butime.modtime=modtime;
- int returnVal=utime(this->fileName().toLocal8Bit().data(),&butime);
- if(returnVal==0)
- return true;
- else
- {
- setErrorString(strerror(errno));
- return false;
- }
- #else
- setErrorString(tr("Not supported on this platform"));
- return false;
- #endif
-}
-
diff --git a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.h b/plugins-alternative/CopyEngine/Rsync/AvancedQFile.h
deleted file mode 100644
index 284cf02..0000000
--- a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/** \file AvancedQFile.h
-\brief Define the QFile herited class to set file date/time
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#ifndef AVANCEDQFILE_H
-#define AVANCEDQFILE_H
-
-#include <QFile>
-#include <QDateTime>
-#include <QFileInfo>
-
-/// \brief devired class from QFile to set time/date on file
-class AvancedQFile : public QFile
-{
- Q_OBJECT
-public:
- /// \brief set created date, not exists in unix world
- bool setCreated(QDateTime time);
- /// \brief set last modification date
- bool setLastModified(QDateTime time);
- /// \brief set last read date
- bool setLastRead(QDateTime time);
-
-/* //fileName
- void close();
- bool open ( FILE * fh, OpenMode mode )
- bool open ( int fd, OpenMode mode )*/
-};
-
-#endif // AVANCEDQFILE_H
diff --git a/plugins-alternative/CopyEngine/Rsync/CompilerInfo.h b/plugins-alternative/CopyEngine/Rsync/CompilerInfo.h
deleted file mode 100644
index 84625b9..0000000
--- a/plugins-alternative/CopyEngine/Rsync/CompilerInfo.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../../CompilerInfo.h"
diff --git a/plugins-alternative/CopyEngine/Rsync/DebugEngineMacro.h b/plugins-alternative/CopyEngine/Rsync/DebugEngineMacro.h
deleted file mode 100644
index ad08d4f..0000000
--- a/plugins-alternative/CopyEngine/Rsync/DebugEngineMacro.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/** \file DebugEngineMacro.h
-\brief Define the macro for the debug
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#ifndef DEBUGENGINEMACRO_H
-#define DEBUGENGINEMACRO_H
-
-/// \brief Macro for the debug log
-#ifdef ULTRACOPIER_PLUGIN_DEBUG
- #if defined (__FILE__) && defined (__LINE__)
- #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b,__FILE__,__LINE__)
- #else
- #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b)
- #endif
-#else // ULTRACOPIER_PLUGIN_DEBUG
- #define ULTRACOPIER_DEBUGCONSOLE(a,b) void()
-#endif // ULTRACOPIER_PLUGIN_DEBUG
-
-#endif // DEBUGENGINEMACRO_H
-
-
-
-
diff --git a/plugins-alternative/CopyEngine/Rsync/Environment.h b/plugins-alternative/CopyEngine/Rsync/Environment.h
deleted file mode 100644
index 7ac6f16..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Environment.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/** \file Environment.h
-\brief Define the environment variable and global function
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include "Variable.h"
-/// \brief The global include
-#include "StructEnumDefinition.h"
-#include "StructEnumDefinition_CopyEngine.h"
-#include "DebugEngineMacro.h"
-#include "CompilerInfo.h"
diff --git a/plugins-alternative/CopyEngine/Rsync/FilterRules.cpp b/plugins-alternative/CopyEngine/Rsync/FilterRules.cpp
deleted file mode 100644
index 0e6ba25..0000000
--- a/plugins-alternative/CopyEngine/Rsync/FilterRules.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "FilterRules.h"
-#include "ui_FilterRules.h"
-
-#include <QMessageBox>
-
-FilterRules::FilterRules(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::FilterRules)
-{
- ui->setupUi(this);
- updateChecking();
- haveBeenValided=false;
-}
-
-FilterRules::~FilterRules()
-{
- delete ui;
-}
-
-bool FilterRules::getIsValid()
-{
- return isValid && haveBeenValided;
-}
-
-QString FilterRules::get_search_text()
-{
- return ui->search->text();
-}
-
-SearchType FilterRules::get_search_type()
-{
- switch(ui->search_type->currentIndex())
- {
- case 0:
- return SearchType_rawText;
- case 1:
- return SearchType_simpleRegex;
- case 2:
- return SearchType_perlRegex;
- }
- return SearchType_simpleRegex;
-}
-
-ApplyOn FilterRules::get_apply_on()
-{
- switch(ui->apply_on->currentIndex())
- {
- case 0:
- return ApplyOn_file;
- case 1:
- return ApplyOn_fileAndFolder;
- case 2:
- return ApplyOn_folder;
- }
- return ApplyOn_fileAndFolder;
-}
-
-bool FilterRules::get_need_match_all()
-{
- return ui->need_match_all->isChecked();
-}
-
-void FilterRules::set_search_text(QString search_text)
-{
- ui->search->setText(search_text);
-}
-
-void FilterRules::set_search_type(SearchType search_type)
-{
- switch(search_type)
- {
- case SearchType_rawText:
- ui->search_type->setCurrentIndex(0);
- break;
- case SearchType_simpleRegex:
- ui->search_type->setCurrentIndex(1);
- break;
- case SearchType_perlRegex:
- ui->search_type->setCurrentIndex(2);
- break;
- }
-}
-
-void FilterRules::set_apply_on(ApplyOn apply_on)
-{
- switch(apply_on)
- {
- case ApplyOn_file:
- ui->apply_on->setCurrentIndex(0);
- break;
- case ApplyOn_fileAndFolder:
- ui->apply_on->setCurrentIndex(1);
- break;
- case ApplyOn_folder:
- ui->apply_on->setCurrentIndex(2);
- break;
- }
-}
-
-void FilterRules::set_need_match_all(bool need_match_all)
-{
- ui->need_match_all->setChecked(need_match_all);
-}
-
-void FilterRules::on_search_textChanged(const QString &arg1)
-{
- Q_UNUSED(arg1);
- updateChecking();
-}
-
-void FilterRules::updateChecking()
-{
- QRegExp regex;
- isValid=!ui->search->text().isEmpty();
- if(isValid)
- {
- QString tempString;
- if(ui->search_type->currentIndex()==0)
- {
- tempString=QRegExp::escape(ui->search->text());
- if(tempString.contains('/') || tempString.contains('\\'))
- isValid=false;
- }
- else if(ui->search_type->currentIndex()==1)
- {
- tempString=QRegExp::escape(ui->search->text());
- tempString.replace("\\*","[^\\\\/]*");
- }
- else if(ui->search_type->currentIndex()==2)
- {
- tempString=ui->search->text();
- if(tempString.startsWith('^') && tempString.endsWith('$'))
- {
- ui->need_match_all->setChecked(true);
- tempString.remove(QRegExp("^\\^"));
- tempString.remove(QRegExp("\\$$"));
- ui->search->setText(tempString);
- }
- }
- if(isValid)
- {
- if(ui->need_match_all->isChecked())
- tempString="^"+tempString+"$";
- regex=QRegExp(tempString);
- isValid=regex.isValid() && !regex.isEmpty();
- }
- }
-
- ui->isValid->setChecked(isValid);
- ui->testString->setEnabled(isValid);
- ui->label_test_string->setEnabled(isValid);
- ui->matched->setEnabled(isValid);
- ui->matched->setChecked(isValid && ui->testString->text().contains(regex));
- ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(isValid);
-}
-
-void FilterRules::on_isValid_clicked()
-{
- updateChecking();
-}
-
-void FilterRules::on_testString_textChanged(const QString &arg1)
-{
- Q_UNUSED(arg1);
- updateChecking();
-}
-
-void FilterRules::on_matched_clicked()
-{
- updateChecking();
-}
-
-void FilterRules::on_search_type_currentIndexChanged(int index)
-{
- Q_UNUSED(index);
- updateChecking();
-}
-
-void FilterRules::on_need_match_all_clicked()
-{
- updateChecking();
-}
-
-void FilterRules::on_buttonBox_clicked(QAbstractButton *button)
-{
- if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::RejectRole)
- reject();
- else
- {
- haveBeenValided=true;
- accept();
- }
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/FilterRules.h b/plugins-alternative/CopyEngine/Rsync/FilterRules.h
deleted file mode 100644
index f06f0cb..0000000
--- a/plugins-alternative/CopyEngine/Rsync/FilterRules.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef FILTERRULES_H
-#define FILTERRULES_H
-
-#include <QDialog>
-#include <QAbstractButton>
-#include <QPushButton>
-
-#include "StructEnumDefinition_CopyEngine.h"
-
-namespace Ui {
-class FilterRules;
-}
-
-/** All the filter rules to include/exclude some file during the listing */
-class FilterRules : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit FilterRules(QWidget *parent = 0);
- ~FilterRules();
- bool getIsValid();
- QString get_search_text();
- SearchType get_search_type();
- ApplyOn get_apply_on();
- bool get_need_match_all();
- void set_search_text(QString search_text);
- void set_search_type(SearchType search_type);
- void set_apply_on(ApplyOn apply_on);
- void set_need_match_all(bool need_match_all);
-private slots:
- void on_search_textChanged(const QString &arg1);
- void on_isValid_clicked();
- void on_testString_textChanged(const QString &arg1);
- void on_matched_clicked();
- void on_search_type_currentIndexChanged(int index);
- void on_need_match_all_clicked();
- void on_buttonBox_clicked(QAbstractButton *button);
-private:
- Ui::FilterRules *ui;
- void updateChecking();
- bool isValid;
- bool haveBeenValided;
-};
-
-#endif // FILTERRULES_H
diff --git a/plugins-alternative/CopyEngine/Rsync/FilterRules.ui b/plugins-alternative/CopyEngine/Rsync/FilterRules.ui
deleted file mode 100644
index fad35cd..0000000
--- a/plugins-alternative/CopyEngine/Rsync/FilterRules.ui
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>FilterRules</class>
- <widget class="QDialog" name="FilterRules">
- <property name="windowModality">
- <enum>Qt::WindowModal</enum>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>289</width>
- <height>231</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Filters dialog</string>
- </property>
- <property name="windowIcon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/filter.png</normaloff>:/resources/filter.png</iconset>
- </property>
- <layout class="QGridLayout" name="gridLayout_2">
- <property name="margin">
- <number>1</number>
- </property>
- <property name="spacing">
- <number>1</number>
- </property>
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Search:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLineEdit" name="search"/>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Search type:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QComboBox" name="search_type">
- <item>
- <property name="text">
- <string>Raw text</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Simplified regex</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Perl's regex</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Apply on:</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QComboBox" name="apply_on">
- <item>
- <property name="text">
- <string>File</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Folder</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>File and folder</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="3" column="0" colspan="2">
- <widget class="QCheckBox" name="need_match_all">
- <property name="text">
- <string>All string need match</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0" colspan="2">
- <widget class="QGroupBox" name="groupBoxChecking">
- <property name="title">
- <string>Checking</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0" colspan="2">
- <widget class="QCheckBox" name="isValid">
- <property name="text">
- <string>The regex is valid</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_test_string">
- <property name="text">
- <string>Test string:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLineEdit" name="testString"/>
- </item>
- <item row="2" column="0" colspan="2">
- <widget class="QCheckBox" name="matched">
- <property name="text">
- <string>The test string match with the regex</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="5" column="0" colspan="2">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>68</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources>
- <include location="resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/Filters.cpp b/plugins-alternative/CopyEngine/Rsync/Filters.cpp
deleted file mode 100644
index ce87b52..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Filters.cpp
+++ /dev/null
@@ -1,456 +0,0 @@
-#include "Filters.h"
-#include "ui_Filters.h"
-
-#include <QMessageBox>
-
-Filters::Filters(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::Filters)
-{
- ui->setupUi(this);
-}
-
-Filters::~Filters()
-{
- delete ui;
-}
-
-void Filters::setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions)
-{
- if(includeStrings.size()!=includeOptions.size() || excludeStrings.size()!=excludeOptions.size())
- return;
- Filters_rules new_item;
-
- include.clear();
- int index=0;
- while(index<includeStrings.size())
- {
- new_item.search_text=includeStrings.at(index);
- QStringList options=includeOptions.at(index).split(";");
- new_item.need_match_all=false;
- new_item.search_type=SearchType_rawText;
- new_item.apply_on=ApplyOn_fileAndFolder;
-
- if(options.contains("SearchType_simpleRegex"))
- new_item.search_type=SearchType_simpleRegex;
- if(options.contains("SearchType_perlRegex"))
- new_item.search_type=SearchType_perlRegex;
- if(options.contains("ApplyOn_file"))
- new_item.apply_on=ApplyOn_file;
- if(options.contains("ApplyOn_folder"))
- new_item.apply_on=ApplyOn_folder;
- if(options.contains("need_match_all"))
- new_item.need_match_all=true;
-
- if(convertToRegex(new_item))
- include << new_item;
-
- index++;
- }
-
- exclude.clear();
- index=0;
- while(index<excludeStrings.size())
- {
- new_item.search_text=excludeStrings.at(index);
- QStringList options=excludeOptions.at(index).split(";");
- new_item.need_match_all=false;
- new_item.search_type=SearchType_rawText;
- new_item.apply_on=ApplyOn_fileAndFolder;
-
- if(options.contains("SearchType_simpleRegex"))
- new_item.search_type=SearchType_simpleRegex;
- if(options.contains("SearchType_perlRegex"))
- new_item.search_type=SearchType_perlRegex;
- if(options.contains("ApplyOn_file"))
- new_item.apply_on=ApplyOn_file;
- if(options.contains("ApplyOn_folder"))
- new_item.apply_on=ApplyOn_folder;
- if(options.contains("need_match_all"))
- new_item.need_match_all=true;
-
- if(convertToRegex(new_item))
- exclude << new_item;
-
- index++;
- }
-
- reShowAll();
-}
-
-void Filters::reShowAll()
-{
- ui->inclusion->clear();
- int index=0;
- while(index<include.size())
- {
- QString entryShow=include.at(index).search_text+" (";
- QStringList optionsToShow;
- switch(include.at(index).search_type)
- {
- case SearchType_rawText:
- optionsToShow << tr("Raw text");
- break;
- case SearchType_simpleRegex:
- optionsToShow << tr("Simplified regex");
- break;
- case SearchType_perlRegex:
- optionsToShow << tr("Perl's regex");
- break;
- default:
- break;
- }
- switch(include.at(index).apply_on)
- {
- case ApplyOn_file:
- optionsToShow << tr("Only on file");
- break;
- case ApplyOn_folder:
- optionsToShow << tr("Only on folder");
- break;
- default:
- break;
- }
- if(include.at(index).need_match_all)
- optionsToShow << tr("Full match");
- entryShow+=optionsToShow.join(",");
- entryShow+=")";
- ui->inclusion->addItem(new QListWidgetItem(entryShow));
- index++;
- }
- ui->exclusion->clear();
- index=0;
- while(index<exclude.size())
- {
- QString entryShow=exclude.at(index).search_text+" (";
- QStringList optionsToShow;
- switch(exclude.at(index).search_type)
- {
- case SearchType_rawText:
- optionsToShow << tr("Raw text");
- break;
- case SearchType_simpleRegex:
- optionsToShow << tr("Simplified regex");
- break;
- case SearchType_perlRegex:
- optionsToShow << tr("Perl's regex");
- break;
- default:
- break;
- }
- switch(exclude.at(index).apply_on)
- {
- case ApplyOn_file:
- optionsToShow << tr("Only on file");
- break;
- case ApplyOn_folder:
- optionsToShow << tr("Only on folder");
- break;
- default:
- break;
- }
- if(exclude.at(index).need_match_all)
- optionsToShow << tr("Full match");
- entryShow+=optionsToShow.join(",");
- entryShow+=")";
- ui->exclusion->addItem(new QListWidgetItem(entryShow));
- index++;
- }
-}
-
-QList<Filters_rules> Filters::getInclude()
-{
- return include;
-}
-
-QList<Filters_rules> Filters::getExclude()
-{
- return exclude;
-}
-
-void Filters::newLanguageLoaded()
-{
- ui->retranslateUi(this);
- reShowAll();
-}
-
-void Filters::haveNewFilters()
-{
- QStringList includeStrings,includeOptions,excludeStrings,excludeOptions;
- int index=0;
- while(index<include.size())
- {
- includeStrings<<include.at(index).search_text;
- QStringList optionsToShow;
-
- switch(include.at(index).search_type)
- {
- case SearchType_rawText:
- optionsToShow << "SearchType_rawText";
- break;
- case SearchType_simpleRegex:
- optionsToShow << "SearchType_simpleRegex";
- break;
- case SearchType_perlRegex:
- optionsToShow << "SearchType_perlRegex";
- break;
- default:
- break;
- }
- switch(include.at(index).apply_on)
- {
- case ApplyOn_file:
- optionsToShow << "ApplyOn_file";
- break;
- case ApplyOn_fileAndFolder:
- optionsToShow << "ApplyOn_fileAndFolder";
- break;
- case ApplyOn_folder:
- optionsToShow << "ApplyOn_folder";
- break;
- default:
- break;
- }
- if(include.at(index).need_match_all)
- optionsToShow << tr("Full match");
- includeOptions<<optionsToShow.join(";");
- index++;
- }
- index=0;
- while(index<exclude.size())
- {
- excludeStrings<<exclude.at(index).search_text;
- QStringList optionsToShow;
-
- switch(exclude.at(index).search_type)
- {
- case SearchType_rawText:
- optionsToShow << "SearchType_rawText";
- break;
- case SearchType_simpleRegex:
- optionsToShow << "SearchType_simpleRegex";
- break;
- case SearchType_perlRegex:
- optionsToShow << "SearchType_perlRegex";
- break;
- default:
- break;
- }
- switch(exclude.at(index).apply_on)
- {
- case ApplyOn_file:
- optionsToShow << "ApplyOn_file";
- break;
- case ApplyOn_fileAndFolder:
- optionsToShow << "ApplyOn_fileAndFolder";
- break;
- case ApplyOn_folder:
- optionsToShow << "ApplyOn_folder";
- break;
- default:
- break;
- }
- if(exclude.at(index).need_match_all)
- optionsToShow << tr("Full match");
- excludeOptions<<optionsToShow.join(";");
- index++;
- }
- emit sendNewFilters(includeStrings,includeOptions,excludeStrings,excludeOptions);
-}
-
-bool Filters::convertToRegex(Filters_rules &item)
-{
- bool isValid=!item.search_text.isEmpty();
- if(isValid)
- {
- QRegExp regex;
- QString tempString;
- if(item.search_type==SearchType_rawText)
- {
- tempString=QRegExp::escape(item.search_text);
- if(tempString.contains('/') || tempString.contains('\\'))
- isValid=false;
- }
- else if(item.search_type==SearchType_simpleRegex)
- {
- tempString=QRegExp::escape(item.search_text);
- tempString.replace("\\*","[^\\\\/]*");
- }
- else if(item.search_type==SearchType_perlRegex)
- {
- tempString=item.search_text;
- if(tempString.startsWith('^') && tempString.endsWith('$'))
- {
- item.need_match_all=true;
- tempString.remove(QRegExp("^\\^"));
- tempString.remove(QRegExp("\\$$"));
- item.search_text=tempString;
- }
- }
- if(isValid)
- {
- if(item.need_match_all==true)
- tempString="^"+tempString+"$";
- regex=QRegExp(tempString);
- isValid=regex.isValid() && !regex.isEmpty();
- item.regex=regex;
- return true;
- }
- else
- return false;
- }
- return false;
-}
-
-void Filters::on_remove_exclusion_clicked()
-{
- bool removedEntry=false;
- int index=0;
- while(index<ui->exclusion->count())
- {
- if(ui->exclusion->item(index)->isSelected())
- {
- delete ui->exclusion->item(index);
- exclude.removeAt(index);
- removedEntry=true;
- }
- else
- index++;
- }
- if(removedEntry)
- {
- reShowAll();
- haveNewFilters();
- }
-}
-
-void Filters::on_remove_inclusion_clicked()
-{
- bool removedEntry=false;
- int index=0;
- while(index<ui->inclusion->count())
- {
- if(ui->inclusion->item(index)->isSelected())
- {
- delete ui->inclusion->item(index);
- include.removeAt(index);
- removedEntry=true;
- }
- else
- index++;
- }
- if(removedEntry)
- {
- reShowAll();
- haveNewFilters();
- }
-}
-
-void Filters::on_add_exclusion_clicked()
-{
- FilterRules dialog(this);
- dialog.exec();
- if(dialog.getIsValid())
- {
- Filters_rules new_item;
- new_item.apply_on=dialog.get_apply_on();
- new_item.need_match_all=dialog.get_need_match_all();
- new_item.search_text=dialog.get_search_text();
- new_item.search_type=dialog.get_search_type();
- exclude << new_item;
- reShowAll();
- haveNewFilters();
- }
-}
-
-void Filters::on_buttonBox_clicked(QAbstractButton *button)
-{
- if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::RejectRole)
- reject();
-}
-
-void Filters::on_add_inclusion_clicked()
-{
- FilterRules dialog(this);
- dialog.exec();
- if(dialog.getIsValid())
- {
- Filters_rules new_item;
- new_item.apply_on=dialog.get_apply_on();
- new_item.need_match_all=dialog.get_need_match_all();
- new_item.search_text=dialog.get_search_text();
- new_item.search_type=dialog.get_search_type();
- if(convertToRegex(new_item))
- include << new_item;
- reShowAll();
- haveNewFilters();
- }
-}
-
-void Filters::on_edit_exclusion_clicked()
-{
- bool editedEntry=false;
- int index=0;
- while(index<ui->exclusion->count())
- {
- if(ui->exclusion->item(index)->isSelected())
- {
- FilterRules dialog(this);
- dialog.set_apply_on(exclude[index].apply_on);
- dialog.set_need_match_all(exclude[index].need_match_all);
- dialog.set_search_text(exclude[index].search_text);
- dialog.set_search_type(exclude[index].search_type);
- dialog.exec();
- if(dialog.getIsValid())
- {
- exclude[index].apply_on=dialog.get_apply_on();
- exclude[index].need_match_all=dialog.get_need_match_all();
- exclude[index].search_text=dialog.get_search_text();
- exclude[index].search_type=dialog.get_search_type();
- if(!convertToRegex(exclude[index]))
- exclude.removeAt(index);
- editedEntry=true;
- }
- }
- index++;
- }
- if(editedEntry)
- {
- reShowAll();
- haveNewFilters();
- }
-}
-
-void Filters::on_edit_inclusion_clicked()
-{
- bool editedEntry=false;
- int index=0;
- while(index<ui->inclusion->count())
- {
- if(ui->inclusion->item(index)->isSelected())
- {
- FilterRules dialog(this);
- dialog.set_apply_on(exclude[index].apply_on);
- dialog.set_need_match_all(exclude[index].need_match_all);
- dialog.set_search_text(exclude[index].search_text);
- dialog.set_search_type(exclude[index].search_type);
- dialog.exec();
- if(dialog.getIsValid())
- {
- exclude[index].apply_on=dialog.get_apply_on();
- exclude[index].need_match_all=dialog.get_need_match_all();
- exclude[index].search_text=dialog.get_search_text();
- exclude[index].search_type=dialog.get_search_type();
- if(!convertToRegex(exclude[index]))
- exclude.removeAt(index);
- editedEntry=true;
- }
- }
- index++;
- }
- if(editedEntry)
- {
- reShowAll();
- haveNewFilters();
- }
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/Filters.h b/plugins-alternative/CopyEngine/Rsync/Filters.h
deleted file mode 100644
index dcdcb36..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Filters.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef FILTERS_H
-#define FILTERS_H
-
-#include <QDialog>
-#include <QStringList>
-
-#include "FilterRules.h"
-#include "StructEnumDefinition_CopyEngine.h"
-
-namespace Ui {
-class Filters;
-}
-
-/** To add/edit one filter rules */
-class Filters : public QDialog
-{
- Q_OBJECT
-public:
- explicit Filters(QWidget *parent = 0);
- ~Filters();
- void setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions);
- void reShowAll();
- QList<Filters_rules> getInclude();
- QList<Filters_rules> getExclude();
- void newLanguageLoaded();
-private:
- Ui::Filters *ui;
- QList<Filters_rules> include;
- QList<Filters_rules> exclude;
- void haveNewFilters();
- bool convertToRegex(Filters_rules &item);
-signals:
- void sendNewFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions);
-private slots:
- void on_remove_exclusion_clicked();
- void on_remove_inclusion_clicked();
- void on_add_exclusion_clicked();
- void on_buttonBox_clicked(QAbstractButton *button);
- void on_add_inclusion_clicked();
- void on_edit_exclusion_clicked();
- void on_edit_inclusion_clicked();
-};
-
-#endif // FILTERS_H
diff --git a/plugins-alternative/CopyEngine/Rsync/Filters.ui b/plugins-alternative/CopyEngine/Rsync/Filters.ui
deleted file mode 100644
index db8577c..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Filters.ui
+++ /dev/null
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Filters</class>
- <widget class="QDialog" name="Filters">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>507</width>
- <height>502</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Filters</string>
- </property>
- <property name="windowIcon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/filter.png</normaloff>:/resources/filter.png</iconset>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <property name="spacing">
- <number>1</number>
- </property>
- <property name="margin">
- <number>1</number>
- </property>
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>Exclusion filter</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <property name="spacing">
- <number>1</number>
- </property>
- <property name="margin">
- <number>2</number>
- </property>
- <item>
- <widget class="QListWidget" name="exclusion">
- <property name="selectionMode">
- <enum>QAbstractItemView::MultiSelection</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QToolButton" name="add_exclusion">
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="edit_exclusion">
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/edit.png</normaloff>:/resources/edit.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="remove_exclusion">
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/remove.png</normaloff>:/resources/remove.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2">
- <property name="title">
- <string>Inclusion filter</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_4">
- <property name="spacing">
- <number>1</number>
- </property>
- <property name="margin">
- <number>2</number>
- </property>
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>None = Include all</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QListWidget" name="inclusion">
- <property name="selectionMode">
- <enum>QAbstractItemView::MultiSelection</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QToolButton" name="add_inclusion">
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="edit_inclusion">
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/edit.png</normaloff>:/resources/edit.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="remove_inclusion">
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/resources/remove.png</normaloff>:/resources/remove.png</iconset>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources>
- <include location="resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts
deleted file mode 100644
index 1370c9a..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="de" sourcelanguage="en">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation>Auf dieser Plattform nicht unterstĆ¼tzt</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation>Datum der letzten Ƅnderung ist falsch</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation>Datum des letzten Zugriffs ist falsch</translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation>Optionen Fehler</translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Optionen Motor nicht geladen wird, kann nicht auf die Filter zu Ć¼bersetzen</translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation>Suche:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation>Suche Typ:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation>Roh text</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation>Vereinfachte regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation>Anwenden auf:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation>Datei</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation>Ordner</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation>Datei-und Ordnernamen</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation>Alle Saite muss passen</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation>ƜberprĆ¼fung</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation>Test-String:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation>Filters dialog</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation>Die Regex ist gĆ¼ltig</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation>Der Test-String Match mit dem regex</translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation>Filter</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation>Ausschluss-Filter</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation>Einbeziehungsfilter</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation>None = SchlieƟt alle</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation>Roh text</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation>Vereinfachte regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation>Nur auf Datei</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation>Nur auf Ordner</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation>Spielaufzeichnung</translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation>Kann nicht tun, verschieben oder kopieren Artikel in den falschen gezwungen Modus: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation>UnfƤhig, die Transferliste sparen: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation>Problem an der LektĆ¼re, der Oder DateigrĆ¶ĆŸe IST Null</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation>Falsche Header: &quot;%1&quot;</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation>Die Transferliste ist im gemischten Modus, aber diese Instanz ist in diesem Modus nicht</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation>Die Transferliste ist im Copy-Mode, aber dieser Fall ist in diesem Modus nicht</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation>Die Transferliste ist in Verschiebe-Modus, aber diese Instanz ist in diesem Modus nicht</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation>Einige Fehler wurden wƤhrend des Parsing gefunden</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation>UnfƤhig, die Transferliste geƶffnet: %1</translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation>Der Ordner kann nicht erstellt</translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation>UnfƤhig, die Quelldatei zu lesen: </translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Datei wƤhrend der Lese, mƶglich DatenƤnderung abgeschnitten</translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation>erste Umbenennung</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation>%name% - kopieren</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variablen: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; fĆ¼r den ursprĆ¼nglichen Dateinamen&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation>zweite Umbenennung</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>%name% - kopieren (%number%)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variablen: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; fĆ¼r den ursprĆ¼nglichen Dateinamen&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; fĆ¼r die zusƤtzliche Zahl&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation>%1 - kopieren</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - kopieren (%2)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation>Umbenennen von Regeln</translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation>Der Ordner kann nicht entfernen</translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation>%1 - kopieren</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - kopieren (%2)</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation>Die PrĆ¼fsummen nicht Ć¼berein</translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation>UnfƤhig, die Quelldatei zu lesen: </translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Datei wƤhrend der Lese, mƶglich DatenƤnderung abgeschnitten</translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation>Der Motor wird gezwungen sich zu bewegen, kƶnnen Sie mit ihr nicht zu kopieren</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation>Der Motor ist gezwungen, zu kopieren, kƶnnen Sie nicht mit ihm bewegen</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation>Der Modus wurden vorher gezwungen, es interner Fehler ist, melden Sie dies bitte</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation>Optionen Fehler</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Optionen Motor nicht geladen wird, kann nicht auf die Filter zu Ć¼bersetzen</translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation>Fehler bei der Datei</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation>Fehler</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation>GrĆ¶ĆŸe</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation>GeƤndert</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation>Dateiname</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation>Immer diese Aktion</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation>Legen Sie nach unten</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation>Wiederholen</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation>Ć¼berspringen</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation>Stornieren</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation>Fehler auf Ordner</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation>Ordnername</translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation>Die Datei existiert</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Quelle</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Ziel</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation>GrĆ¶ĆŸe</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation>GeƤndert</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation>Dateiname</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation>Schlagen neuen Namen</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation>Immer diese Aktion</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation>Umbenennen</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation>Ć¼berschreiben</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation>Ć¼berspringen</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation>Stornieren</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation>Ɯberschreiben, wenn neuere</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation>Ɯberschreiben, wenn nicht gleiche Ƅnderungsdatum</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation>%1 - kopieren</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - kopieren (%2)</translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation>Diese Dateien sind die gleiche Datei</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation>Die Quelle und das Ziel ist dasselbe</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation>GrĆ¶ĆŸe</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation>GeƤndert</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation>Dateiname</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation>Schlagen neuen Namen</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation>Immer diese Aktion</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation>Umbenennen</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation>Ć¼berspringen</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation>Stornieren</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation>%1 - kopieren</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - kopieren (%2)</translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation>Diese Ordner sind die gleichen Ordner</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Quelle</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Ziel</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation>Die Quelle und das Ziel ist dasselbe</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation>GeƤndert</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation>Ordnername</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation>Schlagen neuen Namen</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation>Immer diese Aktion</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation>Umbenennen</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation>Fusionieren</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation>Ć¼berspringen</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation>Stornieren</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation>Ordner bereits vorhanden ist</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation>%1 - kopieren</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - kopieren (%2)</translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation>Ɯbertragen Sie die Datei Rechte</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation>Halten Sie das Datei-Datum</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation>BlockgrĆ¶ĆŸe</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation>Auto starten Sie die Ɯbertragung</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation>Wenn Ordner Fehler</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation>Fragen</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation>Ć¼berspringen</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation>Fusionieren</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation>Umbenennen</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation>PrĆ¼fen Sie, ob Zielordner vorhanden ist</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation>Wenn Ordner Kollision</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation>Checksum</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation>Erst nach dem Fehler</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation>Ignorieren, wenn nicht</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation>Haben checksum</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation>Aktivieren Sie OS-Puffer</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation>Filter</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation>Umbenennen von Regeln</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation>OS-Puffer, wenn kleiner als</translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation>%1 - kopieren</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - kopieren (%2)</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation>Der Ordner existiert nicht</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation>Der Ordner ist nicht lesbar</translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts
deleted file mode 100644
index 8e00156..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="es" sourcelanguage="en">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation>No es compatible con esta plataforma</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation>Fecha de Ćŗltima modificaciĆ³n es incorrecto</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation>Fecha de Ćŗltimo acceso es incorrecto</translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation>Error de opciones</translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Opciones del motor no estĆ” cargado, no se puede acceder a los filtros</translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation>Buscar:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation>Tipo de bĆŗsqueda:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation>texto Fuente</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation>Regex simplificado</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation>Aplicar sobre:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation>Archivos</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation>Carpeta</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation>Archivos y carpeta</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation>Todas las lƭneas tiene por quƩ coincidir</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation>Verification</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation>Prueba de la cuerda:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation>Filtros de diƔlogo</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation>La expresiĆ³n regular es vĆ”lido</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation>La coincidencia con la cadena de prueba con la expresiĆ³n regular</translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation>Filtros</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation>ExclusiĆ³n filtro</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation>La inclusiĆ³n del filtro</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation>Ninguno = Incluya todos los</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation>texto Fuente</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation>Simplificado regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation>SĆ³lo en el archivo</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation>SĆ³lo en la carpeta</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation>Partido completo</translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation>No se puede hacer para mover o copiar elemento en modo incorrecto obligado: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation>No se puede guardar la lista de transferencias: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation>Problema en la lectura, o el tamaƱo del archivo es nulo</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation>Encabezado incorrecto: &quot;%1&quot;</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation>La lista de transferencia estĆ” en modo mixto, pero este caso no es de este modo</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation>La lista de transferencia estĆ” en el modo de copia, pero esta instancia no estĆ” en este modo</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation>La lista de transferencia es el modo de desplazamiento, pero esta instancia no estĆ” en este modo</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation>Algunos errores han sido encontrados durante el anƔlisis de lƭnea</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation>No se puede abrir la lista de transferencias: %1</translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation>No se puede crear la carpeta</translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation>No se puede leer el archivo de origen: </translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Archivo truncada durante el cambio de lectura, los datos posibles</translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation>En primer lugar el cambio de nombre</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation>%name% - copia</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; para el nombre del archivo original&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation>En segundo lugar el cambio de nombre</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>%name% - copia (%number%)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; para el nombre del archivo original&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; para el nĆŗmero adicional&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation>Reglas de Cambio de nombre</translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation>No se puede eliminar la carpeta</translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation>Las sumas de comprobaciĆ³n no coincide</translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation>No se puede leer el archivo de origen: </translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Archivo truncada durante el cambio de lectura, los datos posibles</translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation>El motor se ve obligado a moverse, no se puede copiar con ella</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation>El motor se ve obligado a copiar, no te puedes mover con Ć©l</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation>El modo se han visto obligados con anterioridad, es un error interno, por favor repĆ³rtelo</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation>Opciones de error</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Opciones del motor no estĆ” cargado, no se puede acceder a los filtros</translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation>Error en el archivo</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation>Error</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation>TamaƱo</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation>Modificado</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation>Nombre de archivo</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation>Siempre hacer esta acciĆ³n</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation>Ponga a abajo</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation>Reintentar</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation>Omitir</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation>Cancelar</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation>Error en la carpeta</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation>Nombre de la carpeta</translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation>El archivo ya existe</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Fuente</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Destino</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation>TamaƱo</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation>Modificado</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation>Nombre de archivo</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation>Sugerir nuevo nombre</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation>Siempre hacer esta acciĆ³n</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation>Cambiar el nombre</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation>Sobrescribir</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation>Omitir</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation>Cancelar</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation>Sobrescribir si nuevo</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation>Sobrescribir si no es misma fecha de modificaciĆ³n</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation>Estos archivos son el mismo archivo</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation>La fuente y el destino es el mismo</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation>TamaƱo</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation>Modificado</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation>Nombre de archivo</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation>Sugerir nuevo nombre</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation>Siempre hacer esta acciĆ³n</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation>Cambiar el nombre</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation>Omitir</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation>Cancelar</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation>Esta carpeta es la misma carpeta</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Fuente</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Destino</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation>La fuente y el destino es el mismo</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation>Modificado</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation>Nombre de la carpeta</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation>Sugerir nuevo nombre</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation>Siempre hacer esta acciĆ³n</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation>Cambiar el nombre</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation>Unir</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation>Omitir</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation>Cancelar</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation>Carpeta ya existe</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation>Transferencia de los derechos de archivo</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation>Mantener la fecha de archivo</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation>TamaƱo del bloque</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation>Auto iniciar la transferencia</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation>Cuando el error carpeta</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation>Pedir</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation>Omitir</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation>Unir</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation>Cambiar el nombre</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation>Compruebe si existe la carpeta de destino</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation>Cuando la colisiĆ³n carpeta</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation>Suma de comprobaciĆ³n</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation>SĆ³lo despuĆ©s de un error</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation>No haga caso si no es posible</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation>Hacer suma de comprobaciĆ³n</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation>Habilitar el OS de amortiguaciĆ³n</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation>Filtros</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation>Reglas de Cambio de nombre</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation>OS de amortiguaciĆ³n sĆ³lo si menor que</translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation>La carpeta no existe</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation>La carpeta no se puede leer</translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts
deleted file mode 100644
index 92d565c..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts
+++ /dev/null
@@ -1,810 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="fr" sourcelanguage="en">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation>Non supportƩ sur cette plateforme</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation>Date de derniĆØre modification du fichier fausse</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation>Date du dernier accĆØs au fichier fausse</translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation>Erreur d&apos;options</translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Moteur d&apos;options non chargƩ, impossible d&apos;accƩdrer aux filtres</translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation>Recherche:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation>Type de recherche:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation>Texte brute</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation>Regex simplifiƩ</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation>Regex perl</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation>Appliquer sur:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation>Fichier</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation>Dossier</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation>Fichier et dossier</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation>Toute la chaine doit correspondre</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation>VĆ©rification</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation>Chaine de teste:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation>Dialogue des filtres</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation>La regex est valid</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation>La chaine de teste corresponds avec la regex</translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation>Filtres</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation>Filtre d&apos;exclusion</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation>Filtre d&apos;inclusion</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation>Aucun = tout inclure</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation>Texte brute</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation>Regex simplifiƩ</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation>Regex perl</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation>Appliquer sur fichier</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation>Appliquer sur dossier</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation>Correspondance totale</translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation>Impossible de faire un dƩplacement ou une copie dans le mauvais mode forcƩ: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation>Impossible de sauvegarde la liste de transfer: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation>ProblƩme Ơ la lecture, ou fichier de taille nulle</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation>Mauvaise en-tĆŖte: &quot;%1&quot;</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation>La list de transfer est en mode mixte, mais l&apos;instance n&apos;est pas dans ce mode</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation>La list de transfer est en mode copie, mais l&apos;instance n&apos;est pas dans ce mode</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation>La list de transfer est en mode dƩplacement, mais l&apos;instance n&apos;est pas dans ce mode</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation>Quelque erreur ont ƩtƩ trouvƩ durrant l&apos;analise des lignes</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation>Impossible d&apos;ouvrir la list de transfer: %1</translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation>Impossible de crƩer le rƩpertoire</translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation>Impossible de lire le fichier source: </translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Fichier diminuƩ durrant la lecture, possible changement de donnƩes</translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation>Premier renommage</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translatorcomment>variables need never be translated</translatorcomment>
- <translation>%name% - copie</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translatorcomment>variables need never be translated</translatorcomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; pour le nom originel&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation>Seconds renommage</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translatorcomment>variables need never be translated</translatorcomment>
- <translation>%name% - copie (%number%)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translatorcomment>variables need never be translated</translatorcomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; pour le nom originel&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; pour le nombre extra&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation>%1 - copie</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copie (%2)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation>RĆ©gles de renommage</translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation>Impossible de supprimer le rƩpertoire</translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation>%1 - copie</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copie (%2)</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation>Les checksums ne correspondent pas</translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation>Impossible de lire le fichier source: </translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Fichier diminuƩ durrant la lecture, possible changement de donnƩes</translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation>Le moteur est forcƩ en dƩplacement, vous ne pouvez pas copier avec</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation>Le moteur est forcƩ en copie, vous ne pouvez pas dƩplacer avec</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation>Le mode as ƩtƩ forcƩ prƩcƩdement, c&apos;est une erreur interne, merci de le repporter</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation>Erreur d&apos;options</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Moteur d&apos;options non chargƩ, impossible d&apos;accƩdrer aux filtres</translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation>Erreur sur le fichier</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation>Erreur</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation>Taille</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation>ModifiƩ</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation>Nom de fichier</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;Toujours effectuer cette action</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation>Mettre Ć  la fin</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation>RĆ©essayer</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation>&amp;Passer</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation>&amp;Annuler</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation>Erreur sur un dossier</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation>Nom de rƩpertoire</translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation>Le fichier existe</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Source</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Destination</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation>Taille</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation>ModifiƩ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation>Nom de fichier</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation>SuggƩrer un &amp;nouveau nom</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;Toujours effectuer cette action</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation>&amp;Renommer</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation>&amp;Ecraser</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation>&amp;Passer</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation>&amp;Annuler</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation>Ecraser si plus rƩcent</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation>Ecraser si la date de modification est diffƩrente</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation>%1 - copie</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copie (%2)</translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation>Ces fichiers sont identiques</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation>La source et la destination sont identiques</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation>Taille</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation>ModifiƩ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation>Nom de fichier</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation>SuggƩrer un &amp;nouveau nom</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;Toujours effectuer cette action</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation>&amp;Renommer</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation>&amp;Passer</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation>&amp;Annuler</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation>%1 - copie</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copie (%2)</translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation>Les rƩpertoires sont identiques</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Source</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Destination</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation>La source et la destination sont identiques</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation>ModifiƩ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation>Nom de rƩpertoire</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation>SuggƩrer un &amp;nouveau nom</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;Toujours effectuer cette action</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation>&amp;Renommer</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation>Fusionner</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation>Passer</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation>&amp;Annuler</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation>Dossier dƩjƠ existant</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation>%1 - copie</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copie (%2)</translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation>TransfƩrer les droits des fichiers</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation>Garder la date du fichier</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation>En cas d&apos;erreur de rƩpertoire</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation>Demander</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation>Passer</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation>Fusionner</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation>Renommer</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation>VƩrifier si le rƩpertoire de destination existe</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation>Taille de block</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation>Ko</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation>DĆ©mmarer automatiquement le transfert</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation>Lors d&apos;une collision de dossier</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation>Checksum</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation>Seulement aprĆØs erreur</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation>Ignorer si impossible</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation>Faire un checksum</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation>Activer le buffer de l&apos;OS</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation>Filtres</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation>RĆ©gles de renommage</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation>Buffer de l&apos;OS seulement si plus petit que</translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation>%1 - copie</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copie (%2)</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation>Le rƩpertoire n&apos;existe pas</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation>Le rƩpertoire n&apos;est pas lisible</translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts
deleted file mode 100644
index 16adaed..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="it" sourcelanguage="en">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation>Non supportato su questa piattaforma</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation>Ultima modifica ĆØ sbagliato</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation>Ultima data di accesso ĆØ sbagliato</translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation>opzioni di errore</translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Opzioni del motore non viene caricato, non possono accedere ai filtri</translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation>Cerca:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation>Tipo di ricerca:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation>testo Raw</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation>semplificato regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation>Applicare su:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation>File</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation>Cartella</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation>File e cartelle</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation>Tutti stringa bisogno di corrispondere</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation>Verifica</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation>Test stringa:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation>Filtri di dialogo</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation>La regex ĆØ valido</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation>La stringa di test match con la regex</translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation>Filtri</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation>Esclusione filtro</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation>inclusione filtro</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation>Nessuno = Includi tutte le</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation>testo Raw</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation>semplificato regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation>Solo su file</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation>Solo sulla cartella</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation>partita completa</translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation>Impossibile fare per spostare o copiare elemento in male modo forzato: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation>Impossibile salvare la lista dei trasferimenti: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation>Problema alla lettura, o la dimensione del file ĆØ nullo</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation>Sbagliato intestazione: &quot;%1&quot;</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation>La lista di trasferimento ĆØ in modalitĆ  mista, ma questa istanza non ĆØ in questa modalitĆ </translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation>La lista di trasferimento ĆØ in modalitĆ  di copia, ma questa istanza non ĆØ in questa modalitĆ </translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation>La lista di trasferimento ĆØ in modalitĆ  di spostamento, ma questa istanza non ĆØ in questa modalitĆ </translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation>Alcuni errori sono stati trovati durante l&apos;analisi linea</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation>Impossibile aprire la lista di trasferimento: %1</translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation>Impossibile creare la cartella</translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation>Impossibile leggere il file sorgente: </translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation>File troncato durante la lettura, i possibili cambiamenti di dati</translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation>Prima ridenominazione</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation>%name% - copia</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;variabili: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; per il nome del file originale&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation>Secondo ridenominazione</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>%name% - copia (%number%)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;variabili: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; per il nome del file originale&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; per il numero aggiuntivo&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation>Rinominare le regole</translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation>Impossibile rimuovere la cartella</translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation>Il checksum non corrisponde</translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation>Impossibile leggere il file sorgente: </translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation>File troncato durante la lettura, i possibili cambiamenti di dati</translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation>Il motore ĆØ costretto a muoversi, non ĆØ possibile copiare con esso</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation>Il motore ĆØ costretto a copiare, non ĆØ possibile spostare con esso</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation>La modalitĆ  sono stati costretti in precedenza, ĆØ un errore interno, si prega di segnalarlo</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation>opzioni di errore</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>Opzioni del motore non viene caricato, non possono accedere ai filtri</translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation>Errore su file</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation>Errore</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation>Dimensione</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation>Modificato</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation>Nome file</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation>Eseguire sempre questa azione</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation>Mettere a fondo</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation>Riprova</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation>Saltare</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation>Annullare</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation>Errore cartella</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation>Nome della cartella</translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation>Il file esiste</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Fonte</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Destinazione</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation>Dimensione</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation>Modificato</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation>Nome file</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation>Suggerisci nuovo nome</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation>Eseguire sempre questa azione</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation>Rinominare</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation>Sovrascrivi</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation>Saltare</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation>Annullare</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation>Sovrascrivi se piĆ¹ recente</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation>Sovrascrivi se non la data di modifica stessa</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation>Questi file sono lo stesso file</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation>La sorgente e destinazione ĆØ uguale</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation>Dimensione</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation>Modificato</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation>Nome file</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation>Suggerisci nuovo nome</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation>Eseguire sempre questa azione</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation>Rinominare</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation>Saltare</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation>Annullare</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation>Questo cartelle sono nella stessa cartella</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>Fonte</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Destinazione</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation>La sorgente e destinazione ĆØ uguale</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation>Modificato</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation>Nome della cartella</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation>Suggerisci nuovo nome</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation>Eseguire sempre questa azione</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation>Rinominare</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation>Unire</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation>Saltare</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation>Annullare</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation>Cartella esiste giĆ </translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation>Trasferire i diritti di file</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation>Tenere la data del file</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation>Dimensione del blocco</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation>Auto iniziare il trasferimento</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation>Quando errore cartella</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation>Chiedere</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation>Saltare</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation>Unire</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation>Rinominare</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation>Controllare se la cartella di destinazione esiste</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation>Quando collisione cartella</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation>Solo dopo l&apos;errore</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation>Ignora se impossibile</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation>Fare checksum</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation>Abilita OS tampone</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation>Filtri</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation>Rinominare le regole</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation>OS tampone solo se inferiori</translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation>%1 - copia</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - copia (%2)</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation>La cartella non esiste</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation>La cartella non ĆØ leggibile</translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts
deleted file mode 100644
index 9c2e5d6..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts
deleted file mode 100644
index 4cbf604..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ko_KR">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation>ģ“ ķ”Œėž«ķ¼ģ—ģ„œ ģ§€ģ›ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation>ė§ˆģ§€ė§‰ ģˆ˜ģ • ė‚ ģ§œź°€ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation>ė§ˆģ§€ė§‰ ģ—‘ģ„øģŠ¤ ė‚ ģ§œź°€ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤</translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation>ķ“ė”ė„¼ ģƒģ„±ķ•  ģˆ˜ ģ—†ģŠµė‹ˆė‹¤</translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation>ģ›ė³ø ķŒŒģ¼ ģ½źø° ė¶ˆź°€:</translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation>ķ“ė”ė„¼ ģ œź±°ķ•  ģˆ˜ ģ—†ģŠµė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished">ģ›ė³ø ķŒŒģ¼ ģ½źø° ė¶ˆź°€:</translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation>ķŒŒģ¼ ģ˜¤ė„˜ź°€ ė°œģƒķ–ˆģŠµė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation>ģ˜¤ė„˜</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation>ķ¬źø°</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation>ģˆ˜ģ • ė‚ ģ§œ</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation>ķŒŒģ¼ ģ“ė¦„</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;ķ•­ģƒ ģ“ ģž‘ė™ ģ‹¤ķ–‰</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation>ģ•„ėž˜ģ— ė†“źø°</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation>ģž¬ģ‹œė„</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation>&amp;ź±“ė„ˆė›°źø°</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation>&amp;ģ·Øģ†Œ</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished">ķ“ė” ģ“ė¦„</translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation>ķŒŒģ¼ģ“ ģ”“ģž¬ķ•©ė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>ģ›ė³ø</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>ėŒ€ģƒ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation>ķ¬źø°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation>ģˆ˜ģ • ė‚ ģ§œ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation>ķŒŒģ¼ ģ“ė¦„</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation>ģƒˆ &amp;ģ“ė¦„ ģ œģ•ˆ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;ķ•­ģƒ ģ“ ģž‘ė™ ģ‹¤ķ–‰</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation>&amp;ģ“ė¦„ ė°”ź¾øźø°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation>&amp;ė®ģ–“ģ”Œģš°źø°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation>&amp;ź±“ė„ˆė›°źø°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation>&amp;ģ·Øģ†Œ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation>ė” ģµœģ‹ ģ“ė©“ ė®ģ–“ģ”Œģš°źø°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation>ģˆ˜ģ • ė‚ ģ§œź°€ ė‹¤ė„“ė©“ ė®ģ–“ģ”Œģš°źø°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation>ģ“ ķŒŒģ¼ė“¤ģ€ ė™ģ¼ķ•œ ķŒŒģ¼ģž…ė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation>ģ›ė³øź³¼ ėŒ€ģƒģ“ ė™ģ¼ķ•©ė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation>ķ¬źø°</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation>ģˆ˜ģ • ė‚ ģ§œ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation>ķŒŒģ¼ ģ“ė¦„</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation>ģƒˆ &amp;ģ“ė¦„ ģ œģ•ˆ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;ķ•­ģƒ ģ“ ģž‘ė™ ģ‹¤ķ–‰</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation>&amp;ģ“ė¦„ ė°”ź¾øźø°</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation>&amp;ź±“ė„ˆė›°źø°</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation>&amp;ģ·Øģ†Œ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation>ģ“ ķ“ė”ė“¤ģ€ ė™ģ¼ķ•œ ķ“ė”ģž…ė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>ģ›ė³ø</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>ėŒ€ģƒ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation>ģ›ė³øź³¼ ėŒ€ģƒģ“ ė™ģ¼ķ•©ė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation>ģˆ˜ģ • ė‚ ģ§œ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation>ķ“ė” ģ“ė¦„</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation>ģƒˆ &amp;ģ“ė¦„ ģ œģ•ˆ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation>&amp;ķ•­ģƒ ģ“ ģž‘ė™ ģ‹¤ķ–‰</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation>&amp;ģ“ė¦„ ė°”ź¾øźø°</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation>ķ•©ģ¹˜źø°</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation>ź±“ė„ˆė›°źø°</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation>&amp;ģ·Øģ†Œ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation>ķŒŒģ¼ ź¶Œķ•œ ģ „ģ†”</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation>ķŒŒģ¼ ė‚ ģ§œ ė³“ģ”“</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation>ėø”ėŸ­ ķ¬źø°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation>ģ „ģ†” ģžė™ ģ‹œģž‘</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation>ķ“ė” ģ˜¤ė„˜ģ‹œ</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation>ķ™•ģø</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation>ź±“ė„ˆė›°źø°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation>ķ•©ģ¹˜źø°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation>ģ“ė¦„ ė°”ź¾øźø°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation>ėŒ€ģƒ ķ“ė“œ ģ”“ģž¬ģ‹œ ķ™•ģø</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation>ķ“ė” ģ¶©ėŒģ‹œ</translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation>ķ“ė”ź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation>ķ“ė”ė„¼ ģ½ģ„ ģˆ˜ ģ—†ģŠµė‹ˆė‹¤</translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts
deleted file mode 100644
index cbafed3..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ru" sourcelanguage="en">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation>ŠŠµ ŠæŠ¾Š“Š“ŠµŃ€Š¶ŠøŠ²Š°ŠµŃ‚ся Š½Š° этŠ¾Š¹ ŠæŠ»Š°Ń‚Ń„Š¾Ń€Š¼Šµ</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation>Š”Š°Ń‚Š° Š¾Š±Š½Š¾Š²Š»ŠµŠ½Šøя Š½ŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Š¾</translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation>Š”Š°Ń‚Š° ŠæŠ¾ŃŠ»ŠµŠ“Š½ŠµŠ³Š¾ Š“Š¾ŃŃ‚ŃƒŠæŠ° Š½Šµ тŠ°Šŗ</translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation>ŠžŠæцŠøŠø Š¾ŃˆŠøŠ±ŠŗŠµ</translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>ŠŸŠ°Ń€Š°Š¼ŠµŃ‚ры Š“Š²ŠøŠ³Š°Ń‚ŠµŠ»Ń Š½Šµ Š·Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ся, Š½Šµ Š¼Š¾Š¶ŠµŃ‚ ŠæŠ¾Š»ŃƒŃ‡Šøть Š“Š¾ŃŃ‚ŃƒŠæ Šŗ фŠøŠ»ŃŒŃ‚Ń€Š°Š¼</translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation>ŠŸŠ¾ŠøсŠŗ ŠæŠ¾ сŠ°Š¹Ń‚Ńƒ:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation>Š¢ŠøŠæ ŠæŠ¾ŠøсŠŗŠ°:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation>Š”ырŠ¾Š¹ тŠµŠŗст</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation>уŠæрŠ¾Ń‰ŠµŠ½Š½Ń‹Š¹ regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation>ŠŠ°Š½ŠµŃŠøтŠµ Š½Š°:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation>фŠ°Š¹Š»</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation>ŠæŠ°ŠæŠŗŠ°</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation>Š¤Š°Š¹Š»Š¾Š² Šø ŠæŠ°ŠæŠ¾Šŗ</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation>Š’сŠµ стрŠ¾ŠŗŠø Š½ŃƒŠ¶Š½Š¾ сŠ¾Š¾Ń‚Š²ŠµŃ‚стŠ²Š¾Š²Š°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation>ŠŗŠ¾Š½Ń‚Ń€Š¾Š»ŃŒ</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation>Š˜ŃŠæытŠ°Š½ŠøŠµ стрŠ¾ŠŗŠø:</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation>Š¤ŠøŠ»ŃŒŃ‚ры Š“ŠøŠ°Š»Š¾Š³Š¾Š²Š¾Š³Š¾</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation>Š ŠµŠ³ŃƒŠ»ŃŃ€Š½Š¾Šµ Š“ŠµŠ¹ŃŃ‚Š²ŃƒŠµŃ‚</translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation>ŠœŠ°Ń‚ч тŠµŃŃ‚Š¾Š²ŃƒŃŽ стрŠ¾Šŗу с рŠµŠ³ŃƒŠ»ŃŃ€Š½Ń‹Š¼ Š²Ń‹Ń€Š°Š¶ŠµŠ½ŠøŠµŠ¼</translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation>Š¤ŠøŠ»ŃŒŃ‚ры</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation>Š˜ŃŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ фŠøŠ»ŃŒŃ‚Ń€Š°</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation>Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ фŠøŠ»ŃŒŃ‚Ń€Š°</translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation>ŠŠø = Š’ŠŗŠ»ŃŽŃ‡Šøть Š²ŃŠµ</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation>Š”ырŠ¾Š¹ тŠµŠŗст</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation>Š£ŠæрŠ¾Ń‰ŠµŠ½Š½Š°Ń рŠµŠ³ŃƒŠ»ŃŃ€Š½Ń‹Ń… Š²Ń‹Ń€Š°Š¶ŠµŠ½ŠøŠ¹</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation>Perl&apos;s regex</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation>Š¢Š¾Š»ŃŒŠŗŠ¾ Š½Š° фŠ°Š¹Š»</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation>Š¢Š¾Š»ŃŒŠŗŠ¾ Š½Š° ŠæŠ°ŠæŠŗу</translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation>ŠŸŠ¾Š»Š½Ń‹Š¹ Š¼Š°Ń‚ч</translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation>ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ сŠ“ŠµŠ»Š°Ń‚ŃŒ, чтŠ¾Š±Ń‹ сŠŗŠ¾ŠæŠøрŠ¾Š²Š°Ń‚ŃŒ ŠøŠ»Šø ŠæŠµŃ€ŠµŠ¼ŠµŃŃ‚Šøть эŠ»ŠµŠ¼ŠµŠ½Ń‚ Š² Š½ŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Š¾Š¼ фŠ¾Ń€ŃŠøрŠ¾Š²Š°Š½Š½Š¾Š¼ рŠµŠ¶ŠøŠ¼Šµ: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation>ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ сŠ¾Ń…Ń€Š°Š½Šøть трŠ°Š½ŃŃ„ŠµŃ€: %1</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation>ŠŸŃ€Š¾Š±Š»ŠµŠ¼Š° ŠæрŠø чтŠµŠ½ŠøŠø ŠøŠ»Šø рŠ°Š·Š¼ŠµŃ€ фŠ°Š¹Š»Š° Š½ŃƒŠ»ŠµŠ²Š¾Š¹</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation>ŠŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ Š·Š°Š³Š¾Š»Š¾Š²Š¾Šŗ: &quot;%1&quot;</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation>Š¢Ń€Š°Š½ŃŃ„ŠµŃ€ Š² сŠ¼ŠµŃˆŠ°Š½Š½Š¾Š¼ рŠµŠ¶ŠøŠ¼Šµ, Š½Š¾ этŠ¾Ń‚ эŠŗŠ·ŠµŠ¼ŠæŠ»ŃŃ€ Š½Šµ Š² этŠ¾Š¼ рŠµŠ¶ŠøŠ¼Šµ</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation>ŠŸŠµŃ€ŠµŠ“Š°Ń‡Š° сŠæŠøсŠŗŠ° Š² рŠµŠ¶ŠøŠ¼Šµ ŠŗŠ¾ŠæŠøрŠ¾Š²Š°Š½Šøя, Š½Š¾ этŠ¾Ń‚ эŠŗŠ·ŠµŠ¼ŠæŠ»ŃŃ€ Š½Šµ Š² этŠ¾Š¼ рŠµŠ¶ŠøŠ¼Šµ</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation>Š¢Ń€Š°Š½ŃŃ„ŠµŃ€ Š² рŠµŠ¶ŠøŠ¼ ŠæŠµŃ€ŠµŠ¼ŠµŃ‰ŠµŠ½Šøя, Š½Š¾ этŠ¾Ń‚ эŠŗŠ·ŠµŠ¼ŠæŠ»ŃŃ€ Š½Šµ Š² этŠ¾Š¼ рŠµŠ¶ŠøŠ¼Šµ</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation>ŠŠµŠŗŠ¾Ń‚Š¾Ń€Ń‹Šµ Š¾ŃˆŠøŠ±ŠŗŠø Š±Ń‹Š»Šø Š¾Š±Š½Š°Ń€ŃƒŠ¶ŠµŠ½Ń‹ Š² хŠ¾Š“Šµ рŠ°Š·Š±Š¾Ń€Š° Š»ŠøŠ½Šøя</translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation>ŠŠµ уŠ“Š°ŠµŃ‚ся Š¾Ń‚Šŗрыть трŠ°Š½ŃŃ„ŠµŃ€: %1</translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation>ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ сŠ¾Š·Š“Š°Ń‚ŃŒ ŠæŠ°ŠæŠŗу</translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation>ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæрŠ¾Ń‡ŠøтŠ°Ń‚ŃŒ ŠøсхŠ¾Š“Š½Ń‹Š¹ фŠ°Š¹Š»: </translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Š¤Š°Š¹Š» усŠµŃ‡ŠµŠ½Ń‹ Š²Š¾ Š²Ń€ŠµŠ¼Ń чтŠµŠ½Šøя, Š²Š¾Š·Š¼Š¾Š¶Š½Š¾ŃŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½Šøя Š“Š°Š½Š½Ń‹Ń…</translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation>ŠŸŠµŃ€Š²Š¾Šµ ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Š½ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation>%name% - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ŠŸŠµŃ€ŠµŠ¼ŠµŠ½Š½Ń‹Šµ: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; ŠæŠ¾ Š¾Ń€ŠøŠ³ŠøŠ½Š°Š»ŃŒŠ½Š¾Š¼Ńƒ Š½Š°Š·Š²Š°Š½Šøю фŠ°Š¹Š»Š°&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation>Š’Ń‚Š¾Ń€Š¾Šµ ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Š½ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>%name% - ŠŗŠ¾ŠæŠøя (%number%)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ŠŸŠµŃ€ŠµŠ¼ŠµŠ½Š½Ń‹Šµ: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; ŠæŠ¾ Š¾Ń€ŠøŠ³ŠøŠ½Š°Š»ŃŒŠ½Š¾Š¼Ńƒ Š½Š°Š·Š²Š°Š½Šøю фŠ°Š¹Š»Š°&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; Š·Š° Š“Š¾ŠæŠ¾Š»Š½ŠøтŠµŠ»ŃŒŠ½Ń‹Š¹ Š½Š¾Š¼ŠµŃ€&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя (%2)</translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation>ŠŸŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Š½ŠøŠµ ŠæрŠ°Š²ŠøŠ»Š°</translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation>ŠŠµ уŠ“Š°ŠµŃ‚ся уŠ“Š°Š»Šøть ŠæŠ°ŠæŠŗу</translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя (%2)</translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation>ŠšŠ¾Š½Ń‚Ń€Š¾Š»ŃŒŠ½Ń‹Šµ суŠ¼Š¼Ń‹ Š½Šµ сŠ¾Š²ŠæŠ°Š“Š°ŃŽŃ‚</translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation>ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæрŠ¾Ń‡ŠøтŠ°Ń‚ŃŒ ŠøсхŠ¾Š“Š½Ń‹Š¹ фŠ°Š¹Š»: </translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation>Š¤Š°Š¹Š» усŠµŃ‡ŠµŠ½Ń‹ Š²Š¾ Š²Ń€ŠµŠ¼Ń чтŠµŠ½Šøя, Š²Š¾Š·Š¼Š¾Š¶Š½Š¾ŃŃ‚ŃŒ ŠøŠ·Š¼ŠµŠ½ŠµŠ½Šøя Š“Š°Š½Š½Ń‹Ń…</translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation>Š”Š²ŠøŠ³Š°Ń‚ŠµŠ»ŃŒ Š²Ń‹Š½ŃƒŠ¶Š“ŠµŠ½Ń‹ ŠæŠ¾ŠŗŠøŠ½ŃƒŃ‚ŃŒ сŠ²Š¾Šø Š“Š¾Š¼Š°, Š²Ń‹ Š½Šµ Š¼Š¾Š¶ŠµŃ‚Šµ сŠŗŠ¾ŠæŠøрŠ¾Š²Š°Ń‚ŃŒ с Š½ŠøŠ¼</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation>Š”Š²ŠøŠ³Š°Ń‚ŠµŠ»ŃŒ Š²Ń‹Š½ŃƒŠ¶Š“ŠµŠ½ ŠŗŠ¾ŠæŠøŠø, Š²Ń‹ Š½Šµ Š¼Š¾Š¶ŠµŃ‚Šµ Š“Š²ŠøŠ³Š°Ń‚ŃŒŃŃ Š²Š¼ŠµŃŃ‚Šµ с Š½ŠøŠ¼</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation>Š ŠµŠ¶ŠøŠ¼ Š±Ń‹Š» Š²Ń‹Š½ŃƒŠ¶Š“ŠµŠ½ рŠ°Š½ŠµŠµ, этŠ¾ Š²Š½ŃƒŃ‚Ń€ŠµŠ½Š½ŃŃ Š¾ŃˆŠøŠ±ŠŗŠ°, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, сŠ¾Š¾Š±Ń‰ŠøтŠµ Š¾Š± этŠ¾Š¼</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation>ŠžŠæцŠøŠø Š¾ŃˆŠøŠ±ŠŗŠµ</translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation>ŠŸŠ°Ń€Š°Š¼ŠµŃ‚ры Š“Š²ŠøŠ³Š°Ń‚ŠµŠ»Ń Š½Šµ Š·Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ся, Š½Šµ Š¼Š¾Š¶ŠµŃ‚ ŠæŠ¾Š»ŃƒŃ‡Šøть Š“Š¾ŃŃ‚ŃƒŠæ Šŗ фŠøŠ»ŃŒŃ‚Ń€Š°Š¼</translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation>ŠžŃˆŠøŠ±ŠŗŠ° Š² фŠ°Š¹Š»Šµ</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation>Š¾ŃˆŠøŠ±ŠŗŠ°</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation>рŠ°Š·Š¼ŠµŃ€</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation>Š¼Š¾Š“ŠøфŠøцŠøрŠ¾Š²Š°Š½Š½Ń‹Š¹</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation>ŠøŠ¼Ń фŠ°Š¹Š»Š°</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation>Š’сŠµŠ³Š“Š° Š“ŠµŠ»Š°Š¹Ń‚Šµ этŠ¾ Š“ŠµŠ¹ŃŃ‚Š²ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation>ŠŸŠ¾Š»Š¾Š¶Šøть Š² Š½ŠøŠ¶Š½ŠµŠ¹</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation>ŠŸŠ¾Š²Ń‚Š¾Ń€Šøть</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation>ŠæрŠ¾ŠæусŠŗŠ°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation>Š¾Ń‚Š¼ŠµŠ½Šøть</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation>ŠžŃˆŠøŠ±ŠŗŠ° Š² ŠæŠ°ŠæŠŗу</translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation>ŠøŠ¼Ń ŠæŠ°ŠæŠŗŠø</translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation>Š¤Š°Š¹Š» сущŠµŃŃ‚Š²ŃƒŠµŃ‚</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>ŠøстŠ¾Ń‡Š½ŠøŠŗ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Š½Š°Š·Š½Š°Ń‡ŠµŠ½ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation>рŠ°Š·Š¼ŠµŃ€</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation>Š¼Š¾Š“ŠøфŠøцŠøрŠ¾Š²Š°Š½Š½Ń‹Š¹</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation>ŠøŠ¼Ń фŠ°Š¹Š»Š°</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation>ŠŸŃ€ŠµŠ“Š»Š¾Š¶Šøть Š½Š¾Š²Š¾Šµ ŠøŠ¼Ń</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation>Š’сŠµŠ³Š“Š° Š“ŠµŠ»Š°Š¹Ń‚Šµ этŠ¾ Š“ŠµŠ¹ŃŃ‚Š²ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation>ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation>ŠæŠµŃ€ŠµŠæŠøсыŠ²Š°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation>ŠæрŠ¾ŠæусŠŗŠ°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation>Š¾Ń‚Š¼ŠµŠ½Šøть</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation>Š—Š°Š¼ŠµŠ½Šøть, ŠµŃŠ»Šø Š½Š¾Š²ŠµŠµ</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation>Š—Š°Š¼ŠµŠ½Šøть, ŠµŃŠ»Šø Š½Šµ ту Š¶Šµ Š“Š°Ń‚Ńƒ Š¼Š¾Š“ŠøфŠøŠŗŠ°Ń†ŠøŠø</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя (%2)</translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation>Š­Ń‚Šø фŠ°Š¹Š»Ń‹ ŠøŠ¼ŠµŃŽŃ‚ тŠ¾Ń‚ Š¶Šµ фŠ°Š¹Š»</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation>Š˜ŃŃ‚Š¾Ń‡Š½ŠøŠŗ Šø Š½Š°Š·Š½Š°Ń‡ŠµŠ½ŠøŠµ тŠ°ŠŗŠ¾Šµ Š¶Šµ,</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation>рŠ°Š·Š¼ŠµŃ€</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation>Š¼Š¾Š“ŠøфŠøцŠøрŠ¾Š²Š°Š½Š½Ń‹Š¹</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation>ŠøŠ¼Ń фŠ°Š¹Š»Š°</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation>ŠŸŃ€ŠµŠ“Š»Š¾Š¶Šøть Š½Š¾Š²Š¾Šµ ŠøŠ¼Ń</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation>Š’сŠµŠ³Š“Š° Š“ŠµŠ»Š°Š¹Ń‚Šµ этŠ¾ Š“ŠµŠ¹ŃŃ‚Š²ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation>ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation>ŠæрŠ¾ŠæусŠŗŠ°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation>Š¾Ń‚Š¼ŠµŠ½Šøть</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя (%2)</translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation>Š­Ń‚Š¾ ŠæŠ°ŠæŠŗŠø тŠ¾Š¹ Š¶Šµ ŠæŠ°ŠæŠŗŠµ,</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation>ŠøстŠ¾Ń‡Š½ŠøŠŗ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation>Š½Š°Š·Š½Š°Ń‡ŠµŠ½ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation>Š˜ŃŃ‚Š¾Ń‡Š½ŠøŠŗ Šø Š½Š°Š·Š½Š°Ń‡ŠµŠ½ŠøŠµ тŠ°ŠŗŠ¾Šµ Š¶Šµ,</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation>Š¼Š¾Š“ŠøфŠøцŠøрŠ¾Š²Š°Š½Š½Ń‹Š¹</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation>ŠøŠ¼Ń ŠæŠ°ŠæŠŗŠø</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation>ŠŸŃ€ŠµŠ“Š»Š¾Š¶Šøть Š½Š¾Š²Š¾Šµ ŠøŠ¼Ń</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation>Š’сŠµŠ³Š“Š° Š“ŠµŠ»Š°Š¹Ń‚Šµ этŠ¾ Š“ŠµŠ¹ŃŃ‚Š²ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation>ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation>сŠ»ŠøяŠ½ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation>ŠæрŠ¾ŠæусŠŗŠ°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation>Š¾Ń‚Š¼ŠµŠ½Šøть</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation>ŠŸŠ°ŠæŠŗŠ° уŠ¶Šµ сущŠµŃŃ‚Š²ŃƒŠµŃ‚</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя (%2)</translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation>ŠŸŠµŃ€ŠµŠ“Š°Ń‡Š° фŠ°Š¹Š»Š¾Š² ŠæрŠ°Š²</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation>Š”ŠµŃ€Š¶ŠøтŠµ Š“Š°Ń‚Ńƒ фŠ°Š¹Š»Š°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation>рŠ°Š·Š¼ŠµŃ€ Š±Š»Š¾ŠŗŠ°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation>KB</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation>ŠŠ²Ń‚Š¾ Š½Š°Ń‡Š°Ń‚ŃŒ ŠæŠµŃ€ŠµŠ“Š°Ń‡Ńƒ</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation>ŠšŠ¾Š³Š“Š° ŠæŠ°ŠæŠŗŠ° Š¾ŃˆŠøŠ±ŠŗŠ°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation>ŠæрŠ¾ŃŠøть</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation>ŠæрŠ¾ŠæусŠŗŠ°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation>сŠ»ŠøяŠ½ŠøŠµ</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation>ŠæŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Ń‚ŃŒ</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation>Š£Š±ŠµŠ“ŠøтŠµŃŃŒ, чтŠ¾ ŠæŠ°ŠæŠŗŠ° сущŠµŃŃ‚Š²ŃƒŠµŃ‚</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation>ŠšŠ¾Š³Š“Š° ŠæŠ°ŠæŠŗŠ° стŠ¾Š»ŠŗŠ½Š¾Š²ŠµŠ½Šøя</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation>ŠšŠ¾Š½Ń‚Ń€Š¾Š»ŃŒŠ½Š°Ń</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation>Š¢Š¾Š»ŃŒŠŗŠ¾ ŠæŠ¾ŃŠ»Šµ тŠ¾Š³Š¾, ŠŗŠ°Šŗ Š¾ŃˆŠøŠ±ŠŗŠ°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation>Š˜Š³Š½Š¾Ń€ŠøрŠ¾Š²Š°Ń‚ŃŒ, ŠµŃŠ»Šø Š½ŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation>Š£ ŠŗŠ¾Š½Ń‚Ń€Š¾Š»ŃŒŠ½Š¾Š¹ суŠ¼Š¼Ń‹</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation>Š’ŠŗŠ»ŃŽŃ‡Šøть OS Š±ŃƒŃ„ŠµŃ€</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation>Š¤ŠøŠ»ŃŒŃ‚ры</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation>ŠŸŠµŃ€ŠµŠøŠ¼ŠµŠ½Š¾Š²Š°Š½ŠøŠµ ŠæрŠ°Š²ŠøŠ»Š°</translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation>ŠžŠ” Š±ŃƒŃ„ŠµŃ€, тŠ¾Š»ŃŒŠŗŠ¾ ŠµŃŠ»Šø Š¼ŠµŠ½ŃŒŃˆŠµ</translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation>%1 - ŠŗŠ¾ŠæŠøя (%2)</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation>ŠŸŠ°ŠæŠŗŠ° Š½Šµ сущŠµŃŃ‚Š²ŃƒŠµŃ‚</translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation>ŠŸŠ°ŠæŠŗŠø Š½Šµ чŠøтŠ°ŠµŃ‚ся</translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts
deleted file mode 100644
index 338cb72..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts
deleted file mode 100644
index 9c2e5d6..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts
+++ /dev/null
@@ -1,806 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AvancedQFile</name>
- <message>
- <location filename="../../AvancedQFile.cpp" line="28"/>
- <location filename="../../AvancedQFile.cpp" line="59"/>
- <location filename="../../AvancedQFile.cpp" line="90"/>
- <source>Not supported on this platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="42"/>
- <source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../AvancedQFile.cpp" line="73"/>
- <source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Factory</name>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../factory.cpp" line="369"/>
- <location filename="../../factory.cpp" line="406"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>FilterRules</name>
- <message>
- <location filename="../../FilterRules.ui" line="17"/>
- <source>Filters dialog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="33"/>
- <source>Search:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="43"/>
- <source>Search type:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="51"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="56"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="61"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="69"/>
- <source>Apply on:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="77"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="82"/>
- <source>Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="87"/>
- <source>File and folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="95"/>
- <source>All string need match</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="102"/>
- <source>Checking</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="108"/>
- <source>The regex is valid</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="115"/>
- <source>Test string:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../FilterRules.ui" line="125"/>
- <source>The test string match with the regex</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Filters</name>
- <message>
- <location filename="../../Filters.ui" line="14"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="30"/>
- <source>Exclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="93"/>
- <source>Inclusion filter</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.ui" line="105"/>
- <source>None = Include all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="92"/>
- <location filename="../../Filters.cpp" line="130"/>
- <source>Raw text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="95"/>
- <location filename="../../Filters.cpp" line="133"/>
- <source>Simplified regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="98"/>
- <location filename="../../Filters.cpp" line="136"/>
- <source>Perl&apos;s regex</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="106"/>
- <location filename="../../Filters.cpp" line="144"/>
- <source>Only on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="109"/>
- <location filename="../../Filters.cpp" line="147"/>
- <source>Only on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../Filters.cpp" line="115"/>
- <location filename="../../Filters.cpp" line="153"/>
- <location filename="../../Filters.cpp" line="215"/>
- <location filename="../../Filters.cpp" line="254"/>
- <source>Full match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ListThread</name>
- <message>
- <location filename="../../ListThread.cpp" line="1192"/>
- <source>Unable do to move or copy item into wrong forced mode: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1199"/>
- <source>Unable to save the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1215"/>
- <source>Problem at the reading, or file size is null</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1222"/>
- <source>Wrong header: &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1231"/>
- <source>The transfer list is in mixed mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1240"/>
- <source>The transfer list is in copy mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1246"/>
- <source>The transfer list is in move mode, but this instance is not in this mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1293"/>
- <source>Some error have been found during the line parsing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ListThread.cpp" line="1299"/>
- <source>Unable to open the transfer list: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>MkPath</name>
- <message>
- <location filename="../../MkPath.cpp" line="62"/>
- <source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>ReadThread</name>
- <message>
- <location filename="../../ReadThread.cpp" line="154"/>
- <location filename="../../ReadThread.cpp" line="316"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../ReadThread.cpp" line="193"/>
- <location filename="../../ReadThread.cpp" line="373"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RenamingRules</name>
- <message>
- <location filename="../../RenamingRules.ui" line="14"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="26"/>
- <source>First renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="32"/>
- <source>%name% - copy</source>
- <extracomment>%name% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="39"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment> should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="49"/>
- <source>Second renaming</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="55"/>
- <source>%name% - copy (%number%)</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.ui" line="62"/>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>%name%, %number% should not be translated</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="39"/>
- <location filename="../../RenamingRules.cpp" line="62"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RenamingRules.cpp" line="43"/>
- <location filename="../../RenamingRules.cpp" line="73"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RmPath</name>
- <message>
- <location filename="../../RmPath.cpp" line="61"/>
- <location filename="../../RmPath.cpp" line="75"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../RmPath.cpp" line="85"/>
- <source>Unable to remove the file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>TransferThread</name>
- <message>
- <location filename="../../TransferThread.cpp" line="312"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="322"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../TransferThread.cpp" line="627"/>
- <source>The checksums not match</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WriteThread</name>
- <message>
- <location filename="../../WriteThread.cpp" line="443"/>
- <source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../WriteThread.cpp" line="481"/>
- <source>File truncated during the read, possible data change</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>copyEngine</name>
- <message>
- <location filename="../../copyEngine.cpp" line="260"/>
- <location filename="../../copyEngine.cpp" line="278"/>
- <source>The engine is forced to move, you can&apos;t copy with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="289"/>
- <location filename="../../copyEngine.cpp" line="307"/>
- <source>The engine is forced to copy, you can&apos;t move with it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="521"/>
- <source>The mode have been forced previously, it&apos;s internal error, please report it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../copyEngine.cpp" line="795"/>
- <source>Options engine is not loaded, can&apos;t access to the filters</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileErrorDialog</name>
- <message>
- <location filename="../../fileErrorDialog.ui" line="14"/>
- <source>Error on file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="20"/>
- <source>Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="56"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="73"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="90"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="136"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="156"/>
- <source>Put to bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="163"/>
- <source>Retry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="170"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.ui" line="177"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="29"/>
- <source>Error on folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileErrorDialog.cpp" line="32"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileExistsDialog</name>
- <message>
- <location filename="../../fileExistsDialog.ui" line="14"/>
- <source>The file exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="82"/>
- <location filename="../../fileExistsDialog.ui" line="153"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="99"/>
- <location filename="../../fileExistsDialog.ui" line="170"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="116"/>
- <location filename="../../fileExistsDialog.ui" line="187"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="243"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="254"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="274"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="281"/>
- <source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="291"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="298"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="307"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.ui" line="312"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="102"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileExistsDialog.cpp" line="112"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>fileIsSameDialog</name>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="14"/>
- <source>This files are the same file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="20"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="47"/>
- <source>Size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="64"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="81"/>
- <source>File name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="137"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="148"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="168"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="175"/>
- <source>&amp;Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.ui" line="182"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="87"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../fileIsSameDialog.cpp" line="97"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>folderExistsDialog</name>
- <message>
- <location filename="../../folderExistsDialog.ui" line="14"/>
- <source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="34"/>
- <source>Source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="50"/>
- <source>Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="62"/>
- <source>The source and destination is same</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="89"/>
- <location filename="../../folderExistsDialog.ui" line="140"/>
- <source>Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="106"/>
- <location filename="../../folderExistsDialog.ui" line="150"/>
- <source>Folder name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="200"/>
- <source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="211"/>
- <source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="218"/>
- <source>&amp;Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="225"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="232"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.ui" line="239"/>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="29"/>
- <source>Folder already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="85"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../folderExistsDialog.cpp" line="95"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>options</name>
- <message>
- <location filename="../../options.ui" line="23"/>
- <source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="33"/>
- <source>Keep the file date</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="128"/>
- <source>Checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="144"/>
- <source>Only after error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="154"/>
- <source>Ignore if impossible</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="171"/>
- <source>Do checksum</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="181"/>
- <source>Enable OS buffer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="191"/>
- <source>OS buffer only if smaller than</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="214"/>
- <source>Block size</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="234"/>
- <source>Filters</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="241"/>
- <source>Renaming rules</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="255"/>
- <source>Rsync (only in copy mode)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="43"/>
- <location filename="../../options.ui" line="198"/>
- <source>KB</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="56"/>
- <source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="66"/>
- <source>When folder error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="74"/>
- <location filename="../../options.ui" line="95"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="79"/>
- <location filename="../../options.ui" line="105"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="100"/>
- <source>Merge</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="110"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="118"/>
- <source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui" line="87"/>
- <source>When folder collision</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>scanFileOrFolder</name>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="219"/>
- <location filename="../../scanFileOrFolder.cpp" line="283"/>
- <source>%1 - copy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="229"/>
- <location filename="../../scanFileOrFolder.cpp" line="293"/>
- <source>%1 - copy (%2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="327"/>
- <source>The folder not exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../scanFileOrFolder.cpp" line="329"/>
- <source>The folder is not readable</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/plugins-alternative/CopyEngine/Rsync/ListThread.cpp b/plugins-alternative/CopyEngine/Rsync/ListThread.cpp
deleted file mode 100755
index e49cea5..0000000
--- a/plugins-alternative/CopyEngine/Rsync/ListThread.cpp
+++ /dev/null
@@ -1,1720 +0,0 @@
-#include "ListThread.h"
-
-ListThread::ListThread(FacilityInterface * facilityInterface)
-{
- qRegisterMetaType<DebugLevel>("DebugLevel");
- qRegisterMetaType<ItemOfCopyList>("ItemOfCopyList");
- qRegisterMetaType<QFileInfo>("QFileInfo");
- qRegisterMetaType<CopyMode>("CopyMode");
- qRegisterMetaType<QList<Filters_rules> >("QList<Filters_rules>");
- qRegisterMetaType<TransferStat>("TransferStat");
-
- moveToThread(this);
- start(HighPriority);
- this->facilityInterface = facilityInterface;
- putInPause = false;
- sourceDrive = "";
- sourceDriveMultiple = false;
- destinationDrive = "";
- destinationDriveMultiple = false;
- stopIt = false;
- bytesToTransfer = 0;
- bytesTransfered = 0;
- idIncrementNumber = 1;
- actualRealByteTransfered = 0;
- preOperationNumber = 0;
- numberOfTranferRuning = 0;
- numberOfTransferIntoToDoList = 0;
- numberOfInodeOperation = 0;
- maxSpeed = 0;
- doRightTransfer = false;
- rsync = false;
- keepDate = false;
- blockSize = 1024;
- osBufferLimit = 512;
- alwaysDoThisActionForFileExists = FileExists_NotSet;
- doChecksum = false;
- checksumIgnoreIfImpossible = true;
- checksumOnlyOnError = true;
- osBuffer = false;
- osBufferLimited = false;
- forcedMode = false;
-
- #if ! defined (Q_CC_GNU)
- ui->keepDate->setEnabled(false);
- ui->keepDate->setToolTip("Not supported with this compiler");
- #endif
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- connect(&timerUpdateDebugDialog,SIGNAL(timeout()),this,SLOT(timedUpdateDebugDialog()));
- timerUpdateDebugDialog.start(ULTRACOPIER_PLUGIN_DEBUG_WINDOW_TIMER);
- #endif
- connect(this, SIGNAL(tryCancel()), this,SLOT(cancel()), Qt::QueuedConnection);
- connect(this, SIGNAL(askNewTransferThread()), this,SLOT(createTransferThread()), Qt::QueuedConnection);
- connect(&mkPathQueue, SIGNAL(firstFolderFinish()), this,SLOT(mkPathFirstFolderFinish()), Qt::QueuedConnection);
- connect(&rmPathQueue, SIGNAL(firstFolderFinish()), this,SLOT(rmPathFirstFolderFinish()), Qt::QueuedConnection);
- connect(&mkPathQueue, SIGNAL(errorOnFolder(QFileInfo,QString)), this,SIGNAL(mkPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection);
- connect(&rmPathQueue, SIGNAL(errorOnFolder(QFileInfo,QString)), this,SIGNAL(rmPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection);
- connect(this, SIGNAL(send_syncTransferList()), this,SLOT(syncTransferList_internal()), Qt::QueuedConnection);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- connect(&mkPathQueue, SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection);
- connect(&rmPathQueue, SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection);
- #endif // ULTRACOPIER_PLUGIN_DEBUG
-
- emit askNewTransferThread();
- mkpathTransfer.release();
-}
-
-ListThread::~ListThread()
-{
- emit tryCancel();
- waitCancel.acquire();
- quit();
- wait();
-}
-
-//transfer is finished
-void ListThread::transferInodeIsClosed()
-{
- numberOfInodeOperation--;
- temp_transfer_thread=qobject_cast<TransferThread *>(QObject::sender());
- if(temp_transfer_thread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!"));
- return;
- }
- isFound=false;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- int countLocalParse=0;
- #endif
- if(temp_transfer_thread->getStat()!=TransferStat_Idle)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not idle!"));
- return;
- }
- int_for_internal_loop=0;
- loop_size=actionToDoListTransfer.size();
- while(int_for_internal_loop<loop_size)
- {
- if(actionToDoListTransfer.at(int_for_internal_loop).id==temp_transfer_thread->transferId)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("[%1] have finish, put at idle; for id: %2").arg(int_for_internal_loop).arg(temp_transfer_thread->transferId));
- returnActionOnCopyList newAction;
- newAction.type=RemoveItem;
- newAction.addAction.id=temp_transfer_thread->transferId;
- newAction.userAction.position=int_for_internal_loop;
- actionDone << newAction;
- /// \todo check if item is at the right thread
- actionToDoListTransfer.removeAt(int_for_internal_loop);
- if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0)
- updateTheStatus();
-
- temp_transfer_thread->transferId=0;
- temp_transfer_thread->transferSize=0;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- countLocalParse++;
- #endif
- isFound=true;
- //emit newActionOnList();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"numberOfTranferRuning: "+QString::number(numberOfTranferRuning));
- if(actionToDoListTransfer.size()==0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"numberOfTranferRuning==0");
- actionToDoListInode << actionToDoListInode_afterTheTransfer;
- actionToDoListInode_afterTheTransfer.clear();
- doNewActions_inode_manipulation();
- }
- break;
- }
- int_for_internal_loop++;
- }
- if(!isFound)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("unable to found item into the todo list, id: %1, index: %2").arg(temp_transfer_thread->transferId).arg(int_for_loop));
- temp_transfer_thread->transferId=0;
- temp_transfer_thread->transferSize=0;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("countLocalParse: %1, actionToDoList.size(): %2").arg(countLocalParse).arg(actionToDoListTransfer.size()));
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- if(countLocalParse!=1)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("countLocalParse != 1"));
- #endif
- doNewActions_inode_manipulation();
-}
-
-//transfer is finished
-void ListThread::transferIsFinished()
-{
- temp_transfer_thread=qobject_cast<TransferThread *>(QObject::sender());
- if(temp_transfer_thread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!"));
- return;
- }
-
- //add the current size of file, to general size because it's finish
- copiedSize=temp_transfer_thread->copiedSize();
- if(copiedSize>(qint64)temp_transfer_thread->transferSize)
- {
- oversize=copiedSize-temp_transfer_thread->transferSize;
- bytesToTransfer+=oversize;
- bytesTransfered+=oversize;
- }
- bytesTransfered+=temp_transfer_thread->transferSize;
-
-// emit newTransferStop(temp_transfer_thread->transferId);
- numberOfTranferRuning--;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start transferIsFinished(), numberOfTranferRuning: "+QString::number(numberOfTranferRuning));
- doNewActions_start_transfer();
-}
-
-/** \brief put the current file at bottom in case of error
-\note ONLY IN CASE OF ERROR */
-void ListThread::transferPutAtBottom()
-{
- TransferThread *transfer=qobject_cast<TransferThread *>(QObject::sender());
- if(transfer==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!"));
- return;
- }
- transfer->skip();
- bool isFound=false;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- int countLocalParse=0;
- #endif
- int indexAction=0;
- while(indexAction<actionToDoListTransfer.size())
- {
- if(actionToDoListTransfer.at(indexAction).id==transfer->transferId)
- {
- //push for interface at the end
- returnActionOnCopyList newAction;
- newAction.type=MoveItem;
- newAction.addAction.id=transfer->transferId;
- newAction.userAction.position=actionToDoListTransfer.size()-1;
- actionDone << newAction;
- //do the wait stat
- actionToDoListTransfer[indexAction].isRunning=false;
- //move at the end
- actionToDoListTransfer.move(indexAction,actionToDoListTransfer.size()-1);
- //reset the thread list stat
- transfer->transferId=0;
- transfer->transferSize=0;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- countLocalParse++;
- #endif
- isFound=true;
- break;
- }
- indexAction++;
- }
- if(!isFound)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("unable to found item into the todo list, id: %1, index: %2").arg(transfer->transferId));
- transfer->transferId=0;
- transfer->transferSize=0;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("countLocalParse: %1").arg(countLocalParse));
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- if(countLocalParse!=1)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("countLocalParse != 1"));
- #endif
-}
-
-//set the copy info and options before runing
-void ListThread::setRightTransfer(const bool doRightTransfer)
-{
- this->doRightTransfer=doRightTransfer;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->setRightTransfer(doRightTransfer);
- index++;
- }
-}
-
-//set keep date
-void ListThread::setKeepDate(const bool keepDate)
-{
- this->keepDate=keepDate;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->setKeepDate(keepDate);
- index++;
- }
-}
-
-//set block size in KB
-void ListThread::setBlockSize(const int blockSize)
-{
- this->blockSize=blockSize;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->setBlockSize(blockSize);
- index++;
- }
-}
-
-//set auto start
-void ListThread::setAutoStart(const bool autoStart)
-{
- this->autoStart=autoStart;
-}
-
-/// \brief set rsync
-void ListThread::setRsync(const bool rsync)
-{
- this->rsync=rsync;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->setRsync(rsync);
- index++;
- }
- for(int i=0;i<scanFileOrFolderThreadsPool.size();i++)
- scanFileOrFolderThreadsPool.at(i)->setRsync(rsync);
-}
-
-//set check destination folder
-void ListThread::setCheckDestinationFolderExists(const bool checkDestinationFolderExists)
-{
- this->checkDestinationFolderExists=checkDestinationFolderExists;
- for(int i=0;i<scanFileOrFolderThreadsPool.size();i++)
- scanFileOrFolderThreadsPool.at(i)->setCheckDestinationFolderExists(checkDestinationFolderExists && alwaysDoThisActionForFolderExists!=FolderExists_Merge);
-}
-
-void ListThread::fileTransfer(const QFileInfo &sourceFileInfo,const QFileInfo &destinationFileInfo,const CopyMode &mode)
-{
- addToTransfer(sourceFileInfo,destinationFileInfo,mode);
-}
-
-// -> add thread safe, by Qt::BlockingQueuedConnection
-bool ListThread::haveSameSource(QStringList sources)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(sourceDriveMultiple)
- return false;
- if(sourceDrive.isEmpty())
- return true;
- int index=0;
- while(index<sources.size())
- {
-// if(threadOfTheTransfer.getDrive(sources.at(index))!=sourceDrive)
-// return false;
- index++;
- }
- return true;
-}
-
-// -> add thread safe, by Qt::BlockingQueuedConnection
-bool ListThread::haveSameDestination(QString destination)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(destinationDriveMultiple)
- return false;
- if(destinationDrive.isEmpty())
- return true;
- int index=0;
- while(index<destination.size())
- {
-// if(threadOfTheTransfer.getDrive(destination.at(index))!=destinationDrive)
-// return false;
- index++;
- }
- return true;
-}
-
-scanFileOrFolder * ListThread::newScanThread(CopyMode mode)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start with: "+QString::number(mode));
-
- //create new thread because is auto-detroyed
- scanFileOrFolderThreadsPool << new scanFileOrFolder(mode);
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(finishedTheListing()), this,SLOT(scanThreadHaveFinish()), Qt::QueuedConnection);
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(fileTransfer(QFileInfo,QFileInfo,CopyMode)), this,SLOT(fileTransfer(QFileInfo,QFileInfo,CopyMode)), Qt::QueuedConnection);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)));
- #endif
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(newFolderListing(QString)), this,SIGNAL(newFolderListing(QString)));
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(addToRmPath(QString,int)), this,SLOT(addToRmPath(QString,int)), Qt::QueuedConnection);
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(addToRmForRsync(QString)), this,SLOT(addToRmForRsync(QString)), Qt::QueuedConnection);
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(addToMkPath(QString)), this,SLOT(addToMkPath(QString)), Qt::QueuedConnection);
-
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(errorOnFolder(QFileInfo,QString)), this,SLOT(errorOnFolder(QFileInfo,QString)), Qt::QueuedConnection);
- connect(scanFileOrFolderThreadsPool.last(),SIGNAL(folderAlreadyExists(QFileInfo,QFileInfo,bool)), this,SLOT(folderAlreadyExists(QFileInfo,QFileInfo,bool)), Qt::QueuedConnection);
-
- scanFileOrFolderThreadsPool.last()->setRsync(rsync);
- scanFileOrFolderThreadsPool.last()->setFilters(include,exclude);
- scanFileOrFolderThreadsPool.last()->setCheckDestinationFolderExists(checkDestinationFolderExists && alwaysDoThisActionForFolderExists!=FolderExists_Merge);
- if(scanFileOrFolderThreadsPool.size()==1)
- updateTheStatus();
- scanFileOrFolderThreadsPool.last()->setRenamingRules(firstRenamingRule,otherRenamingRule);
- return scanFileOrFolderThreadsPool.last();
-}
-
-void ListThread::scanThreadHaveFinish(bool skipFirstRemove)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"listing thread have finish, skipFirstRemove: "+QString::number(skipFirstRemove));
- if(!skipFirstRemove)
- {
- scanFileOrFolder * senderThread = qobject_cast<scanFileOrFolder *>(QObject::sender());
- if(senderThread==NULL)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"sender pointer null (plugin copy engine)");
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the next thread, scanFileOrFolderThreadsPool.size(): "+QString::number(scanFileOrFolderThreadsPool.size()));
- delete senderThread;
- scanFileOrFolderThreadsPool.removeOne(senderThread);
- if(scanFileOrFolderThreadsPool.size()==0)
- updateTheStatus();
- }
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the next thread, scanFileOrFolderThreadsPool.size(): "+QString::number(scanFileOrFolderThreadsPool.size()));
- if(scanFileOrFolderThreadsPool.size()>0)
- {
- //then start the next listing threads
- if(scanFileOrFolderThreadsPool.first()->isFinished())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"Start listing thread");
- scanFileOrFolderThreadsPool.first()->start();
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"The listing thread is already running");
- }
- else
- {
- if(autoStart)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Auto start the copy");
- startGeneralTransfer();
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Put the copy engine in pause");
- putInPause=true;
- emit isInPause(true);
- }
- }
-}
-
-void ListThread::startGeneralTransfer()
-{
- doNewActions_inode_manipulation();
-}
-
-// -> add thread safe, by Qt::BlockingQueuedConnection
-bool ListThread::newCopy(QStringList sources,QString destination)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+sources.join(";")+", destination: "+destination);
- scanFileOrFolder * scanFileOrFolderThread = newScanThread(Copy);
- if(scanFileOrFolderThread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to get new thread");
- return false;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the listing");
- scanFileOrFolderThread->addToList(sources,destination);
- scanThreadHaveFinish(true);
- return true;
-}
-
-// -> add thread safe, by Qt::BlockingQueuedConnection
-bool ListThread::newMove(QStringList sources,QString destination)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- scanFileOrFolder * scanFileOrFolderThread = newScanThread(Move);
- if(scanFileOrFolderThread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to get new thread");
- return false;
- }
- scanFileOrFolderThread->addToList(sources,destination);
- scanThreadHaveFinish(true);
-/* int index=0;
- while(index<sources.size() && !sourceDriveMultiple)
- {
- QString tempDrive=threadOfTheTransfer.getDrive(sources.at(index));
- if(sourceDrive=="")
- sourceDrive=tempDrive;
- if(tempDrive!=sourceDrive)
- sourceDriveMultiple=true;
- index++;
- }*/
-/* QString tempDrive=threadOfTheTransfer.getDrive(destination);
- if(!destinationDriveMultiple)
- {
- if(tempDrive=="")
- destinationDrive=tempDrive;
- if(tempDrive!=destinationDrive)
- destinationDriveMultiple=true;
- }*/
- return true;
-}
-
-void ListThread::setDrive(QStringList drives)
-{
- this->drives=drives;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->setDrive(drives);
- index++;
- }
-}
-
-void ListThread::setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists)
-{
- this->alwaysDoThisActionForFileExists=alwaysDoThisActionForFileExists;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists);
- index++;
- }
-}
-
-/** \brief to sync the transfer list
- * Used when the interface is changed, useful to minimize the memory size */
-void ListThread::syncTransferList()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit send_syncTransferList();
-}
-
-//set the folder local colision
-void ListThread::setFolderColision(FolderExistsAction alwaysDoThisActionForFolderExists)
-{
- this->alwaysDoThisActionForFolderExists=alwaysDoThisActionForFolderExists;
-}
-
-bool ListThread::getReturnBoolToCopyEngine()
-{
- return returnBoolToCopyEngine;
-}
-
-QPair<quint64,quint64> ListThread::getReturnPairQuint64ToCopyEngine()
-{
- return returnPairQuint64ToCopyEngine;
-}
-
-ItemOfCopyList ListThread::getReturnItemOfCopyListToCopyEngine()
-{
- return returnItemOfCopyListToCopyEngine;
-}
-
-void ListThread::set_doChecksum(bool doChecksum)
-{
- this->doChecksum=doChecksum;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->set_doChecksum(doChecksum);
- index++;
- }
-}
-
-void ListThread::set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible)
-{
- this->checksumIgnoreIfImpossible=checksumIgnoreIfImpossible;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible);
- index++;
- }
-}
-
-void ListThread::set_checksumOnlyOnError(bool checksumOnlyOnError)
-{
- this->checksumOnlyOnError=checksumOnlyOnError;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->set_checksumOnlyOnError(checksumOnlyOnError);
- index++;
- }
-}
-
-void ListThread::set_osBuffer(bool osBuffer)
-{
- this->osBuffer=osBuffer;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->set_osBuffer(osBuffer);
- index++;
- }
-}
-
-void ListThread::set_osBufferLimited(bool osBufferLimited)
-{
- this->osBufferLimited=osBufferLimited;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->set_osBufferLimited(osBufferLimited);
- index++;
- }
-}
-
-void ListThread::realByteTransfered()
-{
- quint64 totalRealByteTransfered=0;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- totalRealByteTransfered+=transferThreadList.at(index)->realByteTransfered();
- index++;
- }
- emit send_realBytesTransfered(totalRealByteTransfered);
-}
-
-void ListThread::pause()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(putInPause)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Seam already in pause!");
- return;
- }
- putInPause=true;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->pause();
- index++;
- }
- emit isInPause(true);
-}
-
-void ListThread::resume()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(!putInPause)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Seam already resumed!");
- return;
- }
- putInPause=false;
- startGeneralTransfer();
- doNewActions_start_transfer();
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->resume();
- index++;
- }
- emit isInPause(false);
-}
-
-void ListThread::skip(const quint64 &id)
-{
- skipInternal(id);
-// emit newActionOnList();
-}
-
-bool ListThread::skipInternal(const quint64 &id)
-{
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- if(transferThreadList.at(index)->transferId==id)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("skip one transfer: %1").arg(id));
- transferThreadList.at(index)->skip();
- return true;
- }
- index++;
- }
- int_for_internal_loop=0;
- loop_size=actionToDoListTransfer.size();
- while(int_for_internal_loop<loop_size)
- {
- if(actionToDoListTransfer.at(int_for_internal_loop).id==id)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("[%1] remove at not running, for id: %2").arg(int_for_internal_loop).arg(id));
- returnActionOnCopyList newAction;
- newAction.type=RemoveItem;
- newAction.addAction.id=id;
- newAction.userAction.position=int_for_internal_loop;
- actionDone << newAction;
- actionToDoListTransfer.removeAt(int_for_internal_loop);
- if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0)
- updateTheStatus();
- return true;
- }
- int_for_internal_loop++;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("skip transfer not found: %1").arg(id));
- return false;
-}
-
-void ListThread::cancel()
-{
- if(stopIt)
- {
- waitCancel.release();
- return;
- }
- stopIt=true;
- int index=0;
- loop_size=transferThreadList.size();
- while(index<loop_size)
- {
- transferThreadList.at(index)->stop();
- delete transferThreadList.at(index);//->deleteLayer();
- transferThreadList[index]=NULL;
- index++;
- }
- index=0;
- loop_size=scanFileOrFolderThreadsPool.size();
- while(index<loop_size)
- {
- scanFileOrFolderThreadsPool.at(index)->stop();
- delete scanFileOrFolderThreadsPool.at(index);//->deleteLayer();
- scanFileOrFolderThreadsPool[index]=NULL;
- index++;
- }
- quit();
- waitCancel.release();
- emit canBeDeleted();
-}
-
-//speed limitation
-qint64 ListThread::getSpeedLimitation()
-{
- return maxSpeed;
-}
-
-bool ListThread::setSpeedLimitation(const qint64 &speedLimitation)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"maxSpeed: "+QString::number(speedLimitation));
- maxSpeed=speedLimitation;
- int_for_loop=0;
- loop_size=transferThreadList.size();
- while(int_for_loop<loop_size)
- {
- transferThreadList.at(int_for_loop)->setMaxSpeed(speedLimitation/ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER);
- int_for_loop++;
- }
- return true;
-}
-
-void ListThread::updateTheStatus()
-{
- /*if(threadOfTheTransfer.haveContent())
- copy=true;*/
- updateTheStatus_listing=scanFileOrFolderThreadsPool.size()>0;
- updateTheStatus_copying=actionToDoListTransfer.size()>0 || actionToDoListInode.size()>0 || actionToDoListInode_afterTheTransfer.size()>0;
- if(updateTheStatus_copying && updateTheStatus_listing)
- updateTheStatus_action_in_progress=CopyingAndListing;
- else if(updateTheStatus_listing)
- updateTheStatus_action_in_progress=Listing;
- else if(updateTheStatus_copying)
- updateTheStatus_action_in_progress=Copying;
- else
- updateTheStatus_action_in_progress=Idle;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"emit actionInProgess("+QString::number(updateTheStatus_action_in_progress)+")");
- emit actionInProgess(updateTheStatus_action_in_progress);
- if(updateTheStatus_action_in_progress==Idle)
- sendActionDone();
-}
-
-//set data local to the thread
-void ListThread::setAlwaysFileExistsAction(FileExistsAction alwaysDoThisActionForFileExists)
-{
- this->alwaysDoThisActionForFileExists=alwaysDoThisActionForFileExists;
- int_for_loop=0;
- loop_size=transferThreadList.size();
- while(int_for_loop<loop_size)
- {
- transferThreadList.at(int_for_loop)->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists);
- int_for_loop++;
- }
-}
-
-//mk path to do
-quint64 ListThread::addToMkPath(const QString& folder)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"folder: "+folder);
- actionToDoInode temp;
- temp.type = ActionType_MkPath;
- temp.id = generateIdNumber();
- temp.folder.setFile(folder);
- temp.isRunning = false;
- actionToDoListInode << temp;
- return temp.id;
-}
-
-//add rm path to do
-void ListThread::addToRmPath(const QString& folder,const int& inodeToRemove)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"folder: "+folder+",inodeToRemove: "+QString::number(inodeToRemove));
- actionToDoInode temp;
- temp.type = ActionType_RmPath;
- temp.id = generateIdNumber();
- temp.size = inodeToRemove;
- temp.folder.setFile(folder);
- temp.isRunning = false;
- if(inodeToRemove==0)
- actionToDoListInode << temp;
- else
- actionToDoListInode_afterTheTransfer << temp;
-}
-
-//rsync rm
-void ListThread::addToRmForRsync(const QString& inode)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"inode: "+inode);
- actionToDoInode temp;
- temp.type = ActionType_RmSync;
- temp.id = generateIdNumber();
- temp.folder.setFile(inode);
- temp.isRunning = false;
- actionToDoListInode << temp;
-}
-
-//send action done
-void ListThread::sendActionDone()
-{
- if(actionDone.size()>0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit newActionOnList(actionDone);
- actionDone.clear();
- }
-}
-
-//send progression
-void ListThread::sendProgression()
-{
- if(actionToDoListTransfer.size()==0)
- return;
- oversize=0;
- currentProgression=0;
- int_for_loop=0;
- loop_size=transferThreadList.size();
- while(int_for_loop<loop_size)
- {
- temp_transfer_thread=transferThreadList.at(int_for_loop);
- if(temp_transfer_thread->getStat()==TransferStat_Transfer || temp_transfer_thread->getStat()==TransferStat_Checksum)
- {
- copiedSize=temp_transfer_thread->copiedSize();
-
- //for the general progression
- currentProgression+=copiedSize;
-
- //the oversize (when the file is bigger after/during the copy then what was during the listing)
- if(copiedSize>(qint64)temp_transfer_thread->transferSize)
- localOverSize=copiedSize-temp_transfer_thread->transferSize;
- else
- localOverSize=0;
-
- //the current size copied
- totalSize=temp_transfer_thread->transferSize+localOverSize;
- if(temp_transfer_thread->getStat()==TransferStat_Checksum)
- tempItem.current=temp_transfer_thread->realByteTransfered();
- else
- tempItem.current=copiedSize;
- tempItem.id=temp_transfer_thread->transferId;
- tempItem.total=totalSize;
- progressionList << tempItem;
-
- //add the oversize to the general progression
- oversize+=localOverSize;
- }
- int_for_loop++;
- }
- emit pushFileProgression(progressionList);
- progressionList.clear();
- emit pushGeneralProgression(bytesTransfered+currentProgression,bytesToTransfer+oversize);
- realByteTransfered();
-}
-
-//send the progression, after full reset of the interface (then all is empty)
-void ListThread::syncTransferList_internal()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit syncReady();
- actionDone.clear();
- //do list operation
- TransferThread *transferThread;
- loop_size=actionToDoListTransfer.size();
- loop_sub_size=transferThreadList.size();
- //this loop to have at max ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT*ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT, not ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT*transferThreadList.size()
- for(int_for_loop=0; int_for_loop<loop_size; ++int_for_loop) {
- const actionToDoTransfer &item=actionToDoListTransfer.at(int_for_loop);
- returnActionOnCopyList newAction;
- newAction.type = PreOperation;
- newAction.addAction.id = item.id;
- newAction.addAction.sourceFullPath = item.source.absoluteFilePath();
- newAction.addAction.sourceFileName = item.source.fileName();
- newAction.addAction.destinationFullPath = item.destination.absoluteFilePath();
- newAction.addAction.destinationFileName = item.destination.fileName();
- newAction.addAction.size = item.size;
- newAction.addAction.mode = item.mode;
- actionDone << newAction;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, size: %2, name: %3, size2: %4").arg(item.id).arg(item.size).arg(item.source.absoluteFilePath()).arg(newAction.addAction.size));
- if(item.isRunning)
- {
- for(int_for_internal_loop=0; int_for_internal_loop<loop_sub_size; ++int_for_internal_loop) {
- transferThread=transferThreadList.at(int_for_internal_loop);
- returnActionOnCopyList newAction;
- newAction.type = PreOperation;
- newAction.addAction.id = item.id;
- newAction.addAction.sourceFullPath = item.source.absoluteFilePath();
- newAction.addAction.sourceFileName = item.source.fileName();
- newAction.addAction.destinationFullPath = item.destination.absoluteFilePath();
- newAction.addAction.destinationFileName = item.destination.fileName();
- newAction.addAction.size = item.size;
- newAction.addAction.mode = item.mode;
- actionDone << newAction;
- if(transferThread->getStat()!=TransferStat_PreOperation)
- {
- returnActionOnCopyList newAction;
- switch(transferThread->getStat())
- {
- case TransferStat_Transfer:
- newAction.type=Transfer;
- break;
- case TransferStat_PostTransfer:
- newAction.type=PostOperation;
- break;
- default:
- break;
- }
- newAction.addAction.id = item.id;
- actionDone << newAction;
- }
- }
- }
- }
-}
-
-//add file transfer to do
-quint64 ListThread::addToTransfer(const QFileInfo& source,const QFileInfo& destination,const CopyMode& mode)
-{
- //add to transfer list
- numberOfTransferIntoToDoList++;
- bytesToTransfer+= source.size();
- actionToDoTransfer temp;
- temp.id = generateIdNumber();
- temp.size = source.size();
- temp.source = source;
- temp.destination= destination;
- temp.mode = mode;
- temp.isRunning = false;
- actionToDoListTransfer << temp;
- //push the new transfer to interface
- returnActionOnCopyList newAction;
- newAction.type = AddingItem;
- newAction.addAction.id = temp.id;
- newAction.addAction.sourceFullPath = source.absoluteFilePath();
- newAction.addAction.sourceFileName = source.fileName();
- newAction.addAction.destinationFullPath = destination.absoluteFilePath();
- newAction.addAction.destinationFileName = destination.fileName();
- newAction.addAction.size = temp.size;
- newAction.addAction.mode = mode;
- actionDone << newAction;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("source: %1, destination: %2, add entry: %3, size: %4, size2: %5").arg(source.absoluteFilePath()).arg(destination.absoluteFilePath()).arg(temp.id).arg(temp.size).arg(newAction.addAction.size));
- return temp.id;
-}
-
-//generate id number
-quint64 ListThread::generateIdNumber()
-{
- idIncrementNumber++;
- if(idIncrementNumber>(((quint64)1024*1024)*1024*1024*2))
- idIncrementNumber=0;
- return idIncrementNumber;
-}
-
-//warning the first entry is accessible will copy
-void ListThread::removeItems(const QList<int> &ids)
-{
- for(int i=0;i<ids.size();i++)
- skipInternal(ids.at(i));
-// emit newActionOnList();
-}
-
-//put on top
-void ListThread::moveItemsOnTop(QList<int> ids)
-{
- if(actionToDoListTransfer.size()<=1)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- //do list operation
- int indexToMove=0;
- loop_size=actionToDoListTransfer.size();
- for (int i=0; i<loop_size; ++i) {
- if(ids.contains(actionToDoListTransfer.at(i).id))
- {
- ids.removeOne(actionToDoListTransfer.at(i).id);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(indexToMove));
- returnActionOnCopyList newAction;
- newAction.type=MoveItem;
- newAction.addAction.id=actionToDoListTransfer.at(i).id;
- newAction.userAction.moveAt=indexToMove;
- newAction.userAction.position=i;
- actionDone << newAction;
- actionToDoListTransfer.move(i,indexToMove);
- indexToMove++;
- if(ids.size()==0)
- {
- //emit newActionOnList();
- return;
- }
- }
- }
-// emit newActionOnList();
-}
-
-//move up
-void ListThread::moveItemsUp(QList<int> ids)
-{
- if(actionToDoListTransfer.size()<=1)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- //do list operation
- int lastGoodPositionExtern=0;
- int lastGoodPositionReal=0;
- bool haveGoodPosition=false;
- bool haveChanged=false;
- loop_size=actionToDoListTransfer.size();
- for (int i=0; i<loop_size; ++i) {
- if(ids.contains(actionToDoListTransfer.at(i).id))
- {
- if(haveGoodPosition)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(i-1));
- returnActionOnCopyList newAction;
- newAction.type=MoveItem;
- newAction.addAction.id=actionToDoListTransfer.at(i).id;
- newAction.userAction.moveAt=lastGoodPositionExtern;
- newAction.userAction.position=i;
- actionDone << newAction;
- actionToDoListTransfer.swap(i,lastGoodPositionReal);
- haveChanged=true;
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Try move up false, item ")+QString::number(i));
- ids.removeOne(actionToDoListTransfer.at(i).id);
- if(ids.size()==0)
- {
-/* if(haveChanged)
- emit newActionOnList();*/
- return;
- }
- }
- else
- {
- lastGoodPositionExtern++;
- lastGoodPositionReal=i;
- haveGoodPosition=true;
- }
- }
- //emit newActionOnList();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-//move down
-void ListThread::moveItemsDown(QList<int> ids)
-{
- if(actionToDoListTransfer.size()<=1)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- //do list operation
- int lastGoodPositionExtern=numberOfTransferIntoToDoList;
- int lastGoodPositionReal=0;
- bool haveGoodPosition=false;
- bool haveChanged=false;
- for (int i=actionToDoListTransfer.size()-1; i>=0; --i) {
- if(ids.contains(actionToDoListTransfer.at(i).id))
- {
- if(haveGoodPosition)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(i+1));
- returnActionOnCopyList newAction;
- newAction.type=MoveItem;
- newAction.addAction.id=actionToDoListTransfer.at(i).id;
- newAction.userAction.moveAt=lastGoodPositionReal;
- newAction.userAction.position=i;
- actionDone << newAction;
- actionToDoListTransfer.swap(i,lastGoodPositionReal);
- haveChanged=true;
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Try move up false, item ")+QString::number(i));
- }
- ids.removeOne(actionToDoListTransfer.at(i).id);
- if(ids.size()==0)
- {
-/* if(haveChanged)
- emit newActionOnList();*/
- return;
- }
- }
- else
- {
- lastGoodPositionExtern--;
- lastGoodPositionReal=i;
- haveGoodPosition=true;
- }
- }
- //emit newActionOnList();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-//put on bottom
-void ListThread::moveItemsOnBottom(QList<int> ids)
-{
- if(actionToDoListTransfer.size()<=1)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- //do list operation
- int lastGoodPositionExtern=numberOfTransferIntoToDoList;
- int lastGoodPositionReal=actionToDoListTransfer.size()-1;
- for (int i=lastGoodPositionReal; i>=0; --i) {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Check action on item ")+QString::number(i));
- if(ids.contains(actionToDoListTransfer.at(i).id))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(lastGoodPositionReal));
- ids.removeOne(actionToDoListTransfer.at(i).id);
- returnActionOnCopyList newAction;
- newAction.type=MoveItem;
- newAction.addAction.id=actionToDoListTransfer.at(i).id;
- newAction.userAction.moveAt=lastGoodPositionExtern;
- newAction.userAction.position=i;
- actionDone << newAction;
- actionToDoListTransfer.move(i,lastGoodPositionReal);
- lastGoodPositionReal--;
- lastGoodPositionExtern--;
- if(ids.size()==0)
- {
-// emit newActionOnList();
- return;
- }
- }
- }
-// emit newActionOnList();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-/** \brief give the forced mode, to export/import transfer list */
-void ListThread::forceMode(const CopyMode &mode)
-{
- if(mode==Copy)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to copy"));
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to move"));
- this->mode=mode;
- forcedMode=true;
-}
-
-void ListThread::exportTransferList(const QString &fileName)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- QFile transferFile(fileName);
- if(transferFile.open(QIODevice::WriteOnly|QIODevice::Truncate))
- {
- transferFile.write(QString("Ultracopier-0.3;Transfer-list;").toUtf8());
- if(!forcedMode)
- transferFile.write(QString("Transfer;").toUtf8());
- else
- {
- if(mode==Copy)
- transferFile.write(QString("Copy;").toUtf8());
- else
- transferFile.write(QString("Move;").toUtf8());
- }
- transferFile.write(QString("Ultracopier-0.3\n").toUtf8());
- bool haveError=false;
- int size=actionToDoListTransfer.size();
- for (int index=0;index<size;++index) {
- if(actionToDoListTransfer.at(index).mode==Copy)
- {
- if(!forcedMode || mode==Copy)
- {
- if(forcedMode)
- transferFile.write(QString("%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8());
- else
- transferFile.write(QString("Copy;%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8());
- }
- else
- haveError=true;
- }
- else if(actionToDoListTransfer.at(index).mode==Move)
- {
- if(!forcedMode || mode==Move)
- {
- if(forcedMode)
- transferFile.write(QString("Move;%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8());
- else
- transferFile.write(QString("%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8());
- }
- else
- haveError=true;
- }
- }
- if(haveError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Unable do to move or copy item into wrong forced mode: %1").arg(transferFile.errorString()));
- emit errorTransferList(tr("Unable do to move or copy item into wrong forced mode: %1").arg(transferFile.errorString()));
- }
- transferFile.close();
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Unable to save the transfer list: %1").arg(transferFile.errorString()));
- emit errorTransferList(tr("Unable to save the transfer list: %1").arg(transferFile.errorString()));
- return;
- }
-}
-
-void ListThread::importTransferList(const QString &fileName)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- QFile transferFile(fileName);
- if(transferFile.open(QIODevice::ReadOnly))
- {
- QString content;
- QByteArray data=transferFile.readLine(64);
- if(data.size()<=0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Problem at the reading, or file size is null"));
- emit errorTransferList(tr("Problem at the reading, or file size is null"));
- return;
- }
- content=QString::fromUtf8(data);
- if(content!="Ultracopier-0.3;Transfer-list;Transfer;Ultracopier-0.3\n" && content!="Ultracopier-0.3;Transfer-list;Copy;Ultracopier-0.3\n" && content!="Ultracopier-0.3;Transfer-list;Move;Ultracopier-0.3\n")
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong header: \"%1\"").arg(content));
- emit errorTransferList(tr("Wrong header: \"%1\"").arg(content));
- return;
- }
- bool transferListMixedMode=false;
- if(content=="Ultracopier-0.3;Transfer-list;Transfer;Ultracopier-0.3\n")
- {
- if(forcedMode)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The transfer list is in mixed mode, but this instance is not in this mode"));
- emit errorTransferList(tr("The transfer list is in mixed mode, but this instance is not in this mode"));
- return;
- }
- else
- transferListMixedMode=true;
- }
- if(content=="Ultracopier-0.3;Transfer-list;Copy;Ultracopier-0.3\n" && (forcedMode && mode==Move))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The transfer list is in copy mode, but this instance is not in this mode: forcedMode: %1, mode: %2").arg(forcedMode).arg(mode));
- emit errorTransferList(tr("The transfer list is in copy mode, but this instance is not in this mode"));
- return;
- }
- if(content=="Ultracopier-0.3;Transfer-list;Move;Ultracopier-0.3\n" && (forcedMode && mode==Copy))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The transfer list is in move mode, but this instance is not in this mode: forcedMode: %1, mode: %2").arg(forcedMode).arg(mode));
- emit errorTransferList(tr("The transfer list is in move mode, but this instance is not in this mode"));
- return;
- }
- bool errorFound=false;
- QRegExp correctLine;
- if(transferListMixedMode)
- correctLine=QRegExp("^(Copy|Move);[^;]+;[^;]+\n$");
- else
- correctLine=QRegExp("^[^;]+;[^;]+\n$");
- QStringList args;
- CopyMode tempMode;
- do
- {
- data=transferFile.readLine(65535*2);
- if(data.size()>0)
- {
- content=QString::fromUtf8(data);
- //do the import here
- if(content.contains(correctLine))
- {
- content.remove("\n");
- args=content.split(";");
- if(forcedMode)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("New data to import in forced mode: %2,%3").arg(args.at(0)).arg(args.at(1)));
- addToTransfer(QFileInfo(args.at(0)),QFileInfo(args.at(1)),mode);
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("New data to import: %1,%2,%3").arg(args.at(0)).arg(args.at(1)).arg(args.at(2)));
- if(args.at(0)=="Copy")
- tempMode=Copy;
- else
- tempMode=Move;
- addToTransfer(QFileInfo(args.at(1)),QFileInfo(args.at(2)),tempMode);
- }
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong line syntax: %1").arg(content));
- errorFound=true;
- }
- }
- }
- while(data.size()>0);
- transferFile.close();
- if(errorFound)
- emit warningTransferList(tr("Some error have been found during the line parsing"));
-// emit newActionOnList();
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Unable to open the transfer list: %1").arg(transferFile.errorString()));
- emit errorTransferList(tr("Unable to open the transfer list: %1").arg(transferFile.errorString()));
- return;
- }
-}
-
-//do new actions
-void ListThread::doNewActions_start_transfer()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("actionToDoListTransfer.size(): %1, numberOfTranferRuning: %2").arg(actionToDoListTransfer.size()).arg(numberOfTranferRuning));
- if(stopIt || putInPause)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- //lunch the transfer in WaitForTheTransfer
- int_for_loop=0;
- loop_size=transferThreadList.size();
- while(int_for_loop<loop_size && numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER)
- {
- if(transferThreadList.at(int_for_loop)->getStat()==TransferStat_WaitForTheTransfer)
- {
- transferThreadList.at(int_for_loop)->startTheTransfer();
- numberOfTranferRuning++;
- }
- int_for_loop++;
- }
- int_for_loop=0;
- while(int_for_loop<loop_size && numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER)
- {
- if(transferThreadList.at(int_for_loop)->getStat()==TransferStat_PreOperation)
- {
- transferThreadList.at(int_for_loop)->startTheTransfer();
- numberOfTranferRuning++;
- }
- int_for_loop++;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"numberOfTranferRuning: "+QString::number(numberOfTranferRuning));
-}
-
-/** \brief lunch the pre-op or inode op
- 1) locate the next next item to do into the both list
- 1a) optimisation posible on the mkpath/rmpath
- 2) determine what need be lunched
- 3) lunch it, rerun the 2)
- */
-void ListThread::doNewActions_inode_manipulation()
-{
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("actionToDoList.size(): %1").arg(actionToDoList.size()));
- if(stopIt || putInPause)
- return;
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- //lunch the pre-op or inode op
- int_for_loop=0;
- int_for_internal_loop=0;
- number_rm_path_moved=0;
- int_for_transfer_thread_search=0;
- actionToDoListTransfer_count=actionToDoListTransfer.count();
- actionToDoListInode_count=actionToDoListInode.count();
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- //search the next transfer action to do
- while(int_for_loop<actionToDoListTransfer_count)
- {
- if(!actionToDoListTransfer[int_for_loop].isRunning)
- {
- //search the next inode action to do
- while(int_for_internal_loop<actionToDoListInode_count)
- {
- if(!actionToDoListInode[int_for_internal_loop].isRunning)
- {
- if(actionToDoListTransfer[int_for_loop].id<actionToDoListInode[int_for_internal_loop].id)
- {
- //do the tranfer action in the next code
- break;
- }
- else
- {
- //do the inode action
- #include "ListThread_InodeAction.cpp"
- }
- }
- int_for_internal_loop++;
- }
- actionToDoTransfer& currentActionToDoTransfer=actionToDoListTransfer[int_for_loop];
- //do the tranfer action
- while(int_for_transfer_thread_search<loop_sub_size_transfer_thread_search)
- {
- /**
- transferThreadList.at(int_for_transfer_thread_search)->transferId==0) /!\ important!
- Because the other thread can have call doNewAction before than this thread have the finish event parsed!
- I this case it lose all data
- */
- currentTransferThread=transferThreadList[int_for_transfer_thread_search];
- if(currentTransferThread->getStat()==TransferStat_Idle && currentTransferThread->transferId==0) // /!\ important!
- {
- currentTransferThread->transferId=currentActionToDoTransfer.id;
- currentTransferThread->transferSize=currentActionToDoTransfer.size;
- currentTransferThread->setFiles(
- currentActionToDoTransfer.source.absoluteFilePath(),
- currentActionToDoTransfer.size,
- currentActionToDoTransfer.destination.absoluteFilePath(),
- currentActionToDoTransfer.mode
- );
- currentActionToDoTransfer.isRunning=true;
-
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("[%1] id: %2 is idle, use it for %3").arg(int_for_loop).arg(currentTransferThread->transferId).arg(currentActionToDoTransfer.destination.absoluteFilePath()));
-
- /// \note wrong position? Else write why it's here
- returnActionOnCopyList newAction;
- newAction.type = PreOperation;
- newAction.addAction.id = currentActionToDoTransfer.id;
- newAction.addAction.sourceFullPath = currentActionToDoTransfer.source.absoluteFilePath();
- newAction.addAction.sourceFileName = currentActionToDoTransfer.source.fileName();
- newAction.addAction.destinationFullPath = currentActionToDoTransfer.destination.absoluteFilePath();
- newAction.addAction.destinationFileName = currentActionToDoTransfer.destination.fileName();
- newAction.addAction.size = currentActionToDoTransfer.size;
- newAction.addAction.mode = currentActionToDoTransfer.mode;
- actionDone << newAction;
- int_for_transfer_thread_search++;
- break;
- }
- int_for_transfer_thread_search++;
- }
- if(int_for_internal_loop==loop_sub_size_transfer_thread_search)
- {
- /// \note Can be normal when all thread is not initialized
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to found free thread to do the transfer");
- break;
- }
- numberOfInodeOperation++;
- if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)
- return;
- }
- int_for_loop++;
- }
- //search the next inode action to do
- while(int_for_internal_loop<actionToDoListInode_count)
- {
- if(!actionToDoListInode[int_for_internal_loop].isRunning)
- {
- //do the inode action
- #include "ListThread_InodeAction.cpp"
- }
- int_for_internal_loop++;
- }
- //error checking
- if((actionToDoListTransfer_count+actionToDoListInode_count)>ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The index have been detected as out of max range: %1>%2").arg(actionToDoListTransfer_count+actionToDoListInode_count).arg(ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT));
- return;
- }
-}
-
-//restart transfer if it can
-void ListThread::restartTransferIfItCan()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- TransferThread *transfer=qobject_cast<TransferThread *>(QObject::sender());
- if(transfer==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!"));
- return;
- }
- if(numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER && transfer->getStat()==TransferStat_WaitForTheTransfer)
- {
- transfer->startTheTransfer();
- numberOfTranferRuning++;
- }
- doNewActions_start_transfer();
-}
-
-/// \brief update the transfer stat
-void ListThread::newTransferStat(TransferStat stat,quint64 id)
-{
- returnActionOnCopyList newAction;
- switch(stat)
- {
- case TransferStat_Idle:
- return;
- break;
- case TransferStat_PreOperation:
- return;
- break;
- case TransferStat_WaitForTheTransfer:
- return;
- break;
- case TransferStat_Transfer:
- newAction.type=Transfer;
- break;
- case TransferStat_PostTransfer:
- case TransferStat_PostOperation:
- newAction.type=PostOperation;
- break;
- case TransferStat_Checksum:
- newAction.type=CustomOperation;
- break;
- default:
- return;
- break;
- }
- newAction.addAction.id = id;
- actionDone << newAction;
-}
-
-void ListThread::set_osBufferLimit(unsigned int osBufferLimit)
-{
- this->osBufferLimit=osBufferLimit;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- transferThreadList.at(index)->set_osBufferLimit(osBufferLimit);
- index++;
- }
-}
-
-void ListThread::set_setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("include.size(): %1, exclude.size(): %2").arg(include.size()).arg(exclude.size()));
- this->include=include;
- this->exclude=exclude;
- int index=0;
- while(index<scanFileOrFolderThreadsPool.size())
- {
- scanFileOrFolderThreadsPool.at(index)->setFilters(include,exclude);
- index++;
- }
-}
-
-void ListThread::set_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
- emit send_sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
-}
-
-void ListThread::mkPathFirstFolderFinish()
-{
- int_for_loop=0;
- loop_size=actionToDoListInode.size();
- while(int_for_loop<loop_size)
- {
- if(actionToDoListInode.at(int_for_loop).type==ActionType_MkPath)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("stop mkpath: %1").arg(actionToDoListInode.at(int_for_loop).folder.absoluteFilePath()));
- actionToDoListInode.removeAt(int_for_loop);
- if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0)
- updateTheStatus();
- numberOfInodeOperation--;
- doNewActions_inode_manipulation();
- return;
- }
- int_for_loop++;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to found item into the todo list");
-}
-
-void ListThread::rmPathFirstFolderFinish()
-{
- int_for_loop=0;
- loop_size=actionToDoListInode.size();
- while(int_for_loop<loop_size)
- {
- if(actionToDoListInode.at(int_for_loop).type==ActionType_RmPath || actionToDoListInode.at(int_for_loop).type==ActionType_RmSync)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("stop rmpath: %1").arg(actionToDoListInode.at(int_for_loop).folder.absoluteFilePath()));
- actionToDoListInode.removeAt(int_for_loop);
- if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0)
- updateTheStatus();
- numberOfInodeOperation--;
- doNewActions_inode_manipulation();
- return;
- }
- int_for_loop++;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to found item into the todo list");
-}
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-
-void ListThread::timedUpdateDebugDialog()
-{
- QStringList newList;
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
- {
- QString stat;
- switch(transferThreadList.at(index)->getStat())
- {
- case TransferStat_Idle:
- stat="Idle";
- break;
- case TransferStat_PreOperation:
- stat="PreOperation";
- break;
- case TransferStat_WaitForTheTransfer:
- stat="WaitForTheTransfer";
- break;
- case TransferStat_Transfer:
- stat="Transfer";
- break;
- case TransferStat_PostOperation:
- stat="PostOperation";
- break;
- case TransferStat_PostTransfer:
- stat="PostTransfer";
- break;
- case TransferStat_Checksum:
- stat="Checksum";
- break;
- default:
- stat=QString("??? (%1)").arg(transferThreadList.at(index)->getStat());
- break;
- }
- newList << QString("%1) (%3,%4) %2")
- .arg(index)
- .arg(stat)
- .arg(transferThreadList.at(index)->readingLetter())
- .arg(transferThreadList.at(index)->writingLetter());
- index++;
- }
- QStringList newList2;
- index=0;
- loop_size=actionToDoListTransfer.size();
- while(index<loop_size)
- {
- newList2 << QString("%1 %2 %3")
- .arg(actionToDoListTransfer.at(index).source.absoluteFilePath())
- .arg(actionToDoListTransfer.at(index).size)
- .arg(actionToDoListTransfer.at(index).destination.absoluteFilePath());
- if(index>(actionToDoListTransfer.size()+2))
- {
- newList2 << QString("...");
- break;
- }
- index++;
- }
- emit updateTheDebugInfo(newList,newList2,numberOfInodeOperation);
-}
-
-#endif
-
-/// \note Can be call without queue because all call will be serialized
-void ListThread::fileAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame)
-{
- emit send_fileAlreadyExists(source,destination,isSame,qobject_cast<TransferThread *>(sender()));
-}
-
-/// \note Can be call without queue because all call will be serialized
-void ListThread::errorOnFile(const QFileInfo &fileInfo,const QString &errorString)
-{
- emit send_errorOnFile(fileInfo,errorString,qobject_cast<TransferThread *>(sender()));
-}
-
-/// \note Can be call without queue because all call will be serialized
-void ListThread::folderAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame)
-{
- emit send_folderAlreadyExists(source,destination,isSame,qobject_cast<scanFileOrFolder *>(sender()));
-}
-
-/// \note Can be call without queue because all call will be serialized
-/// \todo all this part
-void ListThread::errorOnFolder(const QFileInfo &fileInfo,const QString &errorString)
-{
- emit send_errorOnFolder(fileInfo,errorString,qobject_cast<scanFileOrFolder *>(sender()));
-}
-
-//to run the thread
-void ListThread::run()
-{
- exec();
-}
-
-/// \to create transfer thread
-void ListThread::createTransferThread()
-{
- if(stopIt)
- return;
- transferThreadList << new TransferThread();
- TransferThread * last=transferThreadList.last();
- last->transferId=0;
- last->transferSize=0;
- last->setRightTransfer(doRightTransfer);
- last->setKeepDate(keepDate);
- last->setBlockSize(blockSize);
- last->setDrive(drives);
- last->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists);
- last->setMaxSpeed(maxSpeed/ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER);
- last->set_doChecksum(doChecksum);
- last->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible);
- last->set_checksumOnlyOnError(checksumOnlyOnError);
- last->set_osBuffer(osBuffer);
- last->set_osBufferLimited(osBufferLimited);
- last->set_osBufferLimit(osBufferLimit);
- last->setRsync(rsync);
-
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- connect(last,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection);
- #endif // ULTRACOPIER_PLUGIN_DEBUG
- connect(last,SIGNAL(errorOnFile(QFileInfo,QString)), this,SLOT(errorOnFile(QFileInfo,QString)), Qt::QueuedConnection);
- connect(last,SIGNAL(fileAlreadyExists(QFileInfo,QFileInfo,bool)), this,SLOT(fileAlreadyExists(QFileInfo,QFileInfo,bool)), Qt::QueuedConnection);
- connect(last,SIGNAL(tryPutAtBottom()), this,SLOT(transferPutAtBottom()), Qt::QueuedConnection);
- connect(last,SIGNAL(readStopped()), this,SLOT(transferIsFinished()), Qt::QueuedConnection);
- connect(last,SIGNAL(preOperationStopped()), this,SLOT(doNewActions_start_transfer()), Qt::QueuedConnection);
- connect(last,SIGNAL(postOperationStopped()), this,SLOT(transferInodeIsClosed()), Qt::QueuedConnection);
- connect(last,SIGNAL(checkIfItCanBeResumed()), this,SLOT(restartTransferIfItCan()), Qt::QueuedConnection);
- connect(last,SIGNAL(pushStat(TransferStat,quint64)), this,SLOT(newTransferStat(TransferStat,quint64)), Qt::QueuedConnection);
-
- connect(this,SIGNAL(send_sendNewRenamingRules(QString,QString)), last,SLOT(setRenamingRules(QString,QString)), Qt::QueuedConnection);
-
- last->start();
- last->setObjectName(QString("transfer %1").arg(transferThreadList.size()-1));
- last->setMkpathTransfer(&mkpathTransfer);
- last->setRenamingRules(firstRenamingRule,otherRenamingRule);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- last->setId(transferThreadList.size()-1);
- #endif
- if(transferThreadList.size()>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)
- return;
- if(stopIt)
- return;
- doNewActions_inode_manipulation();
- emit askNewTransferThread();
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/ListThread.h b/plugins-alternative/CopyEngine/Rsync/ListThread.h
deleted file mode 100755
index ab4ad64..0000000
--- a/plugins-alternative/CopyEngine/Rsync/ListThread.h
+++ /dev/null
@@ -1,376 +0,0 @@
-/** \file ListThread.h
-\brief Define the list thread, and management to the action to do
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifndef LISTTHREAD_H
-#define LISTTHREAD_H
-
-#include <QThread>
-#include <QObject>
-#include <QList>
-#include <QStringList>
-#include <QFileInfo>
-#include <QSemaphore>
-#include <QTextStream>
-#include <QFile>
-
-#include "../../../interface/PluginInterface_CopyEngine.h"
-#include "scanFileOrFolder.h"
-#include "TransferThread.h"
-#include "MkPath.h"
-#include "RmPath.h"
-#include "Environment.h"
-
-/// \brief Define the list thread, and management to the action to do
-class ListThread : public QThread
-{
- Q_OBJECT
-public:
- explicit ListThread(FacilityInterface * facilityInterface);
- ~ListThread();
- //duplication copy detection
- /** \brief compare the current sources of the copy, with the passed arguments
- * \param sources the sources list to compares with the current sources list
- * \return true if have same sources, else false (or empty) */
- bool haveSameSource(QStringList sources);
- /** \brief compare the current destination of the copy, with the passed arguments
- * \param destination the destination to compares with the current destination
- * \return true if have same destination, else false (or empty) */
- bool haveSameDestination(QString destination);
- //external soft like file browser have send copy/move list to do
- /** \brief send copy with destination
- * \param sources the sources list to copy
- * \param destination the destination to copy
- * \return true if the copy have been accepted */
- bool newCopy(QStringList sources,QString destination);
- /** \brief send move without destination, ask the destination
- * \param sources the sources list to move
- * \param destination the destination to move
- * \return true if the move have been accepted */
- bool newMove(QStringList sources,QString destination);
- /** \brief get the speed limitation
- * < -1 if not able, 0 if disabled */
- qint64 getSpeedLimitation();
- /** \brief to set drives detected
- * specific to this copy engine */
- void setDrive(QStringList drives);
- /// \brief to set the collision action
- void setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists);
- /** \brief to sync the transfer list
- * Used when the interface is changed, useful to minimize the memory size */
- void syncTransferList();
- /// \brief to store one action to do
- struct actionToDoTransfer
- {
- quint64 id;
- qint64 size;///< Used to set: used in case of transfer or remainingInode for drop folder
- QFileInfo source;///< Used to set: source for transfer, folder to create, folder to drop
- QFileInfo destination;
- CopyMode mode;
- bool isRunning;///< store if the action si running
- //TransferThread * transfer; // -> see transferThreadList
- };
- QList<actionToDoTransfer> actionToDoListTransfer;
- /// \brief get action type
- enum ActionType
- {
- ActionType_MkPath=1,
- ActionType_RmPath=2,
- ActionType_RmSync=3
- };
- /// \brief to store one action to do
- struct actionToDoInode
- {
- ActionType type;///< \see ActionType
- quint64 id;
- qint64 size;///< Used to set: used in case of transfer or remainingInode for drop folder
- QFileInfo folder;///< Used to set: source for transfer, folder to create, folder to drop
- bool isRunning;///< store if the action si running
- };
- QList<actionToDoInode> actionToDoListInode;
- QList<actionToDoInode> actionToDoListInode_afterTheTransfer;
- int numberOfInodeOperation;
- //dir operation thread queue
- MkPath mkPathQueue;
- RmPath rmPathQueue;
- //to get the return value from copyEngine
- bool getReturnBoolToCopyEngine();
- QPair<quint64,quint64> getReturnPairQuint64ToCopyEngine();
- ItemOfCopyList getReturnItemOfCopyListToCopyEngine();
-
- void set_doChecksum(bool doChecksum);
- void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible);
- void set_checksumOnlyOnError(bool checksumOnlyOnError);
- void set_osBuffer(bool osBuffer);
- void set_osBufferLimited(bool osBufferLimited);
-public slots:
- //action on the copy
- /// \brief put the transfer in pause
- void pause();
- /// \brief resume the transfer
- void resume();
- /** \brief skip one transfer entry
- * \param id id of the file to remove */
- void skip(const quint64 &id);
- /** \brief skip as interanl one transfer entry
- * \param id id of the file to remove */
- bool skipInternal(const quint64 &id);
- /// \brief cancel all the transfer
- void cancel();
- //edit the transfer list
- /** \brief remove the selected item
- * \param ids ids is the id list of the selected items */
- void removeItems(const QList<int> &ids);
- /** \brief move on top of the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsOnTop(QList<int> ids);
- /** \brief move up the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsUp(QList<int> ids);
- /** \brief move down the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsDown(QList<int> ids);
- /** \brief move on bottom of the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsOnBottom(QList<int> ids);
-
- /** \brief give the forced mode, to export/import transfer list */
- void forceMode(const CopyMode &mode);
- /// \brief export the transfer list into a file
- void exportTransferList(const QString &fileName);
- /// \brief import the transfer list into a file
- void importTransferList(const QString &fileName);
-
- /// \brief set the folder local colision
- void setFolderColision(FolderExistsAction alwaysDoThisActionForFolderExists);
- /** \brief to set the speed limitation
- * -1 if not able, 0 if disabled */
- bool setSpeedLimitation(const qint64 &speedLimitation);
- /// \brief set the copy info and options before runing
- void setRightTransfer(const bool doRightTransfer);
- /// \brief set keep date
- void setKeepDate(const bool keepDate);
- /// \brief set block size in KB
- void setBlockSize(const int blockSize);
- /// \brief set auto start
- void setAutoStart(const bool autoStart);
- /// \brief set rsync
- void setRsync(const bool rsync);
- /// \brief set check destination folder
- void setCheckDestinationFolderExists(const bool checkDestinationFolderExists);
- /// \brief set data local to the thread
- void setAlwaysFileExistsAction(FileExistsAction alwaysDoThisActionForFileExists);
- /// \brief do new actions, start transfer
- void doNewActions_start_transfer();
- /** \brief lunch the pre-op or inode op
- 1) locate the next next item to do into the both list
- 1a) optimisation posible on the mkpath/rmpath
- 2) determine what need be lunched
- 3) lunch it, rerun the 2)
- */
- void doNewActions_inode_manipulation();
- /// \brief restart transfer if it can
- void restartTransferIfItCan();
-
- /// \brief update the transfer stat
- void newTransferStat(TransferStat stat,quint64 id);
-
- void set_osBufferLimit(unsigned int osBufferLimit);
- void set_setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude);
- void set_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
-
- //send action done
- void sendActionDone();
- //send progression
- void sendProgression();
-private:
- QSemaphore mkpathTransfer;
- QString sourceDrive;
- bool sourceDriveMultiple;
- bool stopIt;
- QString destinationDrive;
- bool destinationDriveMultiple;
- QList<scanFileOrFolder *> scanFileOrFolderThreadsPool;
- int numberOfTransferIntoToDoList;
- QList<TransferThread *> transferThreadList;
- scanFileOrFolder * newScanThread(CopyMode mode);
- quint64 bytesToTransfer;
- quint64 bytesTransfered;
- bool autoStart;
- bool rsync;
- bool putInPause;
- QList<returnActionOnCopyList> actionDone;///< to action to send to the interface
- quint64 idIncrementNumber;///< to store the last id returned
- qint64 actualRealByteTransfered;
- int preOperationNumber;
- int numberOfTranferRuning;
- int maxSpeed;///< in KB/s, assume as 0KB/s as default like every where
- FolderExistsAction alwaysDoThisActionForFolderExists;
- bool checkDestinationFolderExists;
- bool doChecksum;
- bool checksumIgnoreIfImpossible;
- bool checksumOnlyOnError;
- bool osBuffer;
- bool osBufferLimited;
- unsigned int osBufferLimit;
- QList<Filters_rules> include,exclude;
- CopyMode mode;
- bool forcedMode;
- QString firstRenamingRule;
- QString otherRenamingRule;
-
- //add file transfer to do
- quint64 addToTransfer(const QFileInfo& source,const QFileInfo& destination,const CopyMode& mode);
- //generate id number
- quint64 generateIdNumber();
- //warning the first entry is accessible will copy
- bool removeItems(quint64 id);
- //put on top
- bool moveOnTopItem(quint64 id);
- //move up
- bool moveUpItem(quint64 id);
- //move down
- bool moveDownItem(quint64 id);
- //put on bottom
- bool moveOnBottomItem(quint64 id);
- //general transfer
- void startGeneralTransfer();
- //debug windows if needed
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- QTimer timerUpdateDebugDialog;
- #endif
- FacilityInterface * facilityInterface;
- //temp variable for not always alocate the memory
- int int_for_loop,int_for_internal_loop,int_for_transfer_thread_search,loop_size,loop_sub_size,loop_sub_size_transfer_thread_search,number_rm_path_moved;
- TransferThread *temp_transfer_thread;
- bool isFound;
- bool updateTheStatus_listing,updateTheStatus_copying;
- EngineActionInProgress updateTheStatus_action_in_progress;
- QSemaphore waitConstructor,waitCancel;
- int actionToDoListTransfer_count,actionToDoListInode_count;
- bool doTransfer,doInode;
- qint64 oversize;//used as temp variable
- qint64 currentProgression;
- qint64 copiedSize,totalSize,localOverSize;
- QList<ProgressionItem> progressionList;
- TransferThread* currentTransferThread;
- //memory variable for transfer thread creation
- bool doRightTransfer;
- bool keepDate;
- int blockSize;
- QStringList drives;
- FileExistsAction alwaysDoThisActionForFileExists;
- //to return value to the copyEngine
- bool returnBoolToCopyEngine;
- QPair<quint64,quint64> returnPairQuint64ToCopyEngine;
- QList<ItemOfCopyList> returnListItemOfCopyListToCopyEngine;
- ItemOfCopyList returnItemOfCopyListToCopyEngine;
- ProgressionItem tempItem;
-
- void realByteTransfered();
-private slots:
- void scanThreadHaveFinish(bool skipFirstRemove=false);
- void updateTheStatus();
- void fileTransfer(const QFileInfo &sourceFileInfo,const QFileInfo &destinationFileInfo,const CopyMode &mode);
- //mkpath event
- void mkPathFirstFolderFinish();
- //rmpath event
- void rmPathFirstFolderFinish();
- //transfer is finished
- void transferIsFinished();
- /** \brief put the current file at bottom in case of error
- \note ONLY IN CASE OF ERROR */
- void transferPutAtBottom();
- //transfer is finished
- void transferInodeIsClosed();
- //debug windows if needed
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- void timedUpdateDebugDialog();
- #endif
- //dialog message
- /// \note Can be call without queue because all call will be serialized
- void fileAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame);
- /// \note Can be call without queue because all call will be serialized
- void errorOnFile(const QFileInfo &fileInfo,const QString &errorString);
- /// \note Can be call without queue because all call will be serialized
- void folderAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame);
- /// \note Can be call without queue because all call will be serialized
- void errorOnFolder(const QFileInfo &fileInfo,const QString &errorString);
- //to run the thread
- void run();
- /// \to create transfer thread
- void createTransferThread();
- //mk path to do
- quint64 addToMkPath(const QString& folder);
- //add rm path to do
- void addToRmPath(const QString& folder,const int& inodeToRemove);
- //rsync rm
- void addToRmForRsync(const QString& inode);
- //send the progression, after full reset of the interface (then all is empty)
- void syncTransferList_internal();
-signals:
- //send information about the copy
- void actionInProgess(EngineActionInProgress); //should update interface information on this event
-
- void newActionOnList(const QList<returnActionOnCopyList> &);///very important, need be temporized to group the modification to do and not flood the interface
- void syncReady();
-
- /** \brief to get the progression for a specific file
- * \param id the id of the transfer, id send during population the transfer list
- * first = current transfered byte, second = byte to transfer */
- void pushFileProgression(const QList<ProgressionItem> &progressionList);
- //get information about the copy
- /** \brief to get the general progression
- * first = current transfered byte, second = byte to transfer */
- void pushGeneralProgression(const quint64 &,const quint64 &);
-
- void newFolderListing(const QString &path);
- void newCollisionAction(QString action);
- void newErrorAction(QString action);
- void isInPause(bool);
-
- //when can be deleted
- void canBeDeleted();
-
- //send error occurred
- void error(QString path,quint64 size,QDateTime mtime,QString error);
- //for the extra logging
- void rmPath(QString path);
- void mkPath(QString path);
- /// \brief To debug source
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- void updateTheDebugInfo(QStringList,QStringList,int);
- #endif
-
- //other signal
- /// \note Can be call without queue because all call will be serialized
- void send_fileAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,TransferThread * thread);
- /// \note Can be call without queue because all call will be serialized
- void send_errorOnFile(QFileInfo fileInfo,QString errorString,TransferThread * thread);
- /// \note Can be call without queue because all call will be serialized
- void send_folderAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,scanFileOrFolder * thread);
- /// \note Can be call without queue because all call will be serialized
- void send_errorOnFolder(QFileInfo fileInfo,QString errorString,scanFileOrFolder * thread);
- //send the progression
- void send_syncTransferList();
- //mkpath error event
- void mkPathErrorOnFolder(QFileInfo fileInfo,QString errorString);
- //rmpath error event
- void rmPathErrorOnFolder(QFileInfo fileInfo,QString errorString);
- //to close
- void tryCancel();
- //to ask new transfer thread
- void askNewTransferThread();
-
- void warningTransferList(QString warning);
- void errorTransferList(QString error);
- void send_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
- void send_realBytesTransfered(quint64);
-};
-
-#endif // LISTTHREAD_H
diff --git a/plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp b/plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp
deleted file mode 100644
index c495f60..0000000
--- a/plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/** \file ListThread_InodeAction.cpp
-\brief To be included into ListThread.cpp, to optimize and prevent code duplication
-\see ListThread.cpp
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifdef LISTTHREAD_H
-
-//do the inode action
-actionToDoInode& currentActionToDoInode=actionToDoListInode[int_for_internal_loop];
-switch(currentActionToDoInode.type)
-{
-case ActionType_MkPath:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("launch mkpath: %1").arg(currentActionToDoInode.folder.absoluteFilePath()));
- mkPathQueue.addPath(currentActionToDoInode.folder.absoluteFilePath());
- currentActionToDoInode.isRunning=true;
- numberOfInodeOperation++;
- if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)
- return;
-break;
-case ActionType_RmSync:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("launch rm to sync: %1").arg(currentActionToDoInode.folder.absoluteFilePath()));
- rmPathQueue.addPath(currentActionToDoInode.folder.absoluteFilePath(),true);
- currentActionToDoInode.isRunning=true;
- numberOfInodeOperation++;
- if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)
- return;
-break;
-case ActionType_RmPath:
-/* What is this code?
- if((int_for_loop+number_rm_path_moved)>=(loop_size-1))
- {
- if(numberOfTranferRuning)
- break;
- else
- currentActionToDoInode.size=0;
- }*/
- //then empty (no file), can try remove it
- if(true)//currentActionToDoInode.size==0
- {
- if(numberOfTranferRuning>0)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("skipped because already inode = 0 and transfer is running: %1").arg(currentActionToDoInode.folder.absoluteFilePath()));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("launch rmpath: %1").arg(currentActionToDoInode.folder.absoluteFilePath()));
- rmPathQueue.addPath(currentActionToDoInode.folder.absoluteFilePath(),false);
- currentActionToDoInode.isRunning=true;
- numberOfInodeOperation++;
- if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)
- return;
- }
- else //have not finish all the transfer into it, do it later
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"should never pass here");
- /*actionToDoListInode.move(int_for_internal_loop,actionToDoListInode_count-1);
- currentActionToDoInode.id=generateIdNumber();
- number_rm_path_moved++;
- currentActionToDoInode.size=0;
- continue;*/
- }
-break;
-default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong type at inode action"));
- return;
-}
-
-#endif
diff --git a/plugins-alternative/CopyEngine/Rsync/MkPath.cpp b/plugins-alternative/CopyEngine/Rsync/MkPath.cpp
deleted file mode 100644
index dd71231..0000000
--- a/plugins-alternative/CopyEngine/Rsync/MkPath.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-#include "MkPath.h"
-
-MkPath::MkPath()
-{
- stopIt=false;
- waitAction=false;
- setObjectName("MkPath");
- moveToThread(this);
- start();
-}
-
-MkPath::~MkPath()
-{
- stopIt=true;
- quit();
- wait();
-}
-
-void MkPath::addPath(const QString &path)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path);
- if(stopIt)
- return;
- emit internalStartAddPath(path);
-}
-
-void MkPath::skip()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit internalStartSkip();
-}
-
-void MkPath::retry()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit internalStartRetry();
-}
-
-void MkPath::run()
-{
- connect(this,SIGNAL(internalStartAddPath(QString)),this,SLOT(internalAddPath(QString)),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartDoThisPath()),this,SLOT(internalDoThisPath()),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartSkip()),this,SLOT(internalSkip()),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartRetry()),this,SLOT(internalRetry()),Qt::QueuedConnection);
- exec();
-}
-
-void MkPath::internalDoThisPath()
-{
- if(waitAction || pathList.isEmpty())
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+pathList.first());
- if(!dir.exists(pathList.first()))
- if(!dir.mkpath(pathList.first()))
- {
- if(!dir.exists(pathList.first()))
- {
- if(stopIt)
- return;
- waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the folder: "+pathList.first());
- emit errorOnFolder(pathList.first(),tr("Unable to create the folder"));
- return;
- }
- }
- pathList.removeFirst();
- emit firstFolderFinish();
- checkIfCanDoTheNext();
-}
-
-void MkPath::internalAddPath(const QString &path)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path);
- pathList << path;
- if(!waitAction)
- checkIfCanDoTheNext();
-}
-
-void MkPath::checkIfCanDoTheNext()
-{
- if(!waitAction && !stopIt && pathList.size()>0)
- emit internalStartDoThisPath();
-}
-
-void MkPath::internalSkip()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- waitAction=false;
- pathList.removeFirst();
- emit firstFolderFinish();
- checkIfCanDoTheNext();
-}
-
-void MkPath::internalRetry()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- waitAction=false;
- checkIfCanDoTheNext();
-}
-
diff --git a/plugins-alternative/CopyEngine/Rsync/MkPath.h b/plugins-alternative/CopyEngine/Rsync/MkPath.h
deleted file mode 100644
index 5d00d60..0000000
--- a/plugins-alternative/CopyEngine/Rsync/MkPath.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/** \file MkPath.h
-\brief Make the path given as queued mkpath
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifndef MKPATH_H
-#define MKPATH_H
-
-#include <QThread>
-#include <QFileInfo>
-#include <QString>
-#include <QSemaphore>
-#include <QStringList>
-#include <QDir>
-
-#include "Environment.h"
-
-/// \brief Make the path given as queued mkpath
-class MkPath : public QThread
-{
- Q_OBJECT
-public:
- explicit MkPath();
- ~MkPath();
- /// \brief add path to make
- void addPath(const QString &path);
-signals:
- void errorOnFolder(const QFileInfo &,const QString &);
- void firstFolderFinish();
- void internalStartAddPath(const QString &path);
- void internalStartDoThisPath();
- void internalStartSkip();
- void internalStartRetry();
- void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
-public slots:
- /// \brief skip after creation error
- void skip();
- /// \brief retry after creation error
- void retry();
-private:
- void run();
- bool waitAction;
- bool stopIt;
- bool skipIt;
- QStringList pathList;
- void checkIfCanDoTheNext();
- QDir dir;
-private slots:
- void internalDoThisPath();
- void internalAddPath(const QString &path);
- void internalSkip();
- void internalRetry();
-};
-
-#endif // MKPATH_H
diff --git a/plugins-alternative/CopyEngine/Rsync/ReadThread.cpp b/plugins-alternative/CopyEngine/Rsync/ReadThread.cpp
deleted file mode 100644
index 3c7bfc1..0000000
--- a/plugins-alternative/CopyEngine/Rsync/ReadThread.cpp
+++ /dev/null
@@ -1,597 +0,0 @@
-#include "ReadThread.h"
-
-ReadThread::ReadThread()
-{
- start();
- moveToThread(this);
- stopIt=false;
- putInPause=false;
- blockSize=1024*1024;
- setObjectName("read");
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- isInReadLoop=false;
- tryStartRead=false;
- isOpen.release();
-}
-
-ReadThread::~ReadThread()
-{
- stopIt=true;
- disconnect(this);
- waitNewClockForSpeed.release();
- isOpen.acquire();
- exit();
- wait();
-}
-
-void ReadThread::run()
-{
- connect(this,SIGNAL(internalStartOpen()), this,SLOT(internalOpen()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartReopen()), this,SLOT(internalReopen()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartRead()), this,SLOT(internalRead()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartClose()), this,SLOT(internalClose()), Qt::QueuedConnection);
- connect(this,SIGNAL(checkIfIsWait()), this,SLOT(isInWait()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartChecksum()), this,SLOT(checkSum()), Qt::QueuedConnection);
- exec();
-}
-
-void ReadThread::open(const QString &name,const CopyMode &mode)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open source: "+name);
- if(file.isOpen())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] previous file is already open: "+file.fileName()+", try open: "+this->name);
- return;
- }
- if(isInReadLoop)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] previous file is already readding: "+file.fileName()+", try open: "+this->name);
- return;
- }
- if(tryStartRead)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] previous file is already try read: "+file.fileName()+", try open: "+this->name);
- return;
- }
- fakeMode=false;
- this->name=name;
- this->mode=mode;
- emit internalStartOpen();
-}
-
-QString ReadThread::errorString()
-{
- return errorString_internal;
-}
-
-void ReadThread::stop()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop()");
- stopIt=true;
- if(isOpen.available()>0)
- return;
- emit internalStartClose();
-}
-
-bool ReadThread::pause()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] try put read thread in pause");
- putInPause=true;
- stopIt=true;
- return isInReadLoop;
-}
-
-void ReadThread::resume()
-{
- if(putInPause)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- putInPause=false;
- stopIt=false;
- }
- else
- return;
- if(tryStartRead)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] already in try start");
- return;
- }
- tryStartRead=true;
- if(isInReadLoop)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] is in read loop");
- return;
- }
- if(!file.isOpen())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] file is not open");
- return;
- }
- emit internalStartRead();
-}
-
-bool ReadThread::seek(qint64 position)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with: "+QString::number(position));
- if(position>file.size())
- return false;
- return file.seek(position);
-}
-
-qint64 ReadThread::size()
-{
- return file.size();
-}
-
-void ReadThread::postOperation()
-{
- emit internalStartClose();
-}
-
-void ReadThread::checkSum()
-{
- QByteArray blockArray;
- QCryptographicHash hash(QCryptographicHash::Sha1);
- isInReadLoop=true;
- lastGoodPosition=0;
- seek(0);
- int sizeReaden=0;
- do
- {
- //read one block
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Read;
- #endif
- blockArray=file.read(blockSize);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
-
- if(file.error()!=QFile::NoError)
- {
- errorString_internal=tr("Unable to read the source file: ")+file.errorString()+" ("+QString::number(file.error())+")";
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file.error()!=QFile::NoError: %1, error: %2").arg(QString::number(file.error())).arg(errorString_internal));
- emit error();
- isInReadLoop=false;
- return;
- }
- sizeReaden=blockArray.size();
- if(sizeReaden>0)
- {
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Checksum;
- #endif
- hash.addData(blockArray);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
-
- if(stopIt)
- break;
-
- lastGoodPosition+=blockArray.size();
-
- //wait for limitation speed if stop not query
- if(maxSpeed>0)
- {
- numberOfBlockCopied++;
- if(numberOfBlockCopied>=MultiForBigSpeed)
- {
- numberOfBlockCopied=0;
- waitNewClockForSpeed.acquire();
- if(stopIt)
- break;
- }
- }
- }
- }
- while(sizeReaden>0 && !stopIt);
- if(lastGoodPosition>file.size())
- {
- errorString_internal=tr("File truncated during the read, possible data change");
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Source truncated during the read: %1 (%2)").arg(file.errorString()).arg(QString::number(file.error())));
- emit error();
- isInReadLoop=false;
- return;
- }
- isInReadLoop=false;
- if(stopIt)
- {
- if(putInPause)
- emit isInPause();
- stopIt=false;
- return;
- }
- emit checksumFinish(hash.result());
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop the read");
-}
-
-bool ReadThread::internalOpen(bool resetLastGoodPosition)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] internalOpen source: "+name);
- stopIt=false;
- putInPause=false;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=InodeOperation;
- #endif
- if(file.isOpen())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already open! source: "+name);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- return false;
- }
- file.setFileName(name);
- QIODevice::OpenMode openMode=QIODevice::ReadOnly;
- if(mode==Move)
- openMode=QIODevice::ReadWrite;
- seekToZero=false;
- if(file.open(openMode))
- {
- size_at_open=file.size();
- mtime_at_open=QFileInfo(file).lastModified();
- putInPause=false;
- if(resetLastGoodPosition)
- {
- lastGoodPosition=0;
- seek(0);
- emit opened();
- }
- else if(!seek(lastGoodPosition))
- {
- errorString_internal=file.errorString();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable to seek after open: %1, error: %2").arg(name).arg(errorString_internal));
- emit error();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- return false;
- }
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- isOpen.acquire();
- return true;
- }
- else
- {
- errorString_internal=file.errorString();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable to open: %1, error: %2").arg(name).arg(errorString_internal));
- emit error();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- return false;
- }
-}
-
-void ReadThread::internalRead()
-{
- isInReadLoop=true;
- tryStartRead=false;
- if(stopIt)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] stopIt == true, then quit");
- internalClose();
- return;
- }
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=InodeOperation;
- #endif
- int sizeReaden=0;
- if(!file.isOpen())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] is not open!");
- return;
- }
- QByteArray blockArray;
- //numberOfBlockCopied = 0;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start the copy");
- emit readIsStarted();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- if(stopIt)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] stopIt == true, then quit");
- internalClose();
- return;
- }
- do
- {
- //read one block
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Read;
- #endif
- blockArray=file.read(blockSize);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
-
- if(file.error()!=QFile::NoError)
- {
- errorString_internal=tr("Unable to read the source file: ")+file.errorString()+" ("+QString::number(file.error())+")";
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file.error()!=QFile::NoError: %1, error: %2").arg(QString::number(file.error())).arg(errorString_internal));
- emit error();
- isInReadLoop=false;
- return;
- }
- sizeReaden=blockArray.size();
- if(sizeReaden>0)
- {
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=WaitWritePipe;
- #endif
- if(!writeThread->write(blockArray))
- {
- if(!stopIt)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] stopped because the write is stopped: "+QString::number(lastGoodPosition));
- stopIt=true;
- }
- }
-
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
-
- if(stopIt)
- break;
-
- lastGoodPosition+=blockArray.size();
-
- //wait for limitation speed if stop not query
- if(maxSpeed>0)
- {
- numberOfBlockCopied++;
- if(numberOfBlockCopied>=MultiForBigSpeed)
- {
- numberOfBlockCopied=0;
- waitNewClockForSpeed.acquire();
- if(stopIt)
- break;
- }
- }
- }
- /*
- if(lastGoodPosition>16*1024)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Test error in reading: %1 (%2)").arg(file.errorString()).arg(file.error()));
- errorString_internal=QString("Test error in reading: %1 (%2)").arg(file.errorString()).arg(file.error());
- emit error();
- isInReadLoop=false;
- return;
- }
- */
- }
- while(sizeReaden>0 && !stopIt);
- if(lastGoodPosition>file.size())
- {
- errorString_internal=tr("File truncated during the read, possible data change");
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Source truncated during the read: %1 (%2)").arg(file.errorString()).arg(QString::number(file.error())));
- emit error();
- isInReadLoop=false;
- return;
- }
- isInReadLoop=false;
- if(stopIt)
- {
- if(putInPause)
- emit isInPause();
- stopIt=false;
- return;
- }
- emit readIsStopped();//will product by signal connection writeThread->endIsDetected();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop the read");
-}
-
-void ReadThread::startRead()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- if(tryStartRead)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] already in try start");
- return;
- }
- if(isInReadLoop)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped");
- else
- {
- tryStartRead=true;
- emit internalStartRead();
- }
-}
-
-void ReadThread::internalClose(bool callByTheDestructor)
-{
- /// \note never send signal here, because it's called by the destructor
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- if(!fakeMode)
- file.close();
- if(!callByTheDestructor)
- emit closed();
-
- /// \note always the last of this function
- if(!fakeMode)
- isOpen.release();
-}
-
-/** \brief set block size
-\param block the new block size in KB
-\return Return true if succes */
-bool ReadThread::setBlockSize(const int blockSize)
-{
- if(blockSize<1 || blockSize>16384)
- {
- this->blockSize=blockSize*1024;
- //set the new max speed because the timer have changed
- setMaxSpeed(maxSpeed);
- return true;
- }
- else
- return false;
-}
-
-/*! \brief Set the max speed
-\param tempMaxSpeed Set the max speed in KB/s, 0 for no limit */
-int ReadThread::setMaxSpeed(const int maxSpeed)
-{
- if(this->maxSpeed==0 && maxSpeed==0 && waitNewClockForSpeed.available()>0)
- waitNewClockForSpeed.tryAcquire(waitNewClockForSpeed.available());
- this->maxSpeed=maxSpeed;
- if(this->maxSpeed>0)
- {
- int NewInterval,newMultiForBigSpeed=0;
- do
- {
- newMultiForBigSpeed++;
- NewInterval=(blockSize*newMultiForBigSpeed)/(this->maxSpeed);
- }
- while (NewInterval<ULTRACOPIER_PLUGIN_MINTIMERINTERVAL);
- if(NewInterval>ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL)
- {
- NewInterval=ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL;
- newMultiForBigSpeed=1;
- blockSize=this->maxSpeed*NewInterval;
- }
- MultiForBigSpeed=newMultiForBigSpeed;
- return NewInterval;
- }
- else
- {
- waitNewClockForSpeed.release();
- return 0;
- }
-}
-
-/// \brief For give timer every X ms
-void ReadThread::timeOfTheBlockCopyFinished()
-{
- if(waitNewClockForSpeed.available()<ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT)
- waitNewClockForSpeed.release();
- //why not just use waitNewClockForSpeed.release() ?
-}
-
-/// \brief do the fake open
-void ReadThread::fakeOpen()
-{
- fakeMode=true;
- emit opened();
-}
-
-/// \brief do the fake writeIsStarted
-void ReadThread::fakeReadIsStarted()
-{
- emit readIsStarted();
-}
-
-/// \brief do the fake writeIsStopped
-void ReadThread::fakeReadIsStopped()
-{
- emit readIsStopped();
-}
-
-/// do the checksum
-void ReadThread::startCheckSum()
-{
- emit internalStartChecksum();
-}
-
-qint64 ReadThread::getLastGoodPosition()
-{
- /*if(lastGoodPosition>file.size())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] Bug, the lastGoodPosition is greater than the file size!");
- return file.size();
- }
- else*/
- return lastGoodPosition;
-}
-
-//reopen after an error
-void ReadThread::reopen()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- if(isInReadLoop)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] try reopen where read is not finish");
- return;
- }
- stopIt=true;
- emit internalStartReopen();
-}
-
-bool ReadThread::internalReopen()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- stopIt=false;
- file.close();
- if(size_at_open!=file.size() && mtime_at_open!=QFileInfo(file).lastModified())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] source file have changed since the last open, restart all");
- //fix this function like the close function
- if(internalOpen(true))
- {
- emit resumeAfterErrorByRestartAll();
- return true;
- }
- else
- return false;
- }
- else
- {
- //fix this function like the close function
- if(internalOpen(false))
- {
- emit resumeAfterErrorByRestartAtTheLastPosition();
- return true;
- }
- else
- return false;
- }
-}
-
-//set the write thread
-void ReadThread::setWriteThread(WriteThread * writeThread)
-{
- this->writeThread=writeThread;
-}
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG
-//to set the id
-void ReadThread::setId(int id)
-{
- this->id=id;
-}
-#endif
-
-void ReadThread::seekToZeroAndWait()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- stopIt=true;
- seekToZero=true;
- emit checkIfIsWait();
-}
-
-void ReadThread::isInWait()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- if(seekToZero)
- {
- seekToZero=false;
- if(file.isOpen())
- seek(0);
- else
- internalOpen(true);
- emit isSeekToZeroAndWait();
- }
-}
-
-bool ReadThread::isReading()
-{
- return isInReadLoop;
-}
-
diff --git a/plugins-alternative/CopyEngine/Rsync/ReadThread.h b/plugins-alternative/CopyEngine/Rsync/ReadThread.h
deleted file mode 100644
index 1d1eabc..0000000
--- a/plugins-alternative/CopyEngine/Rsync/ReadThread.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/** \file ReadThread.h
-\brief Thread changed to open/close and read the source file
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifndef READTHREAD_H
-#define READTHREAD_H
-
-#include <QThread>
-#include <QByteArray>
-#include <QSemaphore>
-#include <QTimer>
-#include <QDateTime>
-#include <QFileInfo>
-#include <QCryptographicHash>
-
-#include "WriteThread.h"
-#include "Environment.h"
-#include "StructEnumDefinition_CopyEngine.h"
-#include "AvancedQFile.h"
-
-/// \brief Thread changed to open/close and read the source file
-class ReadThread : public QThread
-{
- Q_OBJECT
-public:
- explicit ReadThread();
- ~ReadThread();
-protected:
- void run();
-public:
- /// \brief open with the name and copy mode
- void open(const QString &name,const CopyMode &mode);
- /// \brief return the error string
- QString errorString();
- //QByteArray read(qint64 position,qint64 maxSize);
- /// \brief stop the copy
- void stop();
- /// \brief put the copy in pause
- bool pause();
- /// \brief resume the copy
- void resume();
- /// \brief get the size of the source file
- qint64 size();
- /// \brief get the last good position
- qint64 getLastGoodPosition();
- /// \brief start the reading of the source file
- void startRead();
- /// \brief set the current max speed in KB/s
- int setMaxSpeed(int maxSpeed);
- /// \brief set block size in KB
- bool setBlockSize(const int blockSize);
- /// \brief reopen after an error
- void reopen();
- /// \brief set the write thread
- void setWriteThread(WriteThread * writeThread);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief to set the id
- void setId(int id);
- /// \brief stat
- enum ReadStat
- {
- Idle=0,
- InodeOperation=1,
- Read=2,
- WaitWritePipe=3,
- Checksum=4
- };
- ReadStat stat;
- #endif
- /// \brief return if it's reading
- bool isReading();
- /// \brief executed at regular interval to do a speed throling
- void timeOfTheBlockCopyFinished();
- /// \brief do the fake open
- void fakeOpen();
- /// \brief do the fake readIsStarted
- void fakeReadIsStarted();
- /// \brief do the fake readIsStopped
- void fakeReadIsStopped();
- /// do the checksum
- void startCheckSum();
-public slots:
- /// \brief to reset the copy, and put at the same state when it just open
- void seekToZeroAndWait();
- void postOperation();
- /// do the checksum
- void checkSum();
-signals:
- void error();
- void isInPause();
- void opened();
- void readIsStarted();
- void readIsStopped();
- void closed();
- void isSeekToZeroAndWait();
- void checkIfIsWait();
- void resumeAfterErrorByRestartAll();
- void resumeAfterErrorByRestartAtTheLastPosition();
- void checksumFinish(const QByteArray&);
- // internal signals
- void internalStartOpen();
- void internalStartChecksum();
- void internalStartReopen();
- void internalStartRead();
- void internalStartClose();
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
-
-private:
- QString name;
- QString errorString_internal;
- AvancedQFile file;
- volatile bool stopIt;
- CopyMode mode;
- qint64 lastGoodPosition;
- volatile int blockSize;
- volatile int maxSpeed; ///< The max speed in KB/s, 0 for no limit
- QSemaphore waitNewClockForSpeed;
- volatile int numberOfBlockCopied; ///< Multiple for count the number of block copied
- volatile int multiplicatorForBigSpeed; ///< Multiple for count the number of block needed
- volatile int MultiForBigSpeed;
- WriteThread* writeThread;
- int id;
- QSemaphore isOpen;
- volatile bool putInPause;
- volatile bool isInReadLoop;
- volatile bool seekToZero;
- volatile bool tryStartRead;
- qint64 size_at_open;
- QDateTime mtime_at_open;
- bool fakeMode;
- //internal function
- bool seek(qint64 position);/// \todo search if is use full
-private slots:
- bool internalOpen(bool resetLastGoodPosition=true);
- bool internalReopen();
- void internalRead();
- void internalClose(bool callByTheDestructor=false);
- void isInWait();
-};
-
-#endif // READTHREAD_H
diff --git a/plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp b/plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp
deleted file mode 100644
index a09f66a..0000000
--- a/plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "RenamingRules.h"
-#include "ui_RenamingRules.h"
-
-#include <QMessageBox>
-
-RenamingRules::RenamingRules(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::RenamingRules)
-{
- ui->setupUi(this);
- connectUI();
- setRenamingRules("","");
-}
-
-RenamingRules::~RenamingRules()
-{
- delete ui;
-}
-
-void RenamingRules::on_buttonBox_clicked(QAbstractButton *button)
-{
- if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::RejectRole)
- reject();
- if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::ResetRole)
- {
- setRenamingRules("","");
- emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
- }
-}
-
-void RenamingRules::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- disconnectUI();
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
- if(!firstRenamingRule.isEmpty())
- ui->firstRenamingRule->setText(firstRenamingRule);
- else
- ui->firstRenamingRule->setText(tr("%1 - copy").arg("%name%"));
- if(!otherRenamingRule.isEmpty())
- ui->otherRenamingRule->setText(otherRenamingRule);
- else
- ui->otherRenamingRule->setText(tr("%1 - copy (%2)").arg("%name%").arg("%number%"));
- connectUI();
-}
-
-void RenamingRules::connectUI()
-{
- connect(ui->firstRenamingRule,SIGNAL(editingFinished()),this,SLOT(firstRenamingRule_haveChanged()));
- connect(ui->otherRenamingRule,SIGNAL(editingFinished()),this,SLOT(otherRenamingRule_haveChanged()));
-}
-
-void RenamingRules::disconnectUI()
-{
- disconnect(ui->firstRenamingRule,SIGNAL(editingFinished()),this,SLOT(firstRenamingRule_haveChanged()));
- disconnect(ui->otherRenamingRule,SIGNAL(editingFinished()),this,SLOT(otherRenamingRule_haveChanged()));
-}
-
-void RenamingRules::firstRenamingRule_haveChanged()
-{
- QString newValue=ui->firstRenamingRule->text();
- if(newValue==tr("%1 - copy").arg("%name%"))
- newValue="";
- if(newValue==firstRenamingRule)
- return;
- firstRenamingRule=newValue;
- emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
-}
-
-void RenamingRules::otherRenamingRule_haveChanged()
-{
- QString newValue=ui->otherRenamingRule->text();
- if(newValue==tr("%1 - copy (%2)").arg("%name%").arg("%number%"))
- newValue="";
- if(newValue==otherRenamingRule)
- return;
- otherRenamingRule=newValue;
- emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
-}
-
-void RenamingRules::newLanguageLoaded()
-{
- ui->retranslateUi(this);
- setRenamingRules(firstRenamingRule,otherRenamingRule);
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/RenamingRules.h b/plugins-alternative/CopyEngine/Rsync/RenamingRules.h
deleted file mode 100644
index 2fd9580..0000000
--- a/plugins-alternative/CopyEngine/Rsync/RenamingRules.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef RENAMINGRULES_H
-#define RENAMINGRULES_H
-
-#include <QDialog>
-#include <QAbstractButton>
-
-namespace Ui {
-class RenamingRules;
-}
-
-/** Define rules for renaming */
-class RenamingRules : public QDialog
-{
- Q_OBJECT
-public:
- explicit RenamingRules(QWidget *parent = 0);
- ~RenamingRules();
- void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
- void newLanguageLoaded();
-private:
- Ui::RenamingRules *ui;
- void connectUI();
- void disconnectUI();
- QString firstRenamingRule;
- QString otherRenamingRule;
-private slots:
- void on_buttonBox_clicked(QAbstractButton *button);
- void firstRenamingRule_haveChanged();
- void otherRenamingRule_haveChanged();
-signals:
- void sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
-};
-
-#endif // RENAMINGRULES_H
diff --git a/plugins-alternative/CopyEngine/Rsync/RenamingRules.ui b/plugins-alternative/CopyEngine/Rsync/RenamingRules.ui
deleted file mode 100644
index 9e84f4b..0000000
--- a/plugins-alternative/CopyEngine/Rsync/RenamingRules.ui
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>RenamingRules</class>
- <widget class="QDialog" name="RenamingRules">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>303</width>
- <height>213</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Renaming rules</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <property name="spacing">
- <number>2</number>
- </property>
- <property name="margin">
- <number>2</number>
- </property>
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>First renaming</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLineEdit" name="firstRenamingRule">
- <property name="placeholderText">
- <string extracomment="%name% should not be translated">%name% - copy</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string extracomment=" should not be translated">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2">
- <property name="title">
- <string>Second renaming</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QLineEdit" name="otherRenamingRule">
- <property name="placeholderText">
- <string extracomment="%name%, %number% should not be translated">%name% - copy (%number%)</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string extracomment="%name%, %number% should not be translated">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Variables: &lt;span style=&quot; font-weight:600;&quot;&gt;%name%&lt;/span&gt; for the original file name&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;%number%&lt;/span&gt; for the extra number&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>1</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Close|QDialogButtonBox::RestoreDefaults</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>RenamingRules</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>248</x>
- <y>254</y>
- </hint>
- <hint type="destinationlabel">
- <x>157</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>buttonBox</sender>
- <signal>rejected()</signal>
- <receiver>RenamingRules</receiver>
- <slot>reject()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>316</x>
- <y>260</y>
- </hint>
- <hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/RmPath.cpp b/plugins-alternative/CopyEngine/Rsync/RmPath.cpp
deleted file mode 100644
index 636b5ba..0000000
--- a/plugins-alternative/CopyEngine/Rsync/RmPath.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "RmPath.h"
-
-RmPath::RmPath()
-{
- stopIt=false;
- waitAction=false;
- setObjectName("RmPath");
- moveToThread(this);
- start();
-}
-
-RmPath::~RmPath()
-{
- stopIt=true;
- quit();
- wait();
-}
-
-void RmPath::addPath(const QString &path,const bool &toSync)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path);
- if(stopIt)
- return;
- emit internalStartAddPath(path,toSync);
-}
-
-void RmPath::skip()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit internalStartSkip();
-}
-
-void RmPath::retry()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit internalStartRetry();
-}
-
-void RmPath::run()
-{
- connect(this,SIGNAL(internalStartAddPath(QString,bool)),this,SLOT(internalAddPath(QString,bool)),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartDoThisPath()),this,SLOT(internalDoThisPath()),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartSkip()),this,SLOT(internalSkip()),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartRetry()),this,SLOT(internalRetry()),Qt::QueuedConnection);
- exec();
-}
-
-void RmPath::internalDoThisPath()
-{
- if(waitAction || pathList.isEmpty())
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+pathList.first());
- if(!toSyncList.first())
- {
- if(!rmpath(pathList.first(),false))
- {
- if(stopIt)
- return;
- waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the folder: "+pathList.first());
- emit errorOnFolder(pathList.first(),tr("Unable to remove the folder"));
- return;
- }
- }
- else
- {
- if(QFileInfo(pathList.first()).isDir())
- {
- if(!rmpath(pathList.first(),true))
- {
- if(stopIt)
- return;
- waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the folder: "+pathList.first());
- emit errorOnFolder(pathList.first(),tr("Unable to remove the folder"));
- return;
- }
- }
- else if(!rmfile(pathList.first()))
- {
- if(stopIt)
- return;
- waitAction=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the file: "+pathList.first());
- emit errorOnFolder(pathList.first(),tr("Unable to remove the file"));
- return;
- }
- }
- pathList.removeFirst();
- toSyncList.removeFirst();
- emit firstFolderFinish();
- checkIfCanDoTheNext();
-}
-
-bool RmPath::rmfile(QString filePath)
-{
- QFile file(filePath);
- if(!file.remove())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to remove the file: "+file.fileName()+", error: "+file.errorString());
- return false;
- }
- else
- return true;
-}
-
-/** remplace QDir::rmpath() because it return false if the folder not exists
- and seam bug with parent folder */
-bool RmPath::rmpath(const QDir &dir,const bool &toSync)
-{
- if(!dir.exists())
- return true;
- bool allHaveWork=true;
- QFileInfoList list = dir.entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst);
- for (int i = 0; i < list.size(); ++i)
- {
- QFileInfo fileInfo(list.at(i));
- if(!fileInfo.isDir())
- {
- if(toSync)
- {
- if(!rmfile(fileInfo.absoluteFilePath()))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to remove a file: "+fileInfo.fileName());
- allHaveWork=false;
- }
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"found a file: "+fileInfo.fileName());
- allHaveWork=false;
- }
- }
- else
- {
- //return the fonction for scan the new folder
- if(!rmpath(dir.absolutePath()+'/'+fileInfo.fileName()+'/',toSync))
- allHaveWork=false;
- }
- }
- if(!allHaveWork)
- return false;
- allHaveWork=dir.rmdir(dir.absolutePath());
- if(!allHaveWork)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to remove the folder: "+dir.absolutePath());
- return allHaveWork;
-}
-
-void RmPath::internalAddPath(const QString &path,const bool &toSync)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path);
- pathList << path;
- toSyncList << toSync;
- if(!waitAction)
- checkIfCanDoTheNext();
-}
-
-void RmPath::checkIfCanDoTheNext()
-{
- if(!waitAction && !stopIt && pathList.size()>0)
- emit internalStartDoThisPath();
-}
-
-void RmPath::internalSkip()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- waitAction=false;
- pathList.removeFirst();
- emit firstFolderFinish();
- checkIfCanDoTheNext();
-}
-
-void RmPath::internalRetry()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- waitAction=false;
- checkIfCanDoTheNext();
-}
-
diff --git a/plugins-alternative/CopyEngine/Rsync/RmPath.h b/plugins-alternative/CopyEngine/Rsync/RmPath.h
deleted file mode 100644
index c3cd77b..0000000
--- a/plugins-alternative/CopyEngine/Rsync/RmPath.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/** \file RmPath.h
-\brief Remove the path given as queued rmpath
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifndef RMPATH_H
-#define RMPATH_H
-
-#include <QThread>
-#include <QFileInfo>
-#include <QString>
-#include <QSemaphore>
-#include <QStringList>
-#include <QDir>
-
-#include "Environment.h"
-
-/// \brief Remove the path given as queued rmpath
-class RmPath : public QThread
-{
- Q_OBJECT
-public:
- explicit RmPath();
- ~RmPath();
- /// \brief add new path to remove
- void addPath(const QString &path,const bool &toSync);
-signals:
- void errorOnFolder(const QFileInfo &,const QString &);
- void firstFolderFinish();
- void internalStartAddPath(const QString &path,const bool &toSync);
- void internalStartDoThisPath();
- void internalStartSkip();
- void internalStartRetry();
- void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
-public slots:
- void skip();
- void retry();
-private:
- void run();
- bool waitAction;
- bool stopIt;
- bool skipIt;
- QStringList pathList;
- QList<bool> toSyncList;
- void checkIfCanDoTheNext();
- QDir dir;
- bool rmpath(const QDir &dir,const bool &toSync);
- bool rmfile(QString filePath);
-private slots:
- void internalDoThisPath();
- void internalAddPath(const QString &path,const bool &toSync);
- void internalSkip();
- void internalRetry();
-};
-
-
-#endif // RMPATH_H
diff --git a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition.h b/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition.h
deleted file mode 100644
index c1758f4..0000000
--- a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../../StructEnumDefinition.h"
diff --git a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h b/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h
deleted file mode 100644
index 90af91b..0000000
--- a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/** \file StructEnumDefinition_CopyEngine.h
-\brief Define the structure and enumeration used in the copy engine
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QString>
-#include <QRegExp>
-
-#ifndef STRUCTDEF_COPYENGINE_H
-#define STRUCTDEF_COPYENGINE_H
-
-/// \brief Define action if file exists
-enum FileExistsAction
-{
- FileExists_NotSet,
- FileExists_Cancel,
- FileExists_Skip,
- FileExists_Overwrite,
- FileExists_OverwriteIfNewer,
- FileExists_OverwriteIfNotSameModificationDate,
- FileExists_Rename
-};
-
-/// \brief Define action if file error
-enum FileErrorAction
-{
- FileError_NotSet,
- FileError_Cancel,
- FileError_Skip,
- FileError_Retry,
- FileError_PutToEndOfTheList
-};
-
-/// \brief to have the transfer status
-enum TransferStat
-{
- TransferStat_Idle=0,
- TransferStat_PreOperation=1,
- TransferStat_WaitForTheTransfer=2,
- TransferStat_Transfer=3,
- TransferStat_Checksum=4,
- TransferStat_PostTransfer=5,
- TransferStat_PostOperation=6
-};
-
-/// \brief Define overwrite mode
-/*enum OverwriteMode
-{
- OverwriteMode_None,
- OverwriteMode_Overwrite,
- OverwriteMode_OverwriteIfNewer,
- OverwriteMode_OverwriteIfNotSameModificationDate
-};*/
-
-/// \brief Define action if file exists
-enum FolderExistsAction
-{
- FolderExists_NotSet,
- FolderExists_Cancel,
- FolderExists_Merge,
- FolderExists_Skip,
- FolderExists_Rename
-};
-
-enum SearchType
-{
- SearchType_rawText,
- SearchType_simpleRegex,
- SearchType_perlRegex,
-};
-
-enum ApplyOn
-{
- ApplyOn_file,
- ApplyOn_fileAndFolder,
- ApplyOn_folder,
-};
-
-/** to store into different way the filter rules to be exported */
-struct Filters_rules
-{
- QString search_text;
- SearchType search_type;
- ApplyOn apply_on;
- bool need_match_all;
- QRegExp regex;
-};
-
-#endif // STRUCTDEF_COPYENGINE_H
diff --git a/plugins-alternative/CopyEngine/Rsync/TransferThread.cpp b/plugins-alternative/CopyEngine/Rsync/TransferThread.cpp
deleted file mode 100644
index 5557a1e..0000000
--- a/plugins-alternative/CopyEngine/Rsync/TransferThread.cpp
+++ /dev/null
@@ -1,1252 +0,0 @@
-//presume bug linked as multple paralelle inode to resume after "overwrite"
-//then do overwrite node function to not re-set the file name
-
-#include "TransferThread.h"
-
-#ifdef Q_CC_GNU
-//this next header is needed to change file time/date under gcc
-#include <utime.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#endif
-
-#ifndef Q_OS_UNIX
-#include <windows.h>
-#endif
-
-TransferThread::TransferThread()
-{
- start();
- moveToThread(this);
- needSkip = false;
- transfer_stat = TransferStat_Idle;
- stopIt = false;
- fileExistsAction = FileExists_NotSet;
- alwaysDoFileExistsAction= FileExists_NotSet;
- readError = false;
- writeError = false;
- rsync = false;
- this->mkpathTransfer = mkpathTransfer;
- readThread.setWriteThread(&writeThread);
-
- connect(&clockForTheCopySpeed, SIGNAL(timeout()), this, SLOT(timeOfTheBlockCopyFinished()));
- maxTime=QDateTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1));
-}
-
-TransferThread::~TransferThread()
-{
- exit();
- disconnect(&readThread);
- disconnect(&writeThread);
- disconnect(this);
- wait();
-}
-
-void TransferThread::run()
-{
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start: "+QString::number((qint64)QThread::currentThreadId()));
- transfer_stat = TransferStat_Idle;
- stopIt = false;
- fileExistsAction = FileExists_NotSet;
- alwaysDoFileExistsAction= FileExists_NotSet;
- //the error push
- connect(&readThread,SIGNAL(error()), this, SLOT(getReadError()), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(error()), this, SLOT(getWriteError()), Qt::QueuedConnection);
- //the thread change operation
- connect(this,SIGNAL(internalStartPreOperation()), this, SLOT(preOperation()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartPostOperation()), this, SLOT(postOperation()), Qt::QueuedConnection);
- //the state change operation
- //connect(&readThread,SIGNAL(readIsStopped()), &readThread, SLOT(postOperation()), Qt::QueuedConnection);//commented to do the checksum
- connect(&readThread,SIGNAL(opened()), this, SLOT(readIsReady()), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(opened()), this, SLOT(writeIsReady()), Qt::QueuedConnection);
- connect(&readThread,SIGNAL(readIsStopped()), this, SLOT(readIsStopped()), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(writeIsStopped()), this, SLOT(writeIsStopped()), Qt::QueuedConnection);
- connect(&readThread,SIGNAL(readIsStopped()), &writeThread, SLOT(endIsDetected()), Qt::QueuedConnection);
- //connect(&writeThread,SIGNAL(writeIsStopped()), &writeThread, SLOT(postOperation()), Qt::QueuedConnection);//commented to do the checksum
- connect(&readThread,SIGNAL(closed()), this, SLOT(readIsClosed()), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(closed()), this, SLOT(writeIsClosed()), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(reopened()), this, SLOT(writeThreadIsReopened()), Qt::QueuedConnection);
- connect(&readThread,SIGNAL(checksumFinish(QByteArray)), this, SLOT(readChecksumFinish(QByteArray)), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(checksumFinish(QByteArray)),this, SLOT(writeChecksumFinish(QByteArray)), Qt::QueuedConnection);
- //error management
- connect(&readThread,SIGNAL(isSeekToZeroAndWait()), this, SLOT(readThreadIsSeekToZeroAndWait()), Qt::QueuedConnection);
- connect(&readThread,SIGNAL(resumeAfterErrorByRestartAtTheLastPosition()), this, SLOT(readThreadResumeAfterError()), Qt::QueuedConnection);
- connect(&readThread,SIGNAL(resumeAfterErrorByRestartAll()), &writeThread, SLOT(flushAndSeekToZero()), Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(flushedAndSeekedToZero()), this, SLOT(readThreadResumeAfterError()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalTryStartTheTransfer()), this, SLOT(internalStartTheTransfer()), Qt::QueuedConnection);
-
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- connect(&readThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),Qt::QueuedConnection);
- connect(&writeThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),Qt::QueuedConnection);
- #endif
-
- exec();
-}
-
-TransferStat TransferThread::getStat()
-{
- return transfer_stat;
-}
-
-void TransferThread::startTheTransfer()
-{
- emit internalTryStartTheTransfer();
-}
-
-void TransferThread::internalStartTheTransfer()
-{
- if(transfer_stat==TransferStat_Idle)
- {
- if(mode!=Move)
- {
- /// \bug can pass here because in case of direct move on same media, it return to idle stat directly
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at idle");
- }
- return;
- }
- if(transfer_stat==TransferStat_PostOperation)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at PostOperation");
- return;
- }
- if(transfer_stat==TransferStat_Transfer)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at Transfer");
- return;
- }
- if(canStartTransfer)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] canStartTransfer is already set to true");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] check how start the transfer");
- canStartTransfer=true;
- if(readIsReadyVariable && writeIsReadyVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start directly the transfer");
- ifCanStartTransfer();
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start the transfer as delayed");
-}
-
-void TransferThread::setFiles(const QString &source,const qint64 &size,const QString &destination,const CopyMode &mode)
-{
- if(transfer_stat!=TransferStat_Idle)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
- return;
- }
- //to prevent multiple file alocation into ListThread::doNewActions_inode_manipulation()
- transfer_stat = TransferStat_PreOperation;
- //emit pushStat(stat,transferId);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start, source: "+source+", destination: "+destination);
- this->source = source;
- this->destination = destination;
- this->mode = mode;
- this->size = size;
- fileExistsAction = FileExists_NotSet;
- canStartTransfer = false;
- sended_state_preOperationStopped= false;
- canBeMovedDirectlyVariable = false;
- fileContentError = false;
- resetExtraVariable();
- emit internalStartPreOperation();
-}
-
-void TransferThread::setFileExistsAction(const FileExistsAction &action)
-{
- if(transfer_stat!=TransferStat_PreOperation)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] action: "+QString::number(action));
- if(action!=FileExists_Rename)
- fileExistsAction = action;
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] rename at the wrong part, source: "+source+", destination: "+destination);
- if(action==FileExists_Skip)
- {
- skip();
- return;
- }
- resetExtraVariable();
- emit internalStartPreOperation();
-}
-
-void TransferThread::setFileRename(const QString &nameForRename)
-{
- if(transfer_stat!=TransferStat_PreOperation)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] nameForRename: "+nameForRename);
- destinationInfo.setFile(destination);
- destination=destinationInfo.absolutePath();
- destination+=QDir::separator()+nameForRename;
- destinationInfo.setFile(destination);
- fileExistsAction = FileExists_NotSet;
- resetExtraVariable();
- emit internalStartPreOperation();
-}
-
-void TransferThread::setAlwaysFileExistsAction(const FileExistsAction &action)
-{
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] action to do always: "+QString::number(action));
- alwaysDoFileExistsAction=action;
-}
-
-void TransferThread::resetExtraVariable()
-{
- sended_state_readStopped = false;
- sended_state_writeStopped = false;
- writeError = false;
- readError = false;
- readIsReadyVariable = false;
- writeIsReadyVariable = false;
- readIsFinishVariable = false;
- writeIsFinishVariable = false;
- readIsClosedVariable = false;
- writeIsClosedVariable = false;
- needSkip = false;
- retry = false;
- readIsOpenVariable = false;
- writeIsOpenVariable = false;
-}
-
-void TransferThread::preOperation()
-{
- if(transfer_stat!=TransferStat_PreOperation)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- needRemove=false;
- sourceInfo.setFile(source);
- destinationInfo.setFile(destination);
- if(isSame())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] is same"+source);
- return;
- }
- if(destinationExists())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] destination exists: "+source);
- return;
- }
- if(canBeMovedDirectly())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] need moved directly: "+source);
- canBeMovedDirectlyVariable=true;
- readThread.fakeOpen();
- writeThread.fakeOpen();
- return;
- }
- tryOpen();
-}
-
-void TransferThread::tryOpen()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start source and destination: "+source+" and "+destination);
- if(!readIsOpenVariable)
- {
- readError=false;
- readThread.open(source,mode);
- }
- if(!writeIsOpenVariable)
- {
- writeError=false;
- writeThread.open(destination,size,osBuffer && (!osBufferLimited || (osBufferLimited && size<osBufferLimit)));
- }
-}
-
-bool TransferThread::isSame()
-{
- //check if source and destination is not the same
- if(sourceInfo==destinationInfo)
- {
- emit fileAlreadyExists(sourceInfo,destinationInfo,true);
- return true;
- }
- return false;
-}
-
-bool TransferThread::destinationExists()
-{
- //check if destination exists
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] overwrite: "+QString::number(fileExistsAction)+", always action: "+QString::number(alwaysDoFileExistsAction));
- if(alwaysDoFileExistsAction==FileExists_Overwrite || rsync || readError || writeError)
- return false;
- if(destinationInfo.exists())
- {
- if(fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_Skip)
- {
- transfer_stat=TransferStat_Idle;
- emit postOperationStopped();
- return true;
- }
- if(alwaysDoFileExistsAction==FileExists_Rename)
- {
- QString absolutePath=destinationInfo.absolutePath();
- QString fileName=destinationInfo.fileName();
- QString suffix="";
- QString newFileName;
- //resolv the suffix
- if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$")))
- {
- suffix=fileName;
- suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2");
- fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1");
- }
- //resolv the new name
- int num=1;
- do
- {
- if(num==1)
- {
- if(firstRenamingRule=="")
- newFileName=tr("%1 - copy").arg(fileName);
- else
- {
- newFileName=firstRenamingRule;
- newFileName.replace("%name%",fileName);
- }
- }
- else
- {
- if(otherRenamingRule=="")
- newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
- else
- {
- newFileName=otherRenamingRule;
- newFileName.replace("%name%",fileName);
- newFileName.replace("%number%",QString::number(num));
- }
- }
- destination=absolutePath+QDir::separator()+newFileName+suffix;
- destinationInfo.setFile(destination);
- num++;
- }
- while(destinationInfo.exists());
- return false;
- }
- if(fileExistsAction==FileExists_OverwriteIfNewer || (fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_OverwriteIfNewer))
- {
- if(destinationInfo.lastModified()<sourceInfo.lastModified())
- return false;
- else
- {
- transfer_stat=TransferStat_Idle;
- emit postOperationStopped();
- return true;
- }
- }
- if(fileExistsAction==FileExists_OverwriteIfNotSameModificationDate || (fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_OverwriteIfNotSameModificationDate))
- {
- if(destinationInfo.lastModified()!=sourceInfo.lastModified())
- return false;
- else
- {
- transfer_stat=TransferStat_Idle;
- emit postOperationStopped();
- return true;
- }
- }
- if(fileExistsAction==FileExists_NotSet)
- {
- emit fileAlreadyExists(sourceInfo,destinationInfo,false);
- return true;
- }
- }
- return false;
-}
-
-void TransferThread::tryMoveDirectly()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start the system move");
-
- //move if on same mount point
- QFile sourceFile(sourceInfo.absoluteFilePath());
- QFile destinationFile(destinationInfo.absoluteFilePath());
- if(destinationFile.exists() && !destinationFile.remove())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+destinationFile.fileName()+", error: "+destinationFile.errorString());
- emit errorOnFile(destinationInfo,destinationFile.errorString());
- return;
- }
- QDir dir(destinationInfo.absolutePath());
- {
- mkpathTransfer->acquire();
- if(!dir.exists())
- dir.mkpath(destinationInfo.absolutePath());
- mkpathTransfer->release();
- }
- if(!sourceFile.rename(destinationFile.fileName()))
- {
- if(sourceFile.exists())
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file not not exists %1: %2, error: %3").arg(sourceFile.fileName()).arg(destinationFile.fileName()).arg(sourceFile.errorString()));
- else if(!dir.exists())
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("destination folder not exists %1: %2, error: %3").arg(sourceFile.fileName()).arg(destinationFile.fileName()).arg(sourceFile.errorString()));
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("unable to do real move %1: %2, error: %3").arg(sourceFile.fileName()).arg(destinationFile.fileName()).arg(sourceFile.errorString()));
- emit errorOnFile(sourceFile,sourceFile.errorString());
- return;
- }
- readThread.fakeReadIsStarted();
- writeThread.fakeWriteIsStarted();
- readThread.fakeReadIsStopped();
- writeThread.fakeWriteIsStopped();
-}
-
-bool TransferThread::canBeMovedDirectly()
-{
- //move if on same mount point
- #if defined (Q_OS_LINUX) || defined (Q_OS_WIN32)
- if(mode!=Move)
- return false;
- if(mountSysPoint.size()==0)
- return false;
- if(getDrive(destinationInfo.fileName())==getDrive(sourceInfo.fileName()))
- return true;
- #endif
- return false;
-}
-
-void TransferThread::readIsReady()
-{
- if(readIsReadyVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- readIsReadyVariable=true;
- readIsOpenVariable=true;
- readIsClosedVariable=false;
- ifCanStartTransfer();
-}
-
-void TransferThread::ifCanStartTransfer()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] readIsReadyVariable: "+QString::number(readIsReadyVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable));
- if(readIsReadyVariable && writeIsReadyVariable)
- {
- transfer_stat=TransferStat_WaitForTheTransfer;
- sended_state_readStopped = false;
- sended_state_writeStopped = false;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stat=WaitForTheTransfer");
- if(!sended_state_preOperationStopped)
- {
- sended_state_preOperationStopped=true;
- emit preOperationStopped();
- }
- if(canStartTransfer)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stat=Transfer");
- transfer_stat=TransferStat_Transfer;
- if(!canBeMovedDirectlyVariable)
- {
- needRemove=true;
- readThread.startRead();
- }
- else
- tryMoveDirectly();
- emit pushStat(transfer_stat,transferId);
- }
- //else
- //emit pushStat(stat,transferId);
- }
-}
-
-void TransferThread::writeIsReady()
-{
- if(writeIsReadyVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- writeIsReadyVariable=true;
- writeIsOpenVariable=true;
- writeIsClosedVariable=false;
- ifCanStartTransfer();
-}
-
-
-//set the copy info and options before runing
-void TransferThread::setRightTransfer(const bool doRightTransfer)
-{
- this->doRightTransfer=doRightTransfer;
-}
-
-//set keep date
-void TransferThread::setKeepDate(const bool keepDate)
-{
- this->keepDate=keepDate;
-}
-
-//set the current max speed in KB/s
-void TransferThread::setMaxSpeed(int maxSpeed)
-{
- int interval=readThread.setMaxSpeed(maxSpeed);
- writeThread.setMaxSpeed(maxSpeed);
- if(maxSpeed>0)
- {
- clockForTheCopySpeed.setInterval(interval);
- if(!clockForTheCopySpeed.isActive())//seam useless !this->isFinished()
- clockForTheCopySpeed.start();
- }
- else
- {
- if(clockForTheCopySpeed.isActive())
- clockForTheCopySpeed.stop();
- }
-}
-
-//set block size in KB
-bool TransferThread::setBlockSize(const unsigned int blockSize)
-{
- this->blockSize=blockSize;
- return readThread.setBlockSize(blockSize) && writeThread.setBlockSize(blockSize);
-}
-
-//pause the copy
-void TransferThread::pause()
-{
- if(transfer_stat==TransferStat_Idle)
- return;
- readThread.pause();
-}
-
-//resume the copy
-void TransferThread::resume()
-{
- if(transfer_stat==TransferStat_Idle)
- return;
- readThread.resume();
-}
-
-//stop the current copy
-void TransferThread::stop()
-{
- stopIt=true;
- if(transfer_stat==TransferStat_Idle)
- return;
- readThread.stop();
- writeThread.stop();
-}
-
-void TransferThread::readIsFinish()
-{
- if(readIsFinishVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- readIsFinishVariable=true;
- canStartTransfer=false;
- //check here if need start checksuming or not
- real_doChecksum=doChecksum && (!checksumOnlyOnError || fileContentError);
- if(real_doChecksum)
- {
- readIsFinishVariable=false;
- transfer_stat=TransferStat_Checksum;
- sourceChecksum=QByteArray();
- destinationChecksum=QByteArray();
- readThread.startCheckSum();
- }
- else
- {
- transfer_stat=TransferStat_PostTransfer;
- readThread.postOperation();
- }
- emit pushStat(transfer_stat,transferId);
-}
-
-void TransferThread::writeIsFinish()
-{
- if(writeIsFinishVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- writeIsFinishVariable=true;
- //check here if need start checksuming or not
- if(real_doChecksum)
- {
- writeIsFinishVariable=false;
- transfer_stat=TransferStat_Checksum;
- writeThread.startCheckSum();
- }
- else
- writeThread.postOperation();
-}
-
-void TransferThread::readChecksumFinish(const QByteArray& checksum)
-{
- sourceChecksum=checksum;
- compareChecksum();
-}
-
-void TransferThread::writeChecksumFinish(const QByteArray& checksum)
-{
- destinationChecksum=checksum;
- compareChecksum();
-}
-
-void TransferThread::compareChecksum()
-{
- if(sourceChecksum.size()==0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] the checksum of source is missing");
- return;
- }
- if(destinationChecksum.size()==0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] the checksum of destination is missing");
- return;
- }
- if(sourceChecksum==destinationChecksum)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] the checksum match");
- readThread.postOperation();
- writeThread.postOperation();
- transfer_stat=TransferStat_PostTransfer;
- emit pushStat(transfer_stat,transferId);
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] the checksum not match");
- //emit error here, and wait to resume
- emit errorOnFile(destinationInfo,tr("The checksums not match"));
- }
-}
-
-void TransferThread::readIsClosed()
-{
- if(readIsClosedVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- readIsClosedVariable=true;
- checkIfAllIsClosed();
-}
-
-void TransferThread::writeIsClosed()
-{
- if(writeIsClosedVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- writeIsClosedVariable=true;
- checkIfAllIsClosed();
-}
-
-bool TransferThread::checkIfAllIsClosed()
-{
- if((readError || writeError) && !needSkip)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] resolve error before progress");
- return false;
- }
- if((!readIsReadyVariable || readIsClosedVariable) && (!writeIsReadyVariable || writeIsClosedVariable))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit internalStartPostOperation() to do the real post operation");
- transfer_stat=TransferStat_PostOperation;
- //emit pushStat(stat,transferId);
- emit internalStartPostOperation();
- return true;
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] "+QString("wait self close: readIsReadyVariable: %1, readIsClosedVariable: %2, writeIsReadyVariable: %3, writeIsClosedVariable: %4")
- .arg(readIsReadyVariable)
- .arg(readIsClosedVariable)
- .arg(writeIsReadyVariable)
- .arg(writeIsClosedVariable)
- );
- return false;
- }
-}
-
-/// \todo found way to retry that's
-/// \todo the rights copy
-void TransferThread::postOperation()
-{
- if(transfer_stat!=TransferStat_PostOperation)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] need be in transfer, source: "+source+", destination: "+destination+", stat:"+QString::number(transfer_stat));
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- //all except closing
- if((readError || writeError) && !needSkip)//normally useless by checkIfAllIsFinish()
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] resume after error");
- return;
- }
-
- if(!needSkip)
- {
- if(!doFilePostOperation())
- return;
-
- //remove source in moving mode
- if(mode==Move && !canBeMovedDirectlyVariable)
- {
- if(QFile::exists(destination))
- {
- QFile sourceFile(source);
- if(!sourceFile.remove())
- {
- emit errorOnFile(sourceInfo,sourceFile.errorString());
- return;
- }
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] try remove source but destination not exists!");
- }
- }
- else//do difference skip a file and skip this error case
- {
- if(needRemove && QFile::exists(destination))
- {
- QFile destinationFile(destination);
- if(!destinationFile.remove())
- {
- //emit errorOnFile(sourceInfo,destinationFile.errorString());
- //return;
- }
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] try remove destination but not exists!");
- }
- transfer_stat=TransferStat_Idle;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit postOperationStopped()");
- emit postOperationStopped();
-}
-
-bool TransferThread::doFilePostOperation()
-{
- //do operation needed by copy
- if(!canBeMovedDirectlyVariable)
- {
- //set the time if no write thread used
- if(keepDate)
- changeFileDateTime(destination,source);//can't do that's after move because after move the source not exist
- /*
- ignore it, because need correct management, mainly with move
- if(!)
- {
- emit errorOnFile(destinationInfo,tr("Unable to change the date"));//destination.errorString()
- return false;
- }*/
- }
-
- if(stopIt)
- return false;
-
- return true;
-}
-
-//////////////////////////////////////////////////////////////////
-/////////////////////// Error management /////////////////////////
-//////////////////////////////////////////////////////////////////
-
-void TransferThread::getWriteError()
-{
- if(writeError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already in write error!");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- fileContentError = true;
- writeError = true;
- writeIsReadyVariable = false;
- writeError_source_seeked = false;
- writeError_destination_reopened = false;
- emit errorOnFile(destinationInfo,writeThread.errorString());
-}
-
-void TransferThread::getReadError()
-{
- if(readError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already in read error!");
- return;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- fileContentError = true;
- readError = true;
- writeIsReadyVariable = false;
- readIsReadyVariable = false;
- emit errorOnFile(sourceInfo,readThread.errorString());
-}
-
-//retry after error
-void TransferThread::retryAfterError()
-{
- //opening error
- if(transfer_stat==TransferStat_PreOperation)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] is not idle, source: "+source+", destination: "+destination+", stat: "+QString::number(transfer_stat));
- tryOpen();
- return;
- }
- //data streaming error
- if(transfer_stat!=TransferStat_PostOperation && transfer_stat!=TransferStat_Transfer && transfer_stat!=TransferStat_Checksum)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] is not idle, source: "+source+", destination: "+destination+", stat: "+QString::number(transfer_stat));
- return;
- }
- if(canBeMovedDirectlyVariable)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] retry the system move");
- tryMoveDirectly();
- return;
- }
- if(transfer_stat==TransferStat_Checksum)
- {
- if(writeError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the write error");
- writeThread.reopen();
- }
- else if(readError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the read error");
- readThread.reopen();
- }
- else //only checksum difference
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] retry all the transfer");
- canStartTransfer=true;
- ifCanStartTransfer();
- }
- return;
- }
- if(writeError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the write error");
- readThread.seekToZeroAndWait();
- writeThread.reopen();
- }
- else if(readError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the read error");
- readThread.reopen();
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unknow error resume");
-}
-
-void TransferThread::writeThreadIsReopened()
-{
- if(writeError_destination_reopened)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped");
- return;
- }
- writeError_destination_reopened=true;
- if(transfer_stat==TransferStat_Checksum)
- {
- writeThread.startCheckSum();
- return;
- }
- if(writeError_source_seeked && writeError_destination_reopened)
- resumeTransferAfterWriteError();
-}
-
-void TransferThread::readThreadIsSeekToZeroAndWait()
-{
- if(writeError_source_seeked)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped");
- return;
- }
- writeError_source_seeked=true;
- if(writeError_source_seeked && writeError_destination_reopened)
- resumeTransferAfterWriteError();
-}
-
-void TransferThread::resumeTransferAfterWriteError()
-{
- writeError=false;
-/********************************
- if(canStartTransfer)
- readThread.startRead();
-useless, because the open destination event
-will restart the transfer as normal
-*********************************/
-/*********************************
-if(!canStartTransfer)
- stat=WaitForTheTransfer;
-useless because already do at open event
-**********************************/
- //if is in wait
- if(!canStartTransfer)
- emit checkIfItCanBeResumed();
-}
-
-void TransferThread::readThreadResumeAfterError()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- readError=false;
- writeIsReady();
- readIsReady();
-}
-
-//////////////////////////////////////////////////////////////////
-///////////////////////// Normal event ///////////////////////////
-//////////////////////////////////////////////////////////////////
-
-void TransferThread::readIsStopped()
-{
- if(!sended_state_readStopped)
- {
- sended_state_readStopped=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit readIsStopped()");
- emit readStopped();
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] drop dual read stopped");
- readIsFinish();
-}
-
-void TransferThread::writeIsStopped()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- if(!sended_state_writeStopped)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit writeStopped()");
- sended_state_writeStopped=true;
- emit writeStopped();
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] double event dropped");
- writeIsFinish();
-}
-
-void TransferThread::timeOfTheBlockCopyFinished()
-{
- readThread.timeOfTheBlockCopyFinished();
-}
-
-//get drive of an file or folder
-QString TransferThread::getDrive(QString fileOrFolder)
-{
- for (int i = 0; i < mountSysPoint.size(); ++i) {
- if(fileOrFolder.startsWith(mountSysPoint.at(i)))
- return mountSysPoint.at(i);
- }
- //if unable to locate the right mount point
- return "";
-}
-
-//set drive list, used in getDrive()
-void TransferThread::setDrive(QStringList drives)
-{
- mountSysPoint=drives;
-}
-
-//fonction to edit the file date time
-bool TransferThread::changeFileDateTime(const QString &source,const QString &destination)
-{
- /*
- if(maxTime>=sourceInfo.lastModified())
- return;
- */
- /** Why not do it with Qt? Because it not support setModificationTime(), and get the time with Qt, that's mean use local time where in C is UTC time */
- #ifdef Q_OS_UNIX
- #ifdef Q_OS_LINUX
- struct stat info;
- stat(source.toLatin1().data(),&info);
- time_t ctime=info.st_ctim.tv_sec;
- time_t actime=info.st_atim.tv_sec;
- time_t modtime=info.st_mtim.tv_sec;
- //this function avalaible on unix and mingw
- utimbuf butime;
- butime.actime=actime;
- butime.modtime=modtime;
- //creation time not exists into unix world
- Q_UNUSED(ctime)
- return utime(destination.toLatin1().data(),&butime)==0;
- #else //mainly for mac
- QFileInfo fileInfo(destination);
- time_t ctime=fileInfo.created().toTime_t();
- time_t actime=fileInfo.lastRead().toTime_t();
- time_t modtime=fileInfo.lastModified().toTime_t();
- //this function avalaible on unix and mingw
- utimbuf butime;
- butime.actime=actime;
- butime.modtime=modtime;
- //creation time not exists into unix world
- Q_UNUSED(ctime)
- return utime(destination.toLatin1().data(),&butime)==0;
- #endif
- #else
- #ifdef Q_OS_WIN32
- #ifdef ULTRACOPIER_PLUGIN_SET_TIME_UNIX_WAY
- struct __stat64 info;
- _stat64(source.toLatin1().data(),&info);
- time_t ctime=info.st_ctime;
- time_t actime=info.st_atime;
- time_t modtime=info.st_mtime;
- //this function avalaible on unix and mingw
- utimbuf butime;
- butime.actime=actime;
- butime.modtime=modtime;
- //creation time not exists into unix world
- Q_UNUSED(ctime)
- return utime(destination.toLatin1().data(),&butime)==0;
- #else
- wchar_t filePath[65535];
- source.toWCharArray(filePath);
- HANDLE hFileSouce = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
- destination.toWCharArray(filePath);
- HANDLE hFileDestination = CreateFile(filePath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
- if(hFileSouce == INVALID_HANDLE_VALUE)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open failed to read");
- return false;
- }
- if(hFileDestination == INVALID_HANDLE_VALUE)
- {
- CloseHandle(hFileSouce);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open failed to write");
- return false;
- }
- FILETIME ftCreate, ftAccess, ftWrite;
- if(!GetFileTime(hFileSouce, &ftCreate, &ftAccess, &ftWrite))
- {
- CloseHandle(hFileSouce);
- CloseHandle(hFileDestination);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unable to get the file time");
- return false;
- }
- if(!SetFileTime(hFileDestination, &ftCreate, &ftAccess, &ftWrite))
- {
- CloseHandle(hFileSouce);
- CloseHandle(hFileDestination);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unable to set the file time");
- return false;
- }
- CloseHandle(hFileSouce);
- CloseHandle(hFileDestination);
- return true;
- #endif
- #else
- return false;
- #endif
- #endif
- return false;
-}
-
-//skip the copy
-void TransferThread::skip()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with stat: "+QString::number(transfer_stat));
- switch(transfer_stat)
- {
- case TransferStat_PreOperation:
- case TransferStat_WaitForTheTransfer:
- needSkip=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] case WaitForTheTransfer or PreOperation, readIsReadyVariable: "+QString::number(readIsReadyVariable)+", readIsClosedVariable: "+QString::number(readIsClosedVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)+", writeIsClosedVariable: "+QString::number(writeIsClosedVariable));
- //check if all is source and destination is closed
- if(!checkIfAllIsClosed())
- {
- if(readIsReadyVariable && !readIsClosedVariable)
- readThread.stop();
- if(writeIsReadyVariable && !writeIsClosedVariable)
- writeThread.stop();
- }
- break;
- case TransferStat_Transfer:
- needSkip=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] case Transfer, readIsReadyVariable: "+QString::number(readIsReadyVariable)+", readIsClosedVariable: "+QString::number(readIsClosedVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)+", writeIsClosedVariable: "+QString::number(writeIsClosedVariable));
- if(!checkIfAllIsClosed())
- {
- if(readIsReadyVariable && !readIsClosedVariable)
- readThread.stop();
- if(writeIsReadyVariable && !writeIsClosedVariable)
- writeThread.stop();
- }
- break;
- case TransferStat_Checksum:
- needSkip=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] case Transfer, readIsReadyVariable: "+QString::number(readIsReadyVariable)+", readIsClosedVariable: "+QString::number(readIsClosedVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)+", writeIsClosedVariable: "+QString::number(writeIsClosedVariable));
- if(!checkIfAllIsClosed())
- {
- if(readIsReadyVariable && !readIsClosedVariable)
- readThread.stop();
- if(writeIsReadyVariable && !writeIsClosedVariable)
- writeThread.stop();
- }
- break;
- case TransferStat_PostOperation:
- //do nothing because here is closing...
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] is already in post op");
- break;
- default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] can skip in this state!");
- return;
- }
-}
-
-//return info about the copied size
-qint64 TransferThread::copiedSize()
-{
- switch(transfer_stat)
- {
- case TransferStat_Transfer:
- case TransferStat_PostOperation:
- return readThread.getLastGoodPosition();
- case TransferStat_Checksum:
- return transferSize;
- default:
- return 0;
- }
-}
-
-//retry after error
-void TransferThread::putAtBottom()
-{
- emit tryPutAtBottom();
-}
-
-/// \brief set rsync
-void TransferThread::setRsync(const bool rsync)
-{
- this->rsync=rsync;
-}
-
-void TransferThread::set_osBufferLimit(unsigned int osBufferLimit)
-{
- this->osBufferLimit=osBufferLimit;
-}
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG
-//to set the id
-void TransferThread::setId(int id)
-{
- this->id=id;
- readThread.setId(id);
- writeThread.setId(id);
-}
-
-QChar TransferThread::readingLetter()
-{
- switch(readThread.stat)
- {
- case ReadThread::Idle:
- return '_';
- break;
- case ReadThread::InodeOperation:
- return 'I';
- break;
- case ReadThread::Read:
- return 'R';
- break;
- case ReadThread::WaitWritePipe:
- return 'W';
- break;
- case ReadThread::Checksum:
- return 'S';
- break;
- default:
- return '?';
- }
-}
-
-QChar TransferThread::writingLetter()
-{
- switch(writeThread.stat)
- {
- case WriteThread::Idle:
- return '_';
- break;
- case WriteThread::InodeOperation:
- return 'I';
- break;
- case WriteThread::Write:
- return 'W';
- break;
- case WriteThread::Close:
- return 'C';
- break;
- case WriteThread::Read:
- return 'R';
- break;
- case WriteThread::Checksum:
- return 'S';
- break;
- default:
- return '?';
- }
-}
-
-#endif
-
-void TransferThread::setMkpathTransfer(QSemaphore *mkpathTransfer)
-{
- this->mkpathTransfer=mkpathTransfer;
- writeThread.setMkpathTransfer(mkpathTransfer);
-}
-
-void TransferThread::set_doChecksum(bool doChecksum)
-{
- this->doChecksum=doChecksum;
-}
-
-void TransferThread::set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible)
-{
- this->checksumIgnoreIfImpossible=checksumIgnoreIfImpossible;
-}
-
-void TransferThread::set_checksumOnlyOnError(bool checksumOnlyOnError)
-{
- this->checksumOnlyOnError=checksumOnlyOnError;
-}
-
-void TransferThread::set_osBuffer(bool osBuffer)
-{
- this->osBuffer=osBuffer;
-}
-
-void TransferThread::set_osBufferLimited(bool osBufferLimited)
-{
- this->osBufferLimited=osBufferLimited;
-}
-
-//not copied size, because that's count to the checksum, ...
-quint64 TransferThread::realByteTransfered()
-{
- switch(transfer_stat)
- {
- case TransferStat_Transfer:
- case TransferStat_PostOperation:
- case TransferStat_Checksum:
- return readThread.getLastGoodPosition();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] transferSize: "+QString::number(transferSize));
- return transferSize;
- default:
- return 0;
- }
-}
-
-void TransferThread::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/TransferThread.h b/plugins-alternative/CopyEngine/Rsync/TransferThread.h
deleted file mode 100644
index 3ee6d35..0000000
--- a/plugins-alternative/CopyEngine/Rsync/TransferThread.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/** \file TransferThread.h
-\brief Thread changed to manage the inode operation, the signals, canceling, pre and post operations
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifndef TRANSFERTHREAD_H
-#define TRANSFERTHREAD_H
-
-#include <QThread>
-#include <QFileInfo>
-#include <QString>
-#include <QList>
-#include <QStringList>
-#include <QDateTime>
-#include <QDir>
-
-#include "ReadThread.h"
-#include "WriteThread.h"
-#include "Environment.h"
-#include "StructEnumDefinition_CopyEngine.h"
-
-/// \brief Thread changed to manage the inode operation, the signals, canceling, pre and post operations
-class TransferThread : public QThread
-{
- Q_OBJECT
-public:
- explicit TransferThread();
- ~TransferThread();
- /// \brief get transfer stat
- TransferStat getStat();
- /// \brief get drive of an file or folder
- QString getDrive(QString fileOrFolder);
- /// \brief set drive list, used in getDrive()
- void setDrive(QStringList drives);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief to set the id
- void setId(int id);
- /// \brief get the reading letter
- QChar readingLetter();
- /// \brief get the writing letter
- QChar writingLetter();
- #endif
- /// \brief to have semaphore, and try create just one by one
- void setMkpathTransfer(QSemaphore *mkpathTransfer);
- /// \brief to store the transfer id
- quint64 transferId;
- /// \brief to store the transfer size
- quint64 transferSize;
-
- void set_doChecksum(bool doChecksum);
- void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible);
- void set_checksumOnlyOnError(bool checksumOnlyOnError);
- void set_osBuffer(bool osBuffer);
- void set_osBufferLimited(bool osBufferLimited);
-
- //not copied size, because that's count to the checksum, ...
- quint64 realByteTransfered();
-protected:
- void run();
-signals:
- //to send state
- void preOperationStopped();
- void checkIfItCanBeResumed();
- //void transferStarted();//not sended (and not used then)
- void readStopped();
- void writeStopped();
- void postOperationStopped();
- //get dialog
- void fileAlreadyExists(QFileInfo,QFileInfo,bool isSame);
- void errorOnFile(QFileInfo,QString);
- //internal signal
- void internalStartPostOperation();
- void internalStartPreOperation();
- void internalStartResumeAfterErrorAndSeek();
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- void tryPutAtBottom();
- //force into the right thread
- void internalTryStartTheTransfer();
- /// \brief update the transfer stat
- void pushStat(TransferStat,quint64);
-public slots:
- /// \brief to start the transfer of data
- void startTheTransfer();
- /// \brief to set files to transfer
- void setFiles(const QString &source,const qint64 &size,const QString &destination,const CopyMode &mode);
- /// \brief to set file exists action to do
- void setFileExistsAction(const FileExistsAction &action);
- /// \brief to set the new name of the destination
- void setFileRename(const QString &nameForRename);
- /// \brief to start the transfer of data
- void setAlwaysFileExistsAction(const FileExistsAction &action);
- /// \brief set the copy info and options before runing
- void setRightTransfer(const bool doRightTransfer);
- /// \brief set keep date
- void setKeepDate(const bool keepDate);
- /// \brief set the current max speed in KB/s
- void setMaxSpeed(int maxSpeed);
- /// \brief set block size in KB
- bool setBlockSize(const unsigned int blockSize);
- /// \brief pause the copy
- void pause();
- /// \brief resume the copy
- void resume();
- /// \brief stop the copy
- void stop();
- /// \brief skip the copy
- void skip();
- /// \brief retry after error
- void retryAfterError();
- /// \brief return info about the copied size
- qint64 copiedSize();
- /// \brief put the current file at bottom
- void putAtBottom();
- /// \brief set rsync
- void setRsync(const bool rsync);
-
- void set_osBufferLimit(unsigned int osBufferLimit);
- void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
-private slots:
- void preOperation();
- void readIsReady();
- void writeIsReady();
- void readIsFinish();
- void writeIsFinish();
- void readIsClosed();
- void writeIsClosed();
- void postOperation();
- void getWriteError();
- void getReadError();
- void readChecksumFinish(const QByteArray&);
- void writeChecksumFinish(const QByteArray&);
- void compareChecksum();
- //void syncAfterErrorAndReadFinish();
- void readThreadIsSeekToZeroAndWait();
- void writeThreadIsReopened();
- void readThreadResumeAfterError();
- //to filter the emition of signal
- void readIsStopped();
- void writeIsStopped();
- //speed limitation
- void timeOfTheBlockCopyFinished();
- //force into the right thread
- void internalStartTheTransfer();
-private:
- enum MoveReturn
- {
- MoveReturn_skip=0,
- MoveReturn_moved=1,
- MoveReturn_error=2
- };
- TransferStat transfer_stat;
- ReadThread readThread;
- WriteThread writeThread;
- QString source;
- QString destination;
- CopyMode mode;
- QTimer clockForTheCopySpeed; ///< For the speed throttling
- bool doRightTransfer;
- bool keepDate;
- bool readIsReadyVariable;
- bool writeIsReadyVariable;
- bool readIsOpenVariable;
- bool writeIsOpenVariable;
- bool readIsFinishVariable;
- bool writeIsFinishVariable;
- bool readIsClosedVariable;
- bool writeIsClosedVariable;
- bool canBeMovedDirectlyVariable;
- bool rsync;
- QByteArray sourceChecksum,destinationChecksum;
- volatile bool stopIt;
- volatile bool canStartTransfer;
- int blockSize;
- bool retry;
- QFileInfo sourceInfo;
- QFileInfo destinationInfo;
- QStringList mountSysPoint;
- qint64 size;
- FileExistsAction fileExistsAction;
- FileExistsAction alwaysDoFileExistsAction;
- bool needSkip,needRemove;
- QDateTime maxTime;
- int id;
- QSemaphore *mkpathTransfer;
- bool doChecksum,real_doChecksum;
- bool checksumIgnoreIfImpossible;
- bool checksumOnlyOnError;
- bool osBuffer;
- bool osBufferLimited;
- unsigned int osBufferLimit;
- QString firstRenamingRule;
- QString otherRenamingRule;
- //error management
- bool writeError,writeError_source_seeked,writeError_destination_reopened;
- bool readError;
- bool fileContentError;
- //different pre-operation
- bool isSame();
- bool destinationExists();
- bool canBeMovedDirectly();
- void tryMoveDirectly();
- void ifCanStartTransfer();
- //fonction to edit the file date time
- bool changeFileDateTime(const QString &source,const QString &destination);
- void resetExtraVariable();
- //error management function
- void resumeTransferAfterWriteError();
- //to send state
- bool sended_state_preOperationStopped;
- bool sended_state_readStopped;
- bool sended_state_writeStopped;
- //different post-operation
- bool checkIfAllIsClosed();
- bool doFilePostOperation();
- //different pre-operation
- void tryOpen();
-};
-
-#endif // TRANSFERTHREAD_H
diff --git a/plugins-alternative/CopyEngine/Rsync/Variable.h b/plugins-alternative/CopyEngine/Rsync/Variable.h
deleted file mode 100644
index f39b8a6..0000000
--- a/plugins-alternative/CopyEngine/Rsync/Variable.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/** \file Variable.h
-\brief Define the environment variable
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#ifndef VARIABLE_H
-#define VARIABLE_H
-
-//Un-comment this next line to put ultracopier plugin in debug mode
-#define ULTRACOPIER_PLUGIN_DEBUG
-#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW_TIMER 150
-
-#define ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK 64
-#define ULTRACOPIER_PLUGIN_MINTIMERINTERVAL 50
-#define ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL 100
-#define ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT 2
-#define ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT 64
-#define ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER 1
-#define ULTRACOPIER_PLUGIN_MINIMALYEAR 1990
-
-//if set, check the inode type at scanFileOrFolder, deprecated into the new algorithm and not used
-#define ULTRACOPIER_PLUGIN_CHECKLISTTYPE
-
-/** \brief Need be greater than 2, but greater than 20 to be efficient */
-#define ULTRACOPIER_PLUGIN_TIME_UPDATE_TRASNFER_LIST 40
-#define ULTRACOPIER_PLUGIN_TIME_UPDATE_PROGRESSION 200
-
-//#define ULTRACOPIER_PLUGIN_SET_TIME_UNIX_WAY
-
-#endif // VARIABLE_H
-
-
-
diff --git a/plugins-alternative/CopyEngine/Rsync/WriteThread.cpp b/plugins-alternative/CopyEngine/Rsync/WriteThread.cpp
deleted file mode 100644
index 448e8dc..0000000
--- a/plugins-alternative/CopyEngine/Rsync/WriteThread.cpp
+++ /dev/null
@@ -1,508 +0,0 @@
-#include "WriteThread.h"
-
-#include <QDir>
-
-WriteThread::WriteThread()
-{
- stopIt=false;
- isOpen.release();
- start();
- moveToThread(this);
- setObjectName("write");
- this->mkpathTransfer = mkpathTransfer;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- CurentCopiedSize=0;
- buffer=false;
- putInPause=false;
- needRemoveTheFile=false;
- blockSize=1024*1024;
-}
-
-WriteThread::~WriteThread()
-{
- stopIt=true;
- needRemoveTheFile=true;
- freeBlock.release();
- // useless because stopIt will close all thread, but if thread not runing run it
- //endIsDetected();
- emit internalStartClose();
- isOpen.acquire();
- disconnect(this);
- quit();
- wait();
-}
-
-void WriteThread::run()
-{
- connect(this,SIGNAL(internalStartOpen()), this,SLOT(internalOpen()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartReopen()), this,SLOT(internalReopen()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartWrite()), this,SLOT(internalWrite()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartClose()), this,SLOT(internalClose()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartEndOfFile()), this,SLOT(internalEndOfFile()), Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartFlushAndSeekToZero()), this,SLOT(internalFlushAndSeekToZero()),Qt::QueuedConnection);
- connect(this,SIGNAL(internalStartChecksum()), this,SLOT(checkSum()), Qt::QueuedConnection);
- exec();
-}
-
-bool WriteThread::internalOpen()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] internalOpen destination: "+name);
- if(stopIt)
- return false;
- if(file.isOpen())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already open! destination: "+file.fileName());
- return false;
- }
- //set to LISTBLOCKSIZE
- while(freeBlock.available()<ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK)
- freeBlock.release();
- if(freeBlock.available()>ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK)
- freeBlock.acquire(freeBlock.available()-ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK);
- stopIt=false;
- CurentCopiedSize=0;
- endDetected=false;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=InodeOperation;
- #endif
- file.setFileName(name);
- //mkpath check if exists and return true if already exists
- QFileInfo destinationInfo(file);
- QDir destinationFolder;
- {
- mkpathTransfer->acquire();
- if(!destinationFolder.exists(destinationInfo.absolutePath()))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] "+QString("Try create the path: %1")
- .arg(destinationInfo.absolutePath()));
- if(!destinationFolder.mkpath(destinationInfo.absolutePath()))
- {
- if(!destinationFolder.exists(destinationInfo.absolutePath()))
- {
- /// \todo do real folder error here
- errorString_internal="mkpath error on destination";
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable create the folder: %1, error: %2")
- .arg(destinationInfo.absolutePath())
- .arg(errorString_internal));
- emit error();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- return false;
- }
- }
- }
- mkpathTransfer->release();
- }
- if(stopIt)
- return false;
- //try open it
- QIODevice::OpenMode flags=QIODevice::ReadWrite;
- if(!buffer)
- flags|=QIODevice::Unbuffered;
- if(file.open(flags))
- {
- if(stopIt)
- return false;
- file.seek(0);
- if(stopIt)
- return false;
- file.resize(startSize);
- if(stopIt)
- return false;
- emit opened();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- isOpen.acquire();
- needRemoveTheFile=false;
- return true;
- }
- else
- {
- if(stopIt)
- return false;
- errorString_internal=file.errorString();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable to open: %1, error: %2").arg(name).arg(errorString_internal));
- emit error();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- return false;
- }
-}
-
-void WriteThread::open(const QString &name,const quint64 &startSize,const bool &buffer)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open destination: "+name);
- if(stopIt)
- return;
- fakeMode=false;
- this->name=name;
- this->startSize=startSize;
- this->buffer=buffer;
- endDetected=false;
- emit internalStartOpen();
-}
-
-void WriteThread::endIsDetected()
-{
- if(endDetected)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped");
- return;
- }
- endDetected=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- emit internalStartEndOfFile();
-}
-
-QString WriteThread::errorString()
-{
- return errorString_internal;
-}
-
-bool WriteThread::write(const QByteArray &data)
-{
- if(stopIt)
- return false;
- freeBlock.acquire();
- if(stopIt)
- return false;
- {
- QMutexLocker lock_mutex(&accessList);
- theBlockList.append(data);
- }
- emit internalStartWrite();
- return true;
-}
-
-void WriteThread::stop()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop()");
- needRemoveTheFile=true;
- stopIt=true;
- if(isOpen.available()>0)
- return;
- freeBlock.release();
- // useless because stopIt will close all thread, but if thread not runing run it
- endIsDetected();
- //for the stop for skip: void TransferThread::skip()
- emit internalStartClose();
-}
-
-void WriteThread::flushBuffer()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- freeBlock.release();
- freeBlock.acquire();
- {
- QMutexLocker lock_mutex(&accessList);
- theBlockList.clear();
- }
-}
-
-void WriteThread::internalEndOfFile()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] writeIsStopped");
- emit writeIsStopped();
-}
-
-void WriteThread::internalWrite()
-{
- if(stopIt)
- return;
- //read one block
- if(theBlockList.size()<=0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] End detected of the file");
- return;
- }
- else
- {
- QMutexLocker lock_mutex(&accessList);
- blockArray=theBlockList.first();
- theBlockList.removeFirst();
- }
- //write one block
- freeBlock.release();
-
- if(stopIt)
- return;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Write;
- #endif
- bytesWriten=file.write(blockArray);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- //mutex for stream this data
- if(CurentCopiedSize==0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit writeIsStarted()");
- emit writeIsStarted();
- }
- CurentCopiedSize+=bytesWriten;
- if(stopIt)
- return;
- if(file.error()!=QFile::NoError)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Error in writing: %1 (%2)").arg(file.errorString()).arg(file.error()));
- errorString_internal=QString("Error in writing: %1 (%2)").arg(file.errorString()).arg(file.error());
- stopIt=true;
- emit error();
- return;
- }
- if(bytesWriten!=blockArray.size())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Error in writing, bytesWriten: %1, blockArray.size(): %2").arg(bytesWriten).arg(blockArray.size()));
- errorString_internal=QString("Error in writing, bytesWriten: %1, blockArray.size(): %2").arg(bytesWriten).arg(blockArray.size());
- stopIt=true;
- emit error();
- return;
- }
- lastGoodPosition+=bytesWriten;
-}
-
-void WriteThread::postOperation()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- emit internalStartClose();
-}
-
-void WriteThread::internalClose(bool emitSignal)
-{
- /// \note never send signal here, because it's called by the destructor
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Close;
- #endif
- if(!fakeMode && file.isOpen())
- {
- if(!needRemoveTheFile)
- {
- if(startSize!=CurentCopiedSize)
- file.resize(CurentCopiedSize);
- }
- file.close();
- if(needRemoveTheFile)
- {
- if(file.remove())
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unable to remove the destination file");
- }
- needRemoveTheFile=false;
- }
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
- if(emitSignal)
- emit closed();
-
- /// \note always the last of this function
- if(!fakeMode)
- isOpen.release();
-}
-
-void WriteThread::internalReopen()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- internalClose(false);
- flushBuffer();
- stopIt=false;
- CurentCopiedSize=0;
- if(internalOpen())
- emit reopened();
-}
-
-void WriteThread::reopen()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
- stopIt=true;
- endDetected=false;
- emit internalStartReopen();
-}
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG
-//to set the id
-void WriteThread::setId(int id)
-{
- this->id=id;
-}
-#endif
-
-/// \brief do the fake open
-void WriteThread::fakeOpen()
-{
- fakeMode=true;
- emit opened();
-}
-
-/// \brief do the fake writeIsStarted
-void WriteThread::fakeWriteIsStarted()
-{
- emit writeIsStarted();
-}
-
-/// \brief do the fake writeIsStopped
-void WriteThread::fakeWriteIsStopped()
-{
- emit writeIsStopped();
-}
-
-/// do the checksum
-void WriteThread::startCheckSum()
-{
- emit internalStartChecksum();
-}
-
-/** \brief set block size
-\param block the new block size in KB
-\return Return true if succes */
-bool WriteThread::setBlockSize(const int blockSize)
-{
- if(blockSize<1 || blockSize>16384)
- {
- this->blockSize=blockSize*1024;
- //set the new max speed because the timer have changed
- setMaxSpeed(maxSpeed);
- return true;
- }
- else
- return false;
-}
-
-/*! \brief Set the max speed
-\param tempMaxSpeed Set the max speed in KB/s, 0 for no limit */
-int WriteThread::setMaxSpeed(const int maxSpeed)
-{
- if(this->maxSpeed==0 && maxSpeed==0 && waitNewClockForSpeed.available()>0)
- waitNewClockForSpeed.tryAcquire(waitNewClockForSpeed.available());
- this->maxSpeed=maxSpeed;
- if(this->maxSpeed>0)
- {
- int NewInterval,newMultiForBigSpeed=0;
- do
- {
- newMultiForBigSpeed++;
- NewInterval=(blockSize*newMultiForBigSpeed)/(this->maxSpeed);
- }
- while (NewInterval<ULTRACOPIER_PLUGIN_MINTIMERINTERVAL);
- if(NewInterval>ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL)
- {
- NewInterval=ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL;
- newMultiForBigSpeed=1;
- blockSize=this->maxSpeed*NewInterval;
- }
- MultiForBigSpeed=newMultiForBigSpeed;
- return NewInterval;
- }
- else
- {
- waitNewClockForSpeed.release();
- return 0;
- }
-}
-
-/// \brief For give timer every X ms
-void WriteThread::timeOfTheBlockCopyFinished()
-{
- if(waitNewClockForSpeed.available()<ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT)
- waitNewClockForSpeed.release();
- //why not just use waitNewClockForSpeed.release() ?
-}
-
-void WriteThread::flushAndSeekToZero()
-{
- stopIt=true;
- emit internalStartFlushAndSeekToZero();
-}
-
-
-void WriteThread::checkSum()
-{
- //QByteArray blockArray;
- QCryptographicHash hash(QCryptographicHash::Sha1);
- endDetected=false;
- lastGoodPosition=0;
- file.seek(0);
- int sizeReaden=0;
- do
- {
- //read one block
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Read;
- #endif
- blockArray=file.read(blockSize);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
-
- if(file.error()!=QFile::NoError)
- {
- errorString_internal=tr("Unable to read the source file: ")+file.errorString()+" ("+QString::number(file.error())+")";
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file.error()!=QFile::NoError: %1, error: %2").arg(QString::number(file.error())).arg(errorString_internal));
- emit error();
- return;
- }
- sizeReaden=blockArray.size();
- if(sizeReaden>0)
- {
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Checksum;
- #endif
- hash.addData(blockArray);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- stat=Idle;
- #endif
-
- if(stopIt)
- break;
-
- lastGoodPosition+=blockArray.size();
-
- //wait for limitation speed if stop not query
- if(maxSpeed>0)
- {
- numberOfBlockCopied++;
- if(numberOfBlockCopied>=MultiForBigSpeed)
- {
- numberOfBlockCopied=0;
- waitNewClockForSpeed.acquire();
- if(stopIt)
- break;
- }
- }
- }
- }
- while(sizeReaden>0 && !stopIt);
- if(lastGoodPosition>file.size())
- {
- errorString_internal=tr("File truncated during the read, possible data change");
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Source truncated during the read: %1 (%2)").arg(file.errorString()).arg(QString::number(file.error())));
- emit error();
- return;
- }
- if(stopIt)
- {
-/* if(putInPause)
- emit isInPause();*/
- stopIt=false;
- return;
- }
- emit checksumFinish(hash.result());
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop the read");
-}
-
-void WriteThread::internalFlushAndSeekToZero()
-{
- flushBuffer();
- file.seek(0);
- stopIt=false;
- emit flushedAndSeekedToZero();
-}
-
-void WriteThread::setMkpathTransfer(QSemaphore *mkpathTransfer)
-{
- this->mkpathTransfer=mkpathTransfer;
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/WriteThread.h b/plugins-alternative/CopyEngine/Rsync/WriteThread.h
deleted file mode 100644
index 3683c27..0000000
--- a/plugins-alternative/CopyEngine/Rsync/WriteThread.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/** \file WriteThread.h
-\brief Thread changed to open/close and write the destination file
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#ifndef WRITETHREAD_H
-#define WRITETHREAD_H
-
-#include <QThread>
-#include <QByteArray>
-#include <QString>
-#include <QMutex>
-#include <QSemaphore>
-#include <QCryptographicHash>
-
-#include "Environment.h"
-#include "StructEnumDefinition_CopyEngine.h"
-#include "AvancedQFile.h"
-
-/// \brief Thread changed to open/close and write the destination file
-class WriteThread : public QThread
-{
- Q_OBJECT
-public:
- explicit WriteThread();
- ~WriteThread();
- /// \brief to have semaphore to do mkpath one by one
- void setMkpathTransfer(QSemaphore *mkpathTransfer);
-protected:
- void run();
-public:
- /// \brief open the destination to open it
- void open(const QString &name,const quint64 &startSize,const bool &buffer);
- /// \brief to return the error string
- QString errorString();
- /// \brief to stop all
- void stop();
- /// \brief to write data
- bool write(const QByteArray &data);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief to set the id
- void setId(int id);
- /// \brief get the write stat
- enum WriteStat
- {
- Idle=0,
- InodeOperation=1,
- Write=2,
- Close=3,
- Read=5,
- Checksum=6
- };
- WriteStat stat;
- #endif
- /// \brief do the fake open
- void fakeOpen();
- /// \brief do the fake writeIsStarted
- void fakeWriteIsStarted();
- /// \brief do the fake writeIsStopped
- void fakeWriteIsStopped();
- /// do the checksum
- void startCheckSum();
- /// \brief set the current max speed in KB/s
- int setMaxSpeed(int maxSpeed);
- /// \brief For give timer every X ms
- void timeOfTheBlockCopyFinished();
- /// \brief set block size in KB
- bool setBlockSize(const int blockSize);
-public slots:
- /// \brief start the operation
- void postOperation();
- /// \brief flush buffer
- void flushBuffer();
- /// \brief set the end is detected
- void endIsDetected();
- /// \brief reopen the file
- void reopen();
- /// \brief flush and seek to zero
- void flushAndSeekToZero();
- /// do the checksum
- void checkSum();
-signals:
- void error();
- void opened();
- void reopened();
- void writeIsStarted();
- void writeIsStopped();
- void flushedAndSeekedToZero();
- void closed();
- void checksumFinish(const QByteArray&);
- //internal signals
- void internalStartOpen();
- void internalStartChecksum();
- void internalStartReopen();
- void internalStartWrite();
- void internalStartClose();
- void internalStartEndOfFile();
- void internalStartFlushAndSeekToZero();
- /// \brief To debug source
- void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
-private:
- QString name;
- QString errorString_internal;
- AvancedQFile file;
- volatile bool stopIt;
- volatile int blockSize;
- volatile int maxSpeed; ///< The max speed in KB/s, 0 for no limit
- QMutex accessList; ///< For use the list
- QSemaphore waitNewClockForSpeed;
- volatile int numberOfBlockCopied; ///< Multiple for count the number of block copied
- volatile int multiplicatorForBigSpeed; ///< Multiple for count the number of block needed
- volatile int MultiForBigSpeed;
- QSemaphore freeBlock;
- QSemaphore isOpen;
- volatile bool putInPause;
- QList<QByteArray> theBlockList; ///< Store the block list
- quint64 CurentCopiedSize;
- QByteArray blockArray; ///< temp data for block writing, the data
- qint64 bytesWriten; ///< temp data for block writing, the bytes writen
- qint64 lastGoodPosition;
- int id;
- bool endDetected;
- quint64 startSize;
- QSemaphore *mkpathTransfer;
- bool fakeMode;
- bool buffer;
- bool needRemoveTheFile;
-private slots:
- bool internalOpen();
- void internalWrite();
- void internalClose(bool emitSignal=true);
- void internalReopen();
- void internalEndOfFile();
- void internalFlushAndSeekToZero();
-};
-
-#endif // WRITETHREAD_H
diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp b/plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp
deleted file mode 100644
index 7ec07c2..0000000
--- a/plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp
+++ /dev/null
@@ -1,565 +0,0 @@
-/** \file copyEngine.cpp
-\brief Define the copy engine
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QtCore>
-#include <QFileDialog>
-#include <QMessageBox>
-
-#include "copyEngine.h"
-#include "folderExistsDialog.h"
-
-/// \note Can be call without queue because all call will be serialized
-void copyEngine::fileAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,TransferThread * thread,bool isCalledByShowOneNewDialog)
-{
- if(stopIt)
- return;
- if(thread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread");
- return;
- }
- //load the action
- if(isSame)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file is same: "+source.absoluteFilePath());
- tempFileExistsAction=alwaysDoThisActionForFileExists;
- if(tempFileExistsAction==FileExists_Overwrite || tempFileExistsAction==FileExists_OverwriteIfNewer || tempFileExistsAction==FileExists_OverwriteIfNotSameModificationDate)
- tempFileExistsAction=FileExists_NotSet;
- switch(tempFileExistsAction)
- {
- case FileExists_Skip:
- case FileExists_Rename:
- thread->setFileExistsAction(tempFileExistsAction);
- break;
- default:
- if(dialogIsOpen)
- {
- alreadyExistsQueueItem newItem;
- newItem.source=source;
- newItem.destination=destination;
- newItem.isSame=isSame;
- newItem.transfer=thread;
- newItem.scan=NULL;
- alreadyExistsQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- fileIsSameDialog dialog(interface,source,firstRenamingRule,otherRenamingRule);
- emit isInPause(true);
- dialog.exec();/// \bug crash when external close
- FileExistsAction newAction=dialog.getAction();
- emit isInPause(false);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FileExists_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileExists)
- {
- alwaysDoThisActionForFileExists=newAction;
- listThread->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists);
- switch(newAction)
- {
- default:
- case FileExists_Skip:
- emit newCollisionAction("skip");
- break;
- case FileExists_Rename:
- emit newCollisionAction("rename");
- break;
- }
- }
- if(dialog.getAlways() || newAction!=FileExists_Rename)
- thread->setFileExistsAction(newAction);
- else
- thread->setFileRename(dialog.getNewName());
- dialogIsOpen=false;
- if(!isCalledByShowOneNewDialog)
- emit queryOneNewDialog();
- return;
- break;
- }
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file already exists: "+source.absoluteFilePath()+", destination: "+destination.absoluteFilePath());
- tempFileExistsAction=alwaysDoThisActionForFileExists;
- switch(tempFileExistsAction)
- {
- case FileExists_Skip:
- case FileExists_Rename:
- case FileExists_Overwrite:
- case FileExists_OverwriteIfNewer:
- case FileExists_OverwriteIfNotSameModificationDate:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"always do this action: "+QString::number(tempFileExistsAction));
- thread->setFileExistsAction(tempFileExistsAction);
- break;
- default:
- if(dialogIsOpen)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("dialog open, put in queue: %1 %2")
- .arg(source.absoluteFilePath())
- .arg(destination.absoluteFilePath())
- );
- alreadyExistsQueueItem newItem;
- newItem.source=source;
- newItem.destination=destination;
- newItem.isSame=isSame;
- newItem.transfer=thread;
- newItem.scan=NULL;
- alreadyExistsQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- fileExistsDialog dialog(interface,source,destination,firstRenamingRule,otherRenamingRule);
- emit isInPause(true);
- dialog.exec();/// \bug crash when external close
- FileExistsAction newAction=dialog.getAction();
- emit isInPause(false);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FileExists_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileExists)
- {
- alwaysDoThisActionForFileExists=newAction;
- listThread->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists);
- switch(newAction)
- {
- default:
- case FileExists_Skip:
- emit newCollisionAction("skip");
- break;
- case FileExists_Rename:
- emit newCollisionAction("rename");
- break;
- case FileExists_Overwrite:
- emit newCollisionAction("overwrite");
- break;
- case FileExists_OverwriteIfNewer:
- emit newCollisionAction("overwriteIfNewer");
- break;
- case FileExists_OverwriteIfNotSameModificationDate:
- emit newCollisionAction("overwriteIfNotSameModificationDate");
- break;
- }
- }
- if(dialog.getAlways() || newAction!=FileExists_Rename)
- thread->setFileExistsAction(newAction);
- else
- thread->setFileRename(dialog.getNewName());
- dialogIsOpen=false;
- if(!isCalledByShowOneNewDialog)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"emit queryOneNewDialog()");
- emit queryOneNewDialog();
- }
- return;
- break;
- }
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-/// \note Can be call without queue because all call will be serialized
-void copyEngine::errorOnFile(QFileInfo fileInfo,QString errorString,TransferThread * thread,bool isCalledByShowOneNewDialog)
-{
- if(stopIt)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+fileInfo.absoluteFilePath()+", error: "+errorString);
- if(thread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread");
- return;
- }
- //load the action
- tempFileErrorAction=alwaysDoThisActionForFileError;
- switch(tempFileErrorAction)
- {
- case FileError_Skip:
- thread->skip();
- return;
- case FileError_Retry:
- thread->retryAfterError();
- return;
- case FileError_PutToEndOfTheList:
- /// \todo do the read transfer locator and put at the end
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"todo list item not found");
- return;
- default:
- if(dialogIsOpen)
- {
- errorQueueItem newItem;
- newItem.errorString=errorString;
- newItem.inode=fileInfo;
- newItem.mkPath=false;
- newItem.rmPath=false;
- newItem.scan=NULL;
- newItem.transfer=thread;
- errorQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- emit error(fileInfo.absoluteFilePath(),fileInfo.size(),fileInfo.lastModified(),errorString);
- fileErrorDialog dialog(interface,fileInfo,errorString);
- emit isInPause(true);
- dialog.exec();/// \bug crash when external close
- FileErrorAction newAction=dialog.getAction();
- emit isInPause(false);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FileError_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError)
- {
- alwaysDoThisActionForFileError=newAction;
- switch(newAction)
- {
- default:
- case FileError_Skip:
- emit newErrorAction("skip");
- break;
- case FileError_PutToEndOfTheList:
- emit newErrorAction("putToEndOfTheList");
- break;
- }
- }
- switch(newAction)
- {
- case FileError_Skip:
- thread->skip();
- break;
- case FileError_Retry:
- thread->retryAfterError();
- break;
- case FileError_PutToEndOfTheList:
- thread->putAtBottom();
- /// \todo do the read transfer locator and put at the end
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"todo");
- break;
- default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"file error action wrong");
- break;
- }
- dialogIsOpen=false;
- if(!isCalledByShowOneNewDialog)
- emit queryOneNewDialog();
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"isCalledByShowOneNewDialog==true then not show other dial");
- return;
- break;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-/// \note Can be call without queue because all call will be serialized
-void copyEngine::folderAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog)
-{
- if(stopIt)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"folder already exists: "+source.absoluteFilePath()+", destination: "+destination.absoluteFilePath());
- if(thread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread");
- return;
- }
- //load the always action
- tempFolderExistsAction=alwaysDoThisActionForFolderExists;
- switch(tempFolderExistsAction)
- {
- case FolderExists_Skip:
- case FolderExists_Rename:
- case FolderExists_Merge:
- thread->setFolderExistsAction(tempFolderExistsAction);
- break;
- default:
- if(dialogIsOpen)
- {
- alreadyExistsQueueItem newItem;
- newItem.source=source;
- newItem.destination=destination;
- newItem.isSame=isSame;
- newItem.transfer=NULL;
- newItem.scan=thread;
- alreadyExistsQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- folderExistsDialog dialog(interface,source,isSame,destination,firstRenamingRule,otherRenamingRule);
- dialog.exec();/// \bug crash when external close
- FolderExistsAction newAction=dialog.getAction();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FolderExists_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFolderExists)
- setComboBoxFolderColision(newAction);
- if(!dialog.getAlways() && newAction==FolderExists_Rename)
- thread->setFolderExistsAction(newAction,dialog.getNewName());
- else
- thread->setFolderExistsAction(newAction);
- dialogIsOpen=false;
- if(!isCalledByShowOneNewDialog)
- emit queryOneNewDialog();
- return;
- break;
- }
-}
-
-/// \note Can be call without queue because all call will be serialized
-/// \todo all this part
-void copyEngine::errorOnFolder(QFileInfo fileInfo,QString errorString,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog)
-{
- if(stopIt)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+fileInfo.absoluteFilePath()+", error: "+errorString);
- if(thread==NULL)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread");
- return;
- }
- //load the always action
- tempFileErrorAction=alwaysDoThisActionForFolderError;
- switch(tempFileErrorAction)
- {
- case FileError_Skip:
- case FileError_Retry:
- case FileError_PutToEndOfTheList:
- thread->setFolderErrorAction(tempFileErrorAction);
- break;
- default:
- if(dialogIsOpen)
- {
- errorQueueItem newItem;
- newItem.errorString=errorString;
- newItem.inode=fileInfo;
- newItem.mkPath=false;
- newItem.rmPath=false;
- newItem.scan=thread;
- newItem.transfer=NULL;
- errorQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- emit error(fileInfo.absoluteFilePath(),fileInfo.size(),fileInfo.lastModified(),errorString);
- fileErrorDialog dialog(interface,fileInfo,errorString);
- dialog.exec();/// \bug crash when external close
- FileErrorAction newAction=dialog.getAction();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FileError_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError)
- setComboBoxFolderError(newAction);
- dialogIsOpen=false;
- thread->setFolderErrorAction(newAction);
- if(!isCalledByShowOneNewDialog)
- emit queryOneNewDialog();
- return;
- break;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-// -----------------------------------------------------
-
-//mkpath event
-void copyEngine::mkPathErrorOnFolder(QFileInfo folder,QString errorString,bool isCalledByShowOneNewDialog)
-{
- if(stopIt)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+folder.absoluteFilePath()+", error: "+errorString);
- //load the always action
- tempFileErrorAction=alwaysDoThisActionForFolderError;
- error_index=0;
- switch(tempFileErrorAction)
- {
- case FileError_Skip:
- listThread->mkPathQueue.skip();
- return;
- case FileError_Retry:
- listThread->mkPathQueue.retry();
- return;
- default:
- if(dialogIsOpen)
- {
- errorQueueItem newItem;
- newItem.errorString=errorString;
- newItem.inode=folder;
- newItem.mkPath=true;
- newItem.rmPath=false;
- newItem.scan=NULL;
- newItem.transfer=NULL;
- errorQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- emit error(folder.absoluteFilePath(),folder.size(),folder.lastModified(),errorString);
- fileErrorDialog dialog(interface,folder,errorString,false);
- dialog.exec();/// \bug crash when external close
- FileErrorAction newAction=dialog.getAction();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FileError_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError)
- {
- setComboBoxFolderError(newAction);
- alwaysDoThisActionForFolderError=newAction;
- }
- dialogIsOpen=false;
- switch(newAction)
- {
- case FileError_Skip:
- listThread->mkPathQueue.skip();
- break;
- case FileError_Retry:
- listThread->mkPathQueue.retry();
- break;
- default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unknow switch case: "+QString::number(newAction));
- break;
- }
- if(!isCalledByShowOneNewDialog)
- emit queryOneNewDialog();
- return;
- break;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-//rmpath event
-void copyEngine::rmPathErrorOnFolder(QFileInfo folder,QString errorString,bool isCalledByShowOneNewDialog)
-{
- if(stopIt)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+folder.absoluteFilePath()+", error: "+errorString);
- //load the always action
- tempFileErrorAction=alwaysDoThisActionForFolderError;
- error_index=0;
- switch(tempFileErrorAction)
- {
- case FileError_Skip:
- listThread->rmPathQueue.skip();
- return;
- case FileError_Retry:
- listThread->rmPathQueue.retry();
- return;
- default:
- if(dialogIsOpen)
- {
- errorQueueItem newItem;
- newItem.errorString=errorString;
- newItem.inode=folder;
- newItem.mkPath=false;
- newItem.rmPath=true;
- newItem.scan=NULL;
- newItem.transfer=NULL;
- errorQueue << newItem;
- return;
- }
- dialogIsOpen=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- emit error(folder.absoluteFilePath(),folder.size(),folder.lastModified(),errorString);
- fileErrorDialog dialog(interface,folder,errorString,false);
- dialog.exec();/// \bug crash when external close
- FileErrorAction newAction=dialog.getAction();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction));
- if(newAction==FileError_Cancel)
- {
- emit cancelAll();
- return;
- }
- if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError)
- {
- setComboBoxFolderError(newAction);
- alwaysDoThisActionForFolderError=newAction;
- }
- dialogIsOpen=false;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"do the action");
- switch(newAction)
- {
- case FileError_Skip:
- listThread->rmPathQueue.skip();
- break;
- case FileError_Retry:
- listThread->rmPathQueue.retry();
- break;
- default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unknow switch case: "+QString::number(newAction));
- break;
- }
- if(!isCalledByShowOneNewDialog)
- emit queryOneNewDialog();
- return;
- break;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop");
-}
-
-//show one new dialog if needed
-void copyEngine::showOneNewDialog()
-{
- if(stopIt)
- return;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"alreadyExistsQueue.size(): "+QString::number(alreadyExistsQueue.size()));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"errorQueue.size(): "+QString::number(errorQueue.size()));
- loop_size=alreadyExistsQueue.size();
- while(loop_size>0)
- {
- if(alreadyExistsQueue.first().transfer!=NULL)
- {
- fileAlreadyExists(alreadyExistsQueue.first().source,
- alreadyExistsQueue.first().destination,
- alreadyExistsQueue.first().isSame,
- alreadyExistsQueue.first().transfer,
- true);
- }
- else if(alreadyExistsQueue.first().scan!=NULL)
- folderAlreadyExists(alreadyExistsQueue.first().source,
- alreadyExistsQueue.first().destination,
- alreadyExistsQueue.first().isSame,
- alreadyExistsQueue.first().scan,
- true);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"bug, no thread actived");
- alreadyExistsQueue.removeFirst();
- loop_size--;
- }
- loop_size=errorQueue.size();
- while(errorQueue.size()>0)
- {
- if(errorQueue.first().transfer!=NULL)
- errorOnFile(errorQueue.first().inode,errorQueue.first().errorString,errorQueue.first().transfer,true);
- else if(errorQueue.first().scan!=NULL)
- errorOnFolder(errorQueue.first().inode,errorQueue.first().errorString,errorQueue.first().scan,true);
- else if(errorQueue.first().mkPath)
- mkPathErrorOnFolder(errorQueue.first().inode,errorQueue.first().errorString,true);
- else if(errorQueue.first().rmPath)
- rmPathErrorOnFolder(errorQueue.first().inode,errorQueue.first().errorString,true);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"bug, no thread actived");
- errorQueue.removeFirst();
- loop_size--;
- }
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine.cpp b/plugins-alternative/CopyEngine/Rsync/copyEngine.cpp
deleted file mode 100755
index 1c17f8a..0000000
--- a/plugins-alternative/CopyEngine/Rsync/copyEngine.cpp
+++ /dev/null
@@ -1,819 +0,0 @@
-/** \file copyEngine.cpp
-\brief Define the copy engine
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QtCore>
-#include <QFileDialog>
-#include <QMessageBox>
-
-#include "copyEngine.h"
-#include "folderExistsDialog.h"
-#include "../../../interface/PluginInterface_CopyEngine.h"
-
-copyEngine::copyEngine(FacilityInterface * facilityEngine) :
- ui(new Ui::options())
-{
- listThread=new ListThread(facilityEngine);
- this->facilityEngine=facilityEngine;
- filters=NULL;
- renamingRules=NULL;
- qRegisterMetaType<TransferThread *>("TransferThread *");
- qRegisterMetaType<scanFileOrFolder *>("scanFileOrFolder *");
- qRegisterMetaType<EngineActionInProgress>("EngineActionInProgress");
- qRegisterMetaType<DebugLevel>("DebugLevel");
- qRegisterMetaType<FileExistsAction>("FileExistsAction");
- qRegisterMetaType<FolderExistsAction>("FolderExistsAction");
- qRegisterMetaType<QList<Filters_rules> >("QList<Filters_rules>");
- qRegisterMetaType<QList<int> >("QList<int>");
- qRegisterMetaType<CopyMode>("CopyMode");
- qRegisterMetaType<QList<returnActionOnCopyList> >("QList<returnActionOnCopyList>");
- qRegisterMetaType<QList<ProgressionItem> >("QList<ProgressionItem>");
-
- interface = NULL;
- tempWidget = NULL;
- uiIsInstalled = false;
- dialogIsOpen = false;
- maxSpeed = 0;
- alwaysDoThisActionForFileExists = FileExists_NotSet;
- alwaysDoThisActionForFileError = FileError_NotSet;
- checkDestinationFolderExists = false;
- stopIt = false;
- size_for_speed = 0;
- forcedMode = false;
-
- //implement the SingleShot in this class
- //timerActionDone.setSingleShot(true);
- timerActionDone.setInterval(ULTRACOPIER_PLUGIN_TIME_UPDATE_TRASNFER_LIST);
- //timerProgression.setSingleShot(true);
- timerProgression.setInterval(ULTRACOPIER_PLUGIN_TIME_UPDATE_PROGRESSION);
-
-}
-
-copyEngine::~copyEngine()
-{
- /*if(filters!=NULL)
- delete filters;
- if(renamingRules!=NULL)
- delete renamingRules;
- destroyed by the widget parent, here the interface
- */
- stopIt=true;
- delete listThread;
- delete ui;
-}
-
-void copyEngine::connectTheSignalsSlots()
-{
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- debugDialogWindow.show();
- #endif
- if(!connect(listThread,SIGNAL(actionInProgess(EngineActionInProgress)), this,SIGNAL(actionInProgess(EngineActionInProgress)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect actionInProgess()");
- if(!connect(listThread,SIGNAL(actionInProgess(EngineActionInProgress)), this,SLOT(newActionInProgess(EngineActionInProgress)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect actionInProgess() to slot");
- if(!connect(listThread,SIGNAL(newFolderListing(QString)), this,SIGNAL(newFolderListing(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newFolderListing()");
- if(!connect(listThread,SIGNAL(newCollisionAction(QString)), this,SIGNAL(newCollisionAction(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newCollisionAction()");
- if(!connect(listThread,SIGNAL(newErrorAction(QString)), this,SIGNAL(newErrorAction(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newErrorAction()");
- if(!connect(listThread,SIGNAL(isInPause(bool)), this,SIGNAL(isInPause(bool)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect isInPause()");
- if(!connect(listThread,SIGNAL(error(QString,quint64,QDateTime,QString)), this,SIGNAL(error(QString,quint64,QDateTime,QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect error()");
- if(!connect(listThread,SIGNAL(rmPath(QString)), this,SIGNAL(rmPath(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect rmPath()");
- if(!connect(listThread,SIGNAL(mkPath(QString)), this,SIGNAL(mkPath(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect mkPath()");
- if(!connect(listThread,SIGNAL(newActionOnList(QList<returnActionOnCopyList>)), this,SIGNAL(newActionOnList(QList<returnActionOnCopyList>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newActionOnList()");
- if(!connect(listThread,SIGNAL(pushFileProgression(QList<ProgressionItem>)), this,SIGNAL(pushFileProgression(QList<ProgressionItem>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect pushFileProgression()");
- if(!connect(listThread,SIGNAL(pushGeneralProgression(quint64,quint64)), this,SIGNAL(pushGeneralProgression(quint64,quint64)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect pushGeneralProgression()");
- if(!connect(listThread,SIGNAL(syncReady()), this,SIGNAL(syncReady()), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect syncReady()");
- if(!connect(listThread,SIGNAL(canBeDeleted()), this,SIGNAL(canBeDeleted()), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect canBeDeleted()");
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- if(!connect(listThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect debugInformation()");
- #endif
-
- if(!connect(listThread,SIGNAL(send_fileAlreadyExists(QFileInfo,QFileInfo,bool,TransferThread *)), this,SLOT(fileAlreadyExists(QFileInfo,QFileInfo,bool,TransferThread *)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_fileAlreadyExists()");
- if(!connect(listThread,SIGNAL(send_errorOnFile(QFileInfo,QString,TransferThread *)), this,SLOT(errorOnFile(QFileInfo,QString,TransferThread *)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_errorOnFile()");
- if(!connect(listThread,SIGNAL(send_folderAlreadyExists(QFileInfo,QFileInfo,bool,scanFileOrFolder *)), this,SLOT(folderAlreadyExists(QFileInfo,QFileInfo,bool,scanFileOrFolder *)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_folderAlreadyExists()");
- if(!connect(listThread,SIGNAL(send_errorOnFolder(QFileInfo,QString,scanFileOrFolder *)), this,SLOT(errorOnFolder(QFileInfo,QString,scanFileOrFolder *)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_errorOnFolder()");
- if(!connect(listThread,SIGNAL(updateTheDebugInfo(QStringList,QStringList,int)), this,SLOT(updateTheDebugInfo(QStringList,QStringList,int)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect updateTheDebugInfo()");
- if(!connect(listThread,SIGNAL(errorTransferList(QString)), this,SLOT(errorTransferList(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect errorTransferList()");
- if(!connect(listThread,SIGNAL(warningTransferList(QString)), this,SLOT(warningTransferList(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect warningTransferList()");
- if(!connect(listThread,SIGNAL(mkPathErrorOnFolder(QFileInfo,QString)), this,SLOT(mkPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect mkPathErrorOnFolder()");
- if(!connect(listThread,SIGNAL(rmPathErrorOnFolder(QFileInfo,QString)), this,SLOT(rmPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect rmPathErrorOnFolder()");
- if(!connect(listThread,SIGNAL(send_realBytesTransfered(quint64)), this,SLOT(get_realBytesTransfered(quint64)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_realBytesTransfered()");
-
- if(!connect(this,SIGNAL(tryCancel()), listThread,SIGNAL(tryCancel()), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect tryCancel()");
- if(!connect(this,SIGNAL(signal_pause()), listThread,SLOT(pause()), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_pause()");
- if(!connect(this,SIGNAL(signal_resume()), listThread,SLOT(resume()), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_resume()");
- if(!connect(this,SIGNAL(signal_skip(quint64)), listThread,SLOT(skip(quint64)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_skip()");
- if(!connect(this,SIGNAL(signal_setCollisionAction(FileExistsAction)), listThread,SLOT(setAlwaysFileExistsAction(FileExistsAction)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_setCollisionAction()");
- if(!connect(this,SIGNAL(signal_setFolderColision(FolderExistsAction)), listThread,SLOT(setFolderColision(FolderExistsAction)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_setFolderColision()");
- if(!connect(this,SIGNAL(signal_removeItems(QList<int>)), listThread,SLOT(removeItems(QList<int>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_removeItems()");
- if(!connect(this,SIGNAL(signal_moveItemsOnTop(QList<int>)), listThread,SLOT(moveItemsOnTop(QList<int>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsOnTop()");
- if(!connect(this,SIGNAL(signal_moveItemsUp(QList<int>)), listThread,SLOT(moveItemsUp(QList<int>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsUp()");
- if(!connect(this,SIGNAL(signal_moveItemsDown(QList<int>)), listThread,SLOT(moveItemsDown(QList<int>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsDown()");
- if(!connect(this,SIGNAL(signal_moveItemsOnBottom(QList<int>)), listThread,SLOT(moveItemsOnBottom(QList<int>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsOnBottom()");
- if(!connect(this,SIGNAL(signal_exportTransferList(QString)), listThread,SLOT(exportTransferList(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_exportTransferList()");
- if(!connect(this,SIGNAL(signal_importTransferList(QString)), listThread,SLOT(importTransferList(QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_importTransferList()");
- if(!connect(this,SIGNAL(signal_forceMode(CopyMode)), listThread,SLOT(forceMode(CopyMode)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_forceMode()");
- if(!connect(this,SIGNAL(send_osBufferLimit(uint)), listThread,SLOT(set_osBufferLimit(uint)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_osBufferLimit()");
- if(!connect(this,SIGNAL(send_setFilters(QList<Filters_rules>,QList<Filters_rules>)),listThread,SLOT(set_setFilters(QList<Filters_rules>,QList<Filters_rules>)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_setFilters()");
- if(!connect(this,SIGNAL(send_sendNewRenamingRules(QString,QString)),listThread,SLOT(set_sendNewRenamingRules(QString,QString)), Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_sendNewRenamingRules()");
- if(!connect(&timerActionDone,SIGNAL(timeout()), listThread,SLOT(sendActionDone())))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect timerActionDone");
- if(!connect(&timerProgression,SIGNAL(timeout()), listThread,SLOT(sendProgression())))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect timerProgression");
-
- if(!connect(this,SIGNAL(queryOneNewDialog()),SLOT(showOneNewDialog()),Qt::QueuedConnection))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect queryOneNewDialog()");
-}
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-void copyEngine::updateTheDebugInfo(QStringList newList,QStringList newList2,int numberOfInodeOperation)
-{
- debugDialogWindow.setTransferThreadList(newList);
- debugDialogWindow.setTransferList(newList2);
- debugDialogWindow.setInodeUsage(numberOfInodeOperation);
-}
-#endif
-
-//to send the options panel
-bool copyEngine::getOptionsEngine(QWidget * tempWidget)
-{
- this->tempWidget=tempWidget;
- connect(tempWidget, SIGNAL(destroyed()), this, SLOT(resetTempWidget()));
- ui->setupUi(tempWidget);
- //conect the ui widget
-/* connect(ui->doRightTransfer, SIGNAL(toggled(bool)), &threadOfTheTransfer, SLOT(setRightTransfer(bool)));
- connect(ui->keepDate, SIGNAL(toggled(bool)), &threadOfTheTransfer, SLOT(setKeepDate(bool)));
- connect(ui->blockSize, SIGNAL(valueChanged(int)), &threadOfTheTransfer, SLOT(setBlockSize(int)));*/
- connect(ui->autoStart, SIGNAL(toggled(bool)), this, SLOT(setAutoStart(bool)));
- connect(ui->rsync, SIGNAL(toggled(bool)), this, SLOT(setRsync(bool)));
- connect(ui->checkBoxDestinationFolderExists, SIGNAL(toggled(bool)), this, SLOT(setCheckDestinationFolderExists(bool)));
- uiIsInstalled=true;
- setRightTransfer(doRightTransfer);
- setKeepDate(keepDate);
- setSpeedLimitation(maxSpeed);
- setBlockSize(blockSize);
- setAutoStart(autoStart);
- setRsync(rsync);
- setCheckDestinationFolderExists(checkDestinationFolderExists);
- set_doChecksum(doChecksum);
- set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible);
- set_checksumOnlyOnError(checksumOnlyOnError);
- set_osBuffer(osBuffer);
- set_osBufferLimited(osBufferLimited);
- set_osBufferLimit(osBufferLimit);
- return true;
-}
-
-//to have interface widget to do modal dialog
-void copyEngine::setInterfacePointer(QWidget * interface)
-{
- this->interface=interface;
- filters=new Filters(tempWidget);
- renamingRules=new RenamingRules(tempWidget);
-
- if(uiIsInstalled)
- {
- connect(ui->doRightTransfer, SIGNAL(toggled(bool)), this,SLOT(setRightTransfer(bool)));
- connect(ui->keepDate, SIGNAL(toggled(bool)), this,SLOT(setKeepDate(bool)));
- connect(ui->blockSize, SIGNAL(valueChanged(int)), this,SLOT(setBlockSize(int)));
- connect(ui->autoStart, SIGNAL(toggled(bool)), this,SLOT(setAutoStart(bool)));
- connect(ui->rsync, SIGNAL(toggled(bool)), this,SLOT(setRsync(bool)));
- connect(ui->doChecksum, SIGNAL(toggled(bool)), this,SLOT(doChecksum_toggled(bool)));
- connect(ui->checksumIgnoreIfImpossible, SIGNAL(toggled(bool)), this,SLOT(checksumIgnoreIfImpossible_toggled(bool)));
- connect(ui->checksumOnlyOnError, SIGNAL(toggled(bool)), this,SLOT(checksumOnlyOnError_toggled(bool)));
- connect(ui->osBuffer, SIGNAL(toggled(bool)), this,SLOT(osBuffer_toggled(bool)));
- connect(ui->osBufferLimited, SIGNAL(toggled(bool)), this,SLOT(osBufferLimited_toggled(bool)));
- connect(ui->osBufferLimit, SIGNAL(editingFinished()), this,SLOT(osBufferLimit_editingFinished()));
-
- connect(filters,SIGNAL(sendNewFilters(QStringList,QStringList,QStringList,QStringList)),this,SLOT(sendNewFilters()));
- connect(ui->filters,SIGNAL(clicked()),this,SLOT(showFilterDialog()));
-
- if(!connect(renamingRules,SIGNAL(sendNewRenamingRules(QString,QString)),this,SLOT(sendNewRenamingRules(QString,QString))))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect sendNewRenamingRules()");
- if(!connect(ui->renamingRules,SIGNAL(clicked()),this,SLOT(showRenamingRules())))
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect renamingRules.clicked()");
- }
-
- filters->setFilters(includeStrings,includeOptions,excludeStrings,excludeOptions);
- set_setFilters(includeStrings,includeOptions,excludeStrings,excludeOptions);
-
- renamingRules->setRenamingRules(firstRenamingRule,otherRenamingRule);
- emit send_sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
-}
-
-bool copyEngine::haveSameSource(const QStringList &sources)
-{
- return listThread->haveSameSource(sources);
-}
-
-bool copyEngine::haveSameDestination(const QString &destination)
-{
- return listThread->haveSameDestination(destination);
-}
-
-bool copyEngine::newCopy(const QStringList &sources)
-{
- if(forcedMode && mode!=Copy)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to move, you can't copy with it");
- QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to move, you can't copy with it"));
- return false;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- QString destination = QFileDialog::getExistingDirectory(interface,facilityEngine->translateText("Select destination directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
- if(destination.isEmpty() || destination.isNull() || destination=="")
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Canceled by the user");
- return false;
- }
- return listThread->newCopy(sources,destination);
-}
-
-bool copyEngine::newCopy(const QStringList &sources,const QString &destination)
-{
- if(forcedMode && mode!=Copy)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to move, you can't copy with it");
- QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to move, you can't copy with it"));
- return false;
- }
- return listThread->newCopy(sources,destination);
-}
-
-bool copyEngine::newMove(const QStringList &sources)
-{
- if(forcedMode && mode!=Move)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to copy, you can't move with it");
- QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to copy, you can't move with it"));
- return false;
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- QString destination = QFileDialog::getExistingDirectory(interface,facilityEngine->translateText("Select destination directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
- if(destination.isEmpty() || destination.isNull() || destination=="")
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Canceled by the user");
- return false;
- }
- return listThread->newMove(sources,destination);
-}
-
-bool copyEngine::newMove(const QStringList &sources,const QString &destination)
-{
- if(forcedMode && mode!=Move)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to copy, you can't move with it");
- QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to copy, you can't move with it"));
- return false;
- }
- return listThread->newMove(sources,destination);
-}
-
-void copyEngine::newTransferList(const QString &file)
-{
- emit signal_importTransferList(file);
-}
-
-//because direct access to list thread into the main thread can't be do
-quint64 copyEngine::realByteTransfered()
-{
- return size_for_speed;
-}
-
-//speed limitation
-qint64 copyEngine::getSpeedLimitation()
-{
- return listThread->getSpeedLimitation();
-}
-
-//get collision action
-QList<QPair<QString,QString> > copyEngine::getCollisionAction()
-{
- QPair<QString,QString> tempItem;
- QList<QPair<QString,QString> > list;
- tempItem.first=facilityEngine->translateText("Ask");tempItem.second="ask";list << tempItem;
- tempItem.first=facilityEngine->translateText("Skip");tempItem.second="skip";list << tempItem;
- tempItem.first=facilityEngine->translateText("Overwrite");tempItem.second="overwrite";list << tempItem;
- tempItem.first=facilityEngine->translateText("Overwrite if newer");tempItem.second="overwriteIfNewer";list << tempItem;
- tempItem.first=facilityEngine->translateText("Overwrite if the last modification dates are different");tempItem.second="overwriteIfNotSameModificationDate";list << tempItem;
- tempItem.first=facilityEngine->translateText("Rename");tempItem.second="rename";list << tempItem;
- return list;
-}
-
-QList<QPair<QString,QString> > copyEngine::getErrorAction()
-{
- QPair<QString,QString> tempItem;
- QList<QPair<QString,QString> > list;
- tempItem.first=facilityEngine->translateText("Ask");tempItem.second="ask";list << tempItem;
- tempItem.first=facilityEngine->translateText("Skip");tempItem.second="skip";list << tempItem;
- tempItem.first=facilityEngine->translateText("Put to end of the list");tempItem.second="putToEndOfTheList";list << tempItem;
- return list;
-}
-
-void copyEngine::setDrive(const QStringList &drives)
-{
- listThread->setDrive(drives);
-}
-
-/** \brief to sync the transfer list
- * Used when the interface is changed, useful to minimize the memory size */
-void copyEngine::syncTransferList()
-{
- listThread->syncTransferList();
-}
-
-void copyEngine::set_doChecksum(bool doChecksum)
-{
- listThread->set_doChecksum(doChecksum);
- if(uiIsInstalled)
- ui->doChecksum->setChecked(doChecksum);
- this->doChecksum=doChecksum;
-}
-
-void copyEngine::set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible)
-{
- listThread->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible);
- if(uiIsInstalled)
- ui->checksumIgnoreIfImpossible->setChecked(checksumIgnoreIfImpossible);
- this->checksumIgnoreIfImpossible=checksumIgnoreIfImpossible;
-}
-
-void copyEngine::set_checksumOnlyOnError(bool checksumOnlyOnError)
-{
- listThread->set_checksumOnlyOnError(checksumOnlyOnError);
- if(uiIsInstalled)
- ui->checksumOnlyOnError->setChecked(checksumOnlyOnError);
- this->checksumOnlyOnError=checksumOnlyOnError;
-}
-
-void copyEngine::set_osBuffer(bool osBuffer)
-{
- listThread->set_osBuffer(osBuffer);
- if(uiIsInstalled)
- ui->osBuffer->setChecked(osBuffer);
- this->osBuffer=osBuffer;
-}
-
-void copyEngine::set_osBufferLimited(bool osBufferLimited)
-{
- listThread->set_osBufferLimited(osBufferLimited);
- if(uiIsInstalled)
- ui->osBufferLimited->setChecked(osBufferLimited);
- this->osBufferLimited=osBufferLimited;
-}
-
-void copyEngine::set_osBufferLimit(unsigned int osBufferLimit)
-{
- emit send_osBufferLimit(osBufferLimit);
- if(uiIsInstalled)
- ui->osBufferLimit->setValue(osBufferLimit);
- this->osBufferLimit=osBufferLimit;
-}
-
-void copyEngine::set_setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions)
-{
- if(filters!=NULL)
- {
- filters->setFilters(includeStrings,includeOptions,excludeStrings,excludeOptions);
- emit send_setFilters(filters->getInclude(),filters->getExclude());
- }
- this->includeStrings=includeStrings;
- this->includeOptions=includeOptions;
- this->excludeStrings=excludeStrings;
- this->excludeOptions=excludeOptions;
-}
-
-void copyEngine::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
-}
-
-bool copyEngine::userAddFolder(const CopyMode &mode)
-{
- QString source = QFileDialog::getExistingDirectory(interface,facilityEngine->translateText("Select source directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
- if(source.isEmpty() || source.isNull() || source=="")
- return false;
- if(mode==Copy)
- return newCopy(QStringList() << source);
- else
- return newMove(QStringList() << source);
-}
-
-bool copyEngine::userAddFile(const CopyMode &mode)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- QStringList sources = QFileDialog::getOpenFileNames(
- interface,
- facilityEngine->translateText("Select one or more files to open"),
- "",
- facilityEngine->translateText("All files")+" (*)");
- if(sources.isEmpty())
- return false;
- if(mode==Copy)
- return newCopy(sources);
- else
- return newMove(sources);
-}
-
-void copyEngine::pause()
-{
- emit signal_pause();
-}
-
-void copyEngine::resume()
-{
- emit signal_resume();
-}
-
-void copyEngine::skip(const quint64 &id)
-{
- emit signal_skip(id);
-}
-
-void copyEngine::cancel()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- stopIt=true;
- timerProgression.stop();
- timerActionDone.stop();
- emit tryCancel();
-}
-
-void copyEngine::removeItems(const QList<int> &ids)
-{
- emit signal_removeItems(ids);
-}
-
-void copyEngine::moveItemsOnTop(const QList<int> &ids)
-{
- emit signal_moveItemsOnTop(ids);
-}
-
-void copyEngine::moveItemsUp(const QList<int> &ids)
-{
- emit signal_moveItemsUp(ids);
-}
-
-void copyEngine::moveItemsDown(const QList<int> &ids)
-{
- emit signal_moveItemsDown(ids);
-}
-
-void copyEngine::moveItemsOnBottom(const QList<int> &ids)
-{
- emit signal_moveItemsOnBottom(ids);
-}
-
-/** \brief give the forced mode, to export/import transfer list */
-void copyEngine::forceMode(const CopyMode &mode)
-{
- if(mode==Move)
- {
- listThread->setRsync(false);
- rsync=false;
- }
- if(uiIsInstalled)
- ui->rsync->setEnabled(mode==Copy);
- if(forcedMode)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Mode forced previously"));
- QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The mode have been forced previously, it's internal error, please report it"));
- return;
- }
- if(mode==Copy)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to copy"));
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to move"));
- this->mode=mode;
- forcedMode=true;
- emit signal_forceMode(mode);
-}
-
-void copyEngine::exportTransferList()
-{
- QString fileName = QFileDialog::getSaveFileName(NULL,facilityEngine->translateText("Save transfer list"),"transfer-list.lst",facilityEngine->translateText("Transfer list")+" (*.lst)");
- if(fileName.isEmpty())
- return;
- emit signal_exportTransferList(fileName);
-}
-
-void copyEngine::importTransferList()
-{
- QString fileName = QFileDialog::getOpenFileName(NULL,facilityEngine->translateText("Open transfer list"),"transfer-list.lst",facilityEngine->translateText("Transfer list")+" (*.lst)");
- if(fileName.isEmpty())
- return;
- emit signal_importTransferList(fileName);
-}
-
-void copyEngine::warningTransferList(const QString &warning)
-{
- QMessageBox::warning(interface,facilityEngine->translateText("Error"),warning);
-}
-
-void copyEngine::errorTransferList(const QString &error)
-{
- QMessageBox::critical(interface,facilityEngine->translateText("Error"),error);
-}
-
-bool copyEngine::setSpeedLimitation(const qint64 &speedLimitation)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"maxSpeed: "+QString::number(speedLimitation));
- maxSpeed=speedLimitation;
- return listThread->setSpeedLimitation(speedLimitation);
-}
-
-void copyEngine::setCollisionAction(const QString &action)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"action: "+action);
- if(action=="skip")
- alwaysDoThisActionForFileExists=FileExists_Skip;
- else if(action=="overwrite")
- alwaysDoThisActionForFileExists=FileExists_Overwrite;
- else if(action=="overwriteIfNewer")
- alwaysDoThisActionForFileExists=FileExists_OverwriteIfNewer;
- else if(action=="overwriteIfNotSameModificationDate")
- alwaysDoThisActionForFileExists=FileExists_OverwriteIfNotSameModificationDate;
- else if(action=="rename")
- alwaysDoThisActionForFileExists=FileExists_Rename;
- else
- alwaysDoThisActionForFileExists=FileExists_NotSet;
- emit signal_setCollisionAction(alwaysDoThisActionForFileExists);
-}
-
-void copyEngine::setErrorAction(const QString &action)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"action: "+action);
- if(action=="skip")
- alwaysDoThisActionForFileError=FileError_Skip;
- else if(action=="putToEndOfTheList")
- alwaysDoThisActionForFileError=FileError_PutToEndOfTheList;
- else
- alwaysDoThisActionForFileError=FileError_NotSet;
-}
-
-void copyEngine::setRightTransfer(const bool doRightTransfer)
-{
- this->doRightTransfer=doRightTransfer;
- if(uiIsInstalled)
- ui->doRightTransfer->setChecked(doRightTransfer);
- listThread->setRightTransfer(doRightTransfer);
-}
-
-//set keep date
-void copyEngine::setKeepDate(const bool keepDate)
-{
- this->keepDate=keepDate;
- if(uiIsInstalled)
- ui->keepDate->setChecked(keepDate);
- listThread->setKeepDate(keepDate);
-}
-
-//set block size in KB
-void copyEngine::setBlockSize(const int blockSize)
-{
- this->blockSize=blockSize;
- if(uiIsInstalled)
- ui->blockSize->setValue(blockSize);
- listThread->setBlockSize(blockSize);
-}
-
-//set auto start
-void copyEngine::setAutoStart(const bool autoStart)
-{
- this->autoStart=autoStart;
- if(uiIsInstalled)
- ui->autoStart->setChecked(autoStart);
- listThread->setAutoStart(autoStart);
-}
-
-/// \brief set rsync
-void copyEngine::setRsync(const bool rsync)
-{
- this->rsync=rsync;
- if(uiIsInstalled)
- {
- ui->rsync->setChecked(rsync);
- ui->rsync->setEnabled(forcedMode && mode==Copy);
- ui->label_rsync->setEnabled(forcedMode && mode==Copy);
- }
- listThread->setRsync(rsync);
-}
-
-//set check destination folder
-void copyEngine::setCheckDestinationFolderExists(const bool checkDestinationFolderExists)
-{
- this->checkDestinationFolderExists=checkDestinationFolderExists;
- if(uiIsInstalled)
- ui->checkBoxDestinationFolderExists->setChecked(checkDestinationFolderExists);
- listThread->setCheckDestinationFolderExists(checkDestinationFolderExists);
-}
-
-//reset widget
-void copyEngine::resetTempWidget()
-{
- tempWidget=NULL;
-}
-
-void copyEngine::on_comboBoxFolderColision_currentIndexChanged(int index)
-{
- switch(index)
- {
- case 0:
- setComboBoxFolderColision(FolderExists_NotSet,false);
- break;
- case 1:
- setComboBoxFolderColision(FolderExists_Merge,false);
- break;
- case 2:
- setComboBoxFolderColision(FolderExists_Skip,false);
- break;
- case 3:
- setComboBoxFolderColision(FolderExists_Rename,false);
- break;
- }
-}
-
-void copyEngine::on_comboBoxFolderError_currentIndexChanged(int index)
-{
- switch(index)
- {
- case 0:
- setComboBoxFolderError(FileError_NotSet,false);
- break;
- case 1:
- setComboBoxFolderError(FileError_Skip,false);
- break;
- }
-}
-
-//set the translate
-void copyEngine::newLanguageLoaded()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, retranslate the widget options");
- if(tempWidget!=NULL)
- ui->retranslateUi(tempWidget);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"ui not loaded!");
-}
-
-void copyEngine::setComboBoxFolderColision(FolderExistsAction action,bool changeComboBox)
-{
- alwaysDoThisActionForFolderExists=action;
- emit signal_setFolderColision(alwaysDoThisActionForFolderExists);
- if(!changeComboBox || !uiIsInstalled)
- return;
- switch(action)
- {
- case FolderExists_Merge:
- ui->comboBoxFolderColision->setCurrentIndex(1);
- break;
- case FolderExists_Skip:
- ui->comboBoxFolderColision->setCurrentIndex(2);
- break;
- case FolderExists_Rename:
- ui->comboBoxFolderColision->setCurrentIndex(3);
- break;
- default:
- ui->comboBoxFolderColision->setCurrentIndex(0);
- break;
- }
-}
-
-void copyEngine::setComboBoxFolderError(FileErrorAction action,bool changeComboBox)
-{
- alwaysDoThisActionForFileError=action;
- if(!changeComboBox || !uiIsInstalled)
- return;
- switch(action)
- {
- case FileError_Skip:
- ui->comboBoxFolderError->setCurrentIndex(1);
- break;
- default:
- ui->comboBoxFolderError->setCurrentIndex(0);
- break;
- }
-}
-
-void copyEngine::doChecksum_toggled(bool doChecksum)
-{
- listThread->set_doChecksum(doChecksum);
-}
-
-void copyEngine::checksumOnlyOnError_toggled(bool checksumOnlyOnError)
-{
- listThread->set_checksumOnlyOnError(checksumOnlyOnError);
-}
-
-void copyEngine::checksumIgnoreIfImpossible_toggled(bool checksumIgnoreIfImpossible)
-{
- listThread->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible);
-}
-
-void copyEngine::osBuffer_toggled(bool osBuffer)
-{
- listThread->set_osBuffer(osBuffer);
- ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked());
-}
-
-void copyEngine::osBufferLimited_toggled(bool osBufferLimited)
-{
- listThread->set_osBufferLimited(osBufferLimited);
- ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked());
-}
-
-void copyEngine::osBufferLimit_editingFinished()
-{
- emit send_osBufferLimit(ui->osBufferLimit->value());
-}
-
-void copyEngine::showFilterDialog()
-{
- if(filters!=NULL)
- filters->exec();
-}
-
-void copyEngine::sendNewFilters()
-{
- if(filters!=NULL)
- emit send_setFilters(filters->getInclude(),filters->getExclude());
-}
-
-void copyEngine::sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"new filter");
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
- emit send_sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
-}
-
-void copyEngine::showRenamingRules()
-{
- if(renamingRules==NULL)
- {
- QMessageBox::critical(NULL,tr("Options error"),tr("Options engine is not loaded, can't access to the filters"));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"options not loaded");
- return;
- }
- renamingRules->exec();
-}
-
-void copyEngine::get_realBytesTransfered(quint64 realBytesTransfered)
-{
- size_for_speed=realBytesTransfered;
-}
-
-void copyEngine::newActionInProgess(EngineActionInProgress action)
-{
- if(action==Idle)
- {
- timerProgression.stop();
- timerActionDone.stop();
- }
- else
- {
- timerProgression.start();
- timerActionDone.start();
- }
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine.h b/plugins-alternative/CopyEngine/Rsync/copyEngine.h
deleted file mode 100755
index 5afa8b2..0000000
--- a/plugins-alternative/CopyEngine/Rsync/copyEngine.h
+++ /dev/null
@@ -1,362 +0,0 @@
-/** \file copyEngine.h
-\brief Define the copy engine
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QObject>
-#include <QList>
-#include <QStringList>
-#include <QFileInfo>
-#include <QFile>
-#include <QFileDialog>
-#include <QMessageBox>
-
-#include "../../../interface/PluginInterface_CopyEngine.h"
-#include "fileErrorDialog.h"
-#include "fileExistsDialog.h"
-#include "folderExistsDialog.h"
-#include "fileIsSameDialog.h"
-#include "ui_options.h"
-#include "Environment.h"
-#include "ListThread.h"
-#include "Filters.h"
-#include "RenamingRules.h"
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-#include "debugDialog.h"
-#include <QTimer>
-#endif
-
-#ifndef COPY_ENGINE_H
-#define COPY_ENGINE_H
-
-namespace Ui {
- class options;
-}
-
-/// \brief the implementation of copy engine plugin, manage directly few stuff, else pass to ListThread class.
-class copyEngine : public PluginInterface_CopyEngine
-{
- Q_OBJECT
-public:
- copyEngine(FacilityInterface * facilityEngine);
- ~copyEngine();
- void connectTheSignalsSlots();
-private:
- ListThread *listThread;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- debugDialog debugDialogWindow;
- #endif
- QWidget * tempWidget;
- Ui::options * ui;
- bool uiIsInstalled;
- QWidget * interface;
- Filters * filters;
- RenamingRules * renamingRules;
- FacilityInterface * facilityEngine;
- int maxSpeed;
- bool doRightTransfer;
- bool keepDate;
- int blockSize;
- bool autoStart;
- bool rsync;
- bool checkDestinationFolderExists;
- FileExistsAction alwaysDoThisActionForFileExists;
- FileErrorAction alwaysDoThisActionForFileError;
- FileErrorAction alwaysDoThisActionForFolderError;
- FolderExistsAction alwaysDoThisActionForFolderExists;
- bool dialogIsOpen;
- volatile bool stopIt;
- /// \brief error queue
- struct errorQueueItem
- {
- TransferThread * transfer; ///< NULL if send by scan thread
- scanFileOrFolder * scan; ///< NULL if send by transfer thread
- bool mkPath;
- bool rmPath;
- QFileInfo inode;
- QString errorString;
- };
- QList<errorQueueItem> errorQueue;
- /// \brief already exists queue
- struct alreadyExistsQueueItem
- {
- TransferThread * transfer; ///< NULL if send by scan thread
- scanFileOrFolder * scan; ///< NULL if send by transfer thread
- QFileInfo source;
- QFileInfo destination;
- bool isSame;
- };
- QList<alreadyExistsQueueItem> alreadyExistsQueue;
- //temp variable
- int error_index,loop_size;
- FileErrorAction tempFileErrorAction;
- FolderExistsAction tempFolderExistsAction;
- FileExistsAction tempFileExistsAction;
- quint64 size_for_speed;//because direct access to list thread into the main thread can't be do
- CopyMode mode;
- bool forcedMode;
-
- bool doChecksum;
- bool checksumIgnoreIfImpossible;
- bool checksumOnlyOnError;
- bool osBuffer;
- bool osBufferLimited;
- unsigned int osBufferLimit;
- QStringList includeStrings,includeOptions,excludeStrings,excludeOptions;
- QString firstRenamingRule;
- QString otherRenamingRule;
-
- //send action done timer
- QTimer timerActionDone;
- //send progression timer
- QTimer timerProgression;
-private slots:
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- void updateTheDebugInfo(QStringList,QStringList,int);
- #endif
- //dialog message
- /// \note Can be call without queue because all call will be serialized
- void fileAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,TransferThread * thread,bool isCalledByShowOneNewDialog=false);
- /// \note Can be call without queue because all call will be serialized
- void errorOnFile(QFileInfo fileInfo,QString errorString,TransferThread * thread,bool isCalledByShowOneNewDialog=false);
- /// \note Can be call without queue because all call will be serialized
- void folderAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog=false);
- /// \note Can be call without queue because all call will be serialized
- void errorOnFolder(QFileInfo fileInfo,QString errorString,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog=false);
- //mkpath event
- void mkPathErrorOnFolder(QFileInfo,QString,bool isCalledByShowOneNewDialog=false);
- //rmpath event
- void rmPathErrorOnFolder(QFileInfo,QString,bool isCalledByShowOneNewDialog=false);
- //show one new dialog if needed
- void showOneNewDialog();
- void sendNewFilters();
-
- void doChecksum_toggled(bool);
- void checksumOnlyOnError_toggled(bool);
- void checksumIgnoreIfImpossible_toggled(bool);
- void osBuffer_toggled(bool);
- void osBufferLimited_toggled(bool);
- void osBufferLimit_editingFinished();
- void showFilterDialog();
- void sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
- void showRenamingRules();
- void get_realBytesTransfered(quint64 realBytesTransfered);
- void newActionInProgess(EngineActionInProgress);
-public:
- /** \brief to send the options panel
- * \return return false if have not the options
- * \param tempWidget the widget to generate on it the options */
- bool getOptionsEngine(QWidget * tempWidget);
- /** \brief to have interface widget to do modal dialog
- * \param interface to have the widget of the interface, useful for modal dialog */
- void setInterfacePointer(QWidget * interface);
- //return empty if multiple
- /** \brief compare the current sources of the copy, with the passed arguments
- * \param sources the sources list to compares with the current sources list
- * \return true if have same sources, else false (or empty) */
- bool haveSameSource(const QStringList &sources);
- /** \brief compare the current destination of the copy, with the passed arguments
- * \param destination the destination to compares with the current destination
- * \return true if have same destination, else false (or empty) */
- bool haveSameDestination(const QString &destination);
- //external soft like file browser have send copy/move list to do
- /** \brief send copy without destination, ask the destination
- * \param sources the sources list to copy
- * \return true if the copy have been accepted */
- bool newCopy(const QStringList &sources);
- /** \brief send copy with destination
- * \param sources the sources list to copy
- * \param destination the destination to copy
- * \return true if the copy have been accepted */
- bool newCopy(const QStringList &sources,const QString &destination);
- /** \brief send move without destination, ask the destination
- * \param sources the sources list to move
- * \return true if the move have been accepted */
- bool newMove(const QStringList &sources);
- /** \brief send move without destination, ask the destination
- * \param sources the sources list to move
- * \param destination the destination to move
- * \return true if the move have been accepted */
- bool newMove(const QStringList &sources,const QString &destination);
- /** \brief send the new transfer list
- * \param file the transfer list */
- void newTransferList(const QString &file);
-
- /** \brief to get byte read, use by Ultracopier for the speed calculation
- * real size transfered to right speed calculation */
- quint64 realByteTransfered();
- //speed limitation
- /** \brief get the speed limitation
- * < -1 if not able, 0 if disabled */
- qint64 getSpeedLimitation();
- //get collision action
- /** \brief get the collision action list */
- QList<QPair<QString,QString> > getCollisionAction();
- /** \brief get the collision error list */
- QList<QPair<QString,QString> > getErrorAction();
-
- /** \brief to set drives detected
- * specific to this copy engine */
- void setDrive(const QStringList &drives);
-
- /** \brief to sync the transfer list
- * Used when the interface is changed, useful to minimize the memory size */
- void syncTransferList();
-
- void set_doChecksum(bool doChecksum);
- void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible);
- void set_checksumOnlyOnError(bool checksumOnlyOnError);
- void set_osBuffer(bool osBuffer);
- void set_osBufferLimited(bool osBufferLimited);
- void set_osBufferLimit(unsigned int osBufferLimit);
- void set_setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions);
- void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
-public slots:
- //user ask ask to add folder (add it with interface ask source/destination)
- /** \brief add folder called on the interface
- * Used by manual adding */
- bool userAddFolder(const CopyMode &mode);
- /** \brief add file called on the interface
- * Used by manual adding */
- bool userAddFile(const CopyMode &mode);
- //action on the copy
- /// \brief put the transfer in pause
- void pause();
- /// \brief resume the transfer
- void resume();
- /** \brief skip one transfer entry
- * \param id id of the file to remove */
- void skip(const quint64 &id);
- /// \brief cancel all the transfer
- void cancel();
- //edit the transfer list
- /** \brief remove the selected item
- * \param ids ids is the id list of the selected items */
- void removeItems(const QList<int> &ids);
- /** \brief move on top of the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsOnTop(const QList<int> &ids);
- /** \brief move up the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsUp(const QList<int> &ids);
- /** \brief move down the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsDown(const QList<int> &ids);
- /** \brief move on bottom of the list the selected item
- * \param ids ids is the id list of the selected items */
- void moveItemsOnBottom(const QList<int> &ids);
-
- /** \brief give the forced mode, to export/import transfer list */
- void forceMode(const CopyMode &mode);
- /// \brief export the transfer list into a file
- void exportTransferList();
- /// \brief import the transfer list into a file
- void importTransferList();
-
- /** \brief to set the speed limitation
- * -1 if not able, 0 if disabled */
- bool setSpeedLimitation(const qint64 &speedLimitation);
- //action
- /// \brief to set the collision action
- void setCollisionAction(const QString &action);
- /// \brief to set the error action
- void setErrorAction(const QString &action);
-
- // specific to this copy engine
-
- /// \brief set if the rights shoul be keep
- void setRightTransfer(const bool doRightTransfer);
- /// \brief set keep date
- void setKeepDate(const bool keepDate);
- /// \brief set block size in KB
- void setBlockSize(const int blockSize);
- /// \brief set auto start
- void setAutoStart(const bool autoStart);
- /// \brief set rsync
- void setRsync(const bool rsync);
- /// \brief set if need check if the destination folder exists
- void setCheckDestinationFolderExists(const bool checkDestinationFolderExists);
- /// \brief reset widget
- void resetTempWidget();
- //autoconnect
- void on_comboBoxFolderColision_currentIndexChanged(int index);
- void on_comboBoxFolderError_currentIndexChanged(int index);
- /// \brief need retranslate the insterface
- void newLanguageLoaded();
-private slots:
- void setComboBoxFolderColision(FolderExistsAction action,bool changeComboBox=true);
- void setComboBoxFolderError(FileErrorAction action,bool changeComboBox=true);
- void warningTransferList(const QString &warning);
- void errorTransferList(const QString &error);
-signals:
- //send information about the copy
- void actionInProgess(EngineActionInProgress); //should update interface information on this event
-
- void newActionOnList(const QList<returnActionOnCopyList> &);///very important, need be temporized to group the modification to do and not flood the interface
- void syncReady();
-
- /** \brief to get the progression for a specific file
- * \param id the id of the transfer, id send during population the transfer list
- * first = current transfered byte, second = byte to transfer */
- void pushFileProgression(const QList<ProgressionItem> &progressionList);
- //get information about the copy
- /** \brief to get the general progression
- * first = current transfered byte, second = byte to transfer */
- void pushGeneralProgression(const quint64 &,const quint64 &);
-
- void newFolderListing(const QString &path);
- void newCollisionAction(const QString &action);
- void newErrorAction(const QString &action);
- void isInPause(bool);
-
- //action on the copy
- void signal_pause();
- void signal_resume();
- void signal_skip(const quint64 &id);
-
- //edit the transfer list
- void signal_removeItems(const QList<int> &ids);
- void signal_moveItemsOnTop(const QList<int> &ids);
- void signal_moveItemsUp(const QList<int> &ids);
- void signal_moveItemsDown(const QList<int> &ids);
- void signal_moveItemsOnBottom(const QList<int> &ids);
-
- void signal_forceMode(const CopyMode &mode);
- void signal_exportTransferList(const QString &fileName);
- void signal_importTransferList(const QString &fileName);
-
- //action
- void signal_setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists);
- void signal_setComboBoxFolderColision(FolderExistsAction action);
- void signal_setFolderColision(FolderExistsAction action);
-
- //when the cancel is clicked on copy engine dialog
- void cancelAll();
-
- //internal cancel
- void tryCancel();
-
- //when can be deleted
- void canBeDeleted();
-
- //send error occurred
- void error(const QString &path,const quint64 &size,const QDateTime &mtime,const QString &error);
- //for the extra logging
- void rmPath(const QString &path);
- void mkPath(const QString &path);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
-
- //other signals
- void queryOneNewDialog();
-
- void send_osBufferLimit(const unsigned int &osBufferLimit);
- void send_setFilters(const QList<Filters_rules> &include,const QList<Filters_rules> &exclude);
- void send_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
-};
-
-#endif // COPY_ENGINE_H
diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine.pro b/plugins-alternative/CopyEngine/Rsync/copyEngine.pro
deleted file mode 100644
index 13ab523..0000000
--- a/plugins-alternative/CopyEngine/Rsync/copyEngine.pro
+++ /dev/null
@@ -1,82 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-HEADERS = copyEngine.h \
- StructEnumDefinition.h \
- scanFileOrFolder.h \
- fileErrorDialog.h \
- fileExistsDialog.h \
- fileIsSameDialog.h \
- factory.h \
- StructEnumDefinition_CopyEngine.h \
- DebugEngineMacro.h \
- Variable.h \
- debugDialog.h \
- TransferThread.h \
- ReadThread.h \
- WriteThread.h \
- RmPath.h \
- MkPath.h \
- folderExistsDialog.h \
- AvancedQFile.h \
- ListThread.h \
- ../../../interface/PluginInterface_CopyEngine.h \
- ../../../interface/OptionInterface.h \
- ../../../interface/FacilityInterface.h \
- Filters.h \
- FilterRules.h \
- RenamingRules.h
-SOURCES = copyEngine.cpp \
- scanFileOrFolder.cpp \
- fileErrorDialog.cpp \
- fileExistsDialog.cpp \
- fileIsSameDialog.cpp \
- factory.cpp \
- debugDialog.cpp \
- TransferThread.cpp \
- ReadThread.cpp \
- WriteThread.cpp \
- RmPath.cpp \
- MkPath.cpp \
- folderExistsDialog.cpp \
- AvancedQFile.cpp \
- copyEngine-collision-and-error.cpp \
- ListThread.cpp \
- Filters.cpp \
- FilterRules.cpp \
- RenamingRules.cpp \
- ListThread_InodeAction.cpp
-TARGET = $$qtLibraryTarget(copyEngine)
-TRANSLATIONS += Languages/fr/translation.ts \
- Languages/ar/translation.ts \
- Languages/zh/translation.ts \
- Languages/es/translation.ts \
- Languages/de/translation.ts \
- Languages/el/translation.ts \
- Languages/it/translation.ts \
- Languages/ja/translation.ts \
- Languages/id/translation.ts \
- Languages/pl/translation.ts \
- Languages/ru/translation.ts \
- Languages/tr/translation.ts \
- Languages/th/translation.ts \
- Languages/hi/translation.ts \
- Languages/nl/translation.ts \
- Languages/no/translation.ts \
- Languages/pt/translation.ts \
- Languages/ko/translation.ts
-
-FORMS += \
- options.ui \
- fileErrorDialog.ui \
- fileExistsDialog.ui \
- fileIsSameDialog.ui \
- debugDialog.ui \
- folderExistsDialog.ui \
- Filters.ui \
- FilterRules.ui \
- RenamingRules.ui
-
-OTHER_FILES += informations.xml
-
-RESOURCES += \
- resources.qrc
diff --git a/plugins-alternative/CopyEngine/Rsync/debugDialog.cpp b/plugins-alternative/CopyEngine/Rsync/debugDialog.cpp
deleted file mode 100644
index a03aec0..0000000
--- a/plugins-alternative/CopyEngine/Rsync/debugDialog.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/** \file debugDialog.cpp
-\brief Define the dialog to have debug information
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include "debugDialog.h"
-#include "ui_debugDialog.h"
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-
-debugDialog::debugDialog(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::debugDialog)
-{
- ui->setupUi(this);
-}
-
-debugDialog::~debugDialog()
-{
- delete ui;
-}
-
-void debugDialog::setTransferList(const QStringList &list)
-{
- if(list.size()==ui->tranferList->count())
- {
- int index=0;
- while(index<list.size())
- {
- ui->tranferList->item(index)->setText(list.at(index));
- index++;
- }
- }
- else
- {
- ui->tranferList->clear();
- ui->tranferList->addItems(list);
- }
-}
-
-void debugDialog::setActiveTransfer(int activeTransfer)
-{
- ui->spinBoxActiveTransfer->setValue(activeTransfer);
-}
-
-void debugDialog::setInodeUsage(int inodeUsage)
-{
- ui->spinBoxNumberOfInode->setValue(inodeUsage);
-}
-
-void debugDialog::setTransferThreadList(const QStringList &list)
-{
- if(list.size()==ui->transferThreadList->count())
- {
- int index=0;
- while(index<list.size())
- {
- ui->transferThreadList->item(index)->setText(list.at(index));
- index++;
- }
- }
- else
- {
- ui->transferThreadList->clear();
- ui->transferThreadList->addItems(list);
- }
-}
-
-#endif
diff --git a/plugins-alternative/CopyEngine/Rsync/debugDialog.h b/plugins-alternative/CopyEngine/Rsync/debugDialog.h
deleted file mode 100644
index 3d48857..0000000
--- a/plugins-alternative/CopyEngine/Rsync/debugDialog.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/** \file debugDialog.h
-\brief Define the dialog to have debug information
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#ifndef DEBUGDAILOG_H
-#define DEBUGDAILOG_H
-
-#include "Environment.h"
-
-#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-#include <QWidget>
-
-namespace Ui {
- class debugDialog;
-}
-
-/// \brief class to the dialog to have debug information
-class debugDialog : public QWidget
-{
- Q_OBJECT
-public:
- explicit debugDialog(QWidget *parent = 0);
- ~debugDialog();
- /// \brief to set the transfer list, limited in result to not slow down the application
- void setTransferList(const QStringList &list);
- /// \brief show the transfer thread, it show be a thread pool in normal time
- void setTransferThreadList(const QStringList &list);
- /// \brief show how many transfer is active
- void setActiveTransfer(int activeTransfer);
- /// \brief show many many inode is manipulated
- void setInodeUsage(int inodeUsage);
-private:
- Ui::debugDialog *ui;
-};
-
-#endif // ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-
-#endif // DEBUGDAILOG_H
diff --git a/plugins-alternative/CopyEngine/Rsync/debugDialog.ui b/plugins-alternative/CopyEngine/Rsync/debugDialog.ui
deleted file mode 100644
index 0df03be..0000000
--- a/plugins-alternative/CopyEngine/Rsync/debugDialog.ui
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>debugDialog</class>
- <widget class="QWidget" name="debugDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>665</width>
- <height>392</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string notr="true">Monitor</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string notr="true">Transfer thread</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QListWidget" name="transferThreadList">
- <property name="uniformItemSizes">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2">
- <property name="title">
- <string notr="true">Transfer list</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QListWidget" name="tranferList">
- <property name="uniformItemSizes">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_3">
- <property name="title">
- <string notr="true">Variables</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string notr="true">Active transfer:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QSpinBox" name="spinBoxActiveTransfer">
- <property name="readOnly">
- <bool>true</bool>
- </property>
- <property name="maximum">
- <number>9999</number>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string notr="true">Number of inode manipuled:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QSpinBox" name="spinBoxNumberOfInode">
- <property name="readOnly">
- <bool>true</bool>
- </property>
- <property name="maximum">
- <number>9999</number>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/documentation.dox b/plugins-alternative/CopyEngine/Rsync/documentation.dox
deleted file mode 100755
index 2ff6edd..0000000
--- a/plugins-alternative/CopyEngine/Rsync/documentation.dox
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/
-
-/*
- This file contains NO source code, just some documentation for doxygen to
- parse.
-*/
-
-/*!
- \mainpage Copy engine 0.3
-
- \section mainpage_overview Overview
-
- The rsync copy engine for Ultracopier 0.3. Support file/folder, copy/move, ...\n
- Thanks to this engine, Ultracopier is transformed into GUI + rsync.
- More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier 0.3 project.
-
- \section mainpage_platforms Platforms
-
- This plugin might be usable in all environments where you find Qt 4, but Gcc is requiered for some part.\n
- This plugin requires Qt 4.5.x or newer. Tested on Qt 4.7. Due to optimization Qt 4.8 usage will be better.\n
- To be compatible with the official Ultracopier plugins, you need compil it with Gcc, Qt4.8, and same env as Ultracopier have been compiled, see the documentation.
-
- \section mainpage_downloads Downloads
-
- You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ...
-
- \section mainpage_algorithm Algorithm
-
- Like say previously you will have more informations on the wiki.\n
- Then file transfer is done via pipe mecamism system:\n
- <ul>
- <li>push at no blocking into table up to the table is full, after is blocked up to one entry is free</li>
- <li>Other thread read the table up to have no more data, then is blocked</li>
- </ul>
- The transfer thread do listing of the folder, removing folder, make folder is one thread for each.\n
- The transfer list, have thread pool to do the inode operation (open, close, set date, ...). Do all inode operation in parallele, but transfer the data as sequential.
-
- \section license GPL Version 3
- The code source is under GPL3. The image is extacted from Oxygen icon pack of KDE4.
-
-*/
-
diff --git a/plugins-alternative/CopyEngine/Rsync/factory.cpp b/plugins-alternative/CopyEngine/Rsync/factory.cpp
deleted file mode 100644
index 7ed27d4..0000000
--- a/plugins-alternative/CopyEngine/Rsync/factory.cpp
+++ /dev/null
@@ -1,420 +0,0 @@
-/** \file factory.cpp
-\brief Define the factory to create new instance
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QtCore>
-#include <QFileDialog>
-
-#include "factory.h"
-
-Factory::Factory() :
- ui(new Ui::options())
-{
- tempWidget=new QWidget();
- ui->setupUi(tempWidget);
- errorFound=false;
- optionsEngine=NULL;
- filters=new Filters(tempWidget);
- renamingRules=new RenamingRules(tempWidget);
- #if defined (Q_OS_WIN32)
- QFileInfoList temp=QDir::drives();
- for (int i = 0; i < temp.size(); ++i) {
- mountSysPoint<<temp.at(i).filePath();
- }
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"mountSysPoint: "+mountSysPoint.join(";"));
- #elif defined (Q_OS_LINUX)
- connect(&mount,SIGNAL(error(QProcess::ProcessError)), this,SLOT(error(QProcess::ProcessError)));
- connect(&mount,SIGNAL(finished(int,QProcess::ExitStatus)), this,SLOT(finished(int,QProcess::ExitStatus)));
- connect(&mount,SIGNAL(readyReadStandardOutput()), this,SLOT(readyReadStandardOutput()));
- connect(&mount,SIGNAL(readyReadStandardError()), this,SLOT(readyReadStandardError()));
- mount.start("mount");
- #endif
- connect(ui->doRightTransfer, SIGNAL(toggled(bool)), this,SLOT(setDoRightTransfer(bool)));
- connect(ui->keepDate, SIGNAL(toggled(bool)), this,SLOT(setKeepDate(bool)));
- connect(ui->blockSize, SIGNAL(valueChanged(int)), this,SLOT(setBlockSize(int)));
- connect(ui->autoStart, SIGNAL(toggled(bool)), this,SLOT(setAutoStart(bool)));
- connect(ui->rsync, SIGNAL(toggled(bool)), this,SLOT(setRsync(bool)));
- connect(ui->doChecksum, SIGNAL(toggled(bool)), this,SLOT(doChecksum_toggled(bool)));
- connect(ui->checksumIgnoreIfImpossible, SIGNAL(toggled(bool)), this,SLOT(checksumIgnoreIfImpossible_toggled(bool)));
- connect(ui->checksumOnlyOnError, SIGNAL(toggled(bool)), this,SLOT(checksumOnlyOnError_toggled(bool)));
- connect(ui->osBuffer, SIGNAL(toggled(bool)), this,SLOT(osBuffer_toggled(bool)));
- connect(ui->osBufferLimited, SIGNAL(toggled(bool)), this,SLOT(osBufferLimited_toggled(bool)));
- connect(ui->osBufferLimit, SIGNAL(editingFinished()), this,SLOT(osBufferLimit_editingFinished()));
-
- connect(filters,SIGNAL(sendNewFilters(QStringList,QStringList,QStringList,QStringList)),this,SLOT(sendNewFilters(QStringList,QStringList,QStringList,QStringList)));
- connect(ui->filters,SIGNAL(clicked()),this,SLOT(showFilterDialog()));
- connect(renamingRules,SIGNAL(sendNewRenamingRules(QString,QString)),this,SLOT(sendNewRenamingRules(QString,QString)));
- connect(ui->renamingRules,SIGNAL(clicked()),this,SLOT(showRenamingRules()));
-
- ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked());
-}
-
-Factory::~Factory()
-{
- delete renamingRules;
- delete filters;
- delete ui;
-}
-
-PluginInterface_CopyEngine * Factory::getInstance()
-{
- copyEngine *realObject=new copyEngine(facilityEngine);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- connect(realObject,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)));
- #endif
- realObject->connectTheSignalsSlots();
- realObject->setDrive(mountSysPoint);
- PluginInterface_CopyEngine * newTransferEngine=realObject;
- connect(this,SIGNAL(reloadLanguage()),newTransferEngine,SLOT(newLanguageLoaded()));
- realObject->setRightTransfer( optionsEngine->getOptionValue("doRightTransfer").toBool());
- realObject->setKeepDate( optionsEngine->getOptionValue("keepDate").toBool());
- realObject->setBlockSize( optionsEngine->getOptionValue("blockSize").toInt());
- realObject->setAutoStart( optionsEngine->getOptionValue("autoStart").toBool());
- realObject->setRsync( optionsEngine->getOptionValue("rsync").toBool());
- realObject->on_comboBoxFolderColision_currentIndexChanged(ui->comboBoxFolderColision->currentIndex());
- realObject->on_comboBoxFolderError_currentIndexChanged(ui->comboBoxFolderError->currentIndex());
- realObject->setCheckDestinationFolderExists( optionsEngine->getOptionValue("checkDestinationFolder").toBool());
-
- realObject->set_doChecksum(optionsEngine->getOptionValue("doChecksum").toBool());
- realObject->set_checksumIgnoreIfImpossible(optionsEngine->getOptionValue("checksumIgnoreIfImpossible").toBool());
- realObject->set_checksumOnlyOnError(optionsEngine->getOptionValue("checksumOnlyOnError").toBool());
- realObject->set_osBuffer(optionsEngine->getOptionValue("osBuffer").toBool());
- realObject->set_osBufferLimited(optionsEngine->getOptionValue("osBufferLimited").toBool());
- realObject->set_osBufferLimit(optionsEngine->getOptionValue("osBufferLimit").toUInt());
- realObject->set_setFilters(optionsEngine->getOptionValue("includeStrings").toStringList(),
- optionsEngine->getOptionValue("includeOptions").toStringList(),
- optionsEngine->getOptionValue("excludeStrings").toStringList(),
- optionsEngine->getOptionValue("excludeOptions").toStringList()
- );
- realObject->setRenamingRules(optionsEngine->getOptionValue("firstRenamingRule").toString(),optionsEngine->getOptionValue("otherRenamingRule").toString());
- return newTransferEngine;
-}
-
-void Factory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath:"+pluginPath);
- this->facilityEngine=facilityInterface;
- Q_UNUSED(portableVersion);
- #ifndef ULTRACOPIER_PLUGIN_DEBUG
- Q_UNUSED(writePath);
- Q_UNUSED(pluginPath);
- #endif
- #if ! defined (Q_CC_GNU)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Unable to change date time of files, only gcc is supported");
- #endif
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,COMPILERINFO);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX BUFFER BLOCK: "+QString::number(ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MIN TIMER INTERVAL: "+QString::number(ULTRACOPIER_PLUGIN_MINTIMERINTERVAL));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX TIMER INTERVAL: "+QString::number(ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"NUM SEM SPEED MANAGEMENT: "+QString::number(ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX PARALLEL INODE OPT: "+QString::number(ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX PARALLEL TRANFER: "+QString::number(ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER));
- #if defined (ULTRACOPIER_PLUGIN_CHECKLISTTYPE)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"CHECK LIST TYPE set");
- #else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"CHECK LIST TYPE not set");
- #endif
- if(options!=NULL)
- {
- optionsEngine=options;
- //load the options
- QList<QPair<QString, QVariant> > KeysList;
- KeysList.append(qMakePair(QString("doRightTransfer"),QVariant(true)));
- KeysList.append(qMakePair(QString("keepDate"),QVariant(true)));
- KeysList.append(qMakePair(QString("blockSize"),QVariant(1024)));//1024KB as default
- KeysList.append(qMakePair(QString("autoStart"),QVariant(true)));
- KeysList.append(qMakePair(QString("rsync"),QVariant(true)));
- KeysList.append(qMakePair(QString("folderError"),QVariant(0)));
- KeysList.append(qMakePair(QString("folderColision"),QVariant(0)));
- KeysList.append(qMakePair(QString("checkDestinationFolder"),QVariant(true)));
- KeysList.append(qMakePair(QString("includeStrings"),QVariant(QStringList())));
- KeysList.append(qMakePair(QString("includeOptions"),QVariant(QStringList())));
- KeysList.append(qMakePair(QString("excludeStrings"),QVariant(QStringList())));
- KeysList.append(qMakePair(QString("excludeOptions"),QVariant(QStringList())));
- KeysList.append(qMakePair(QString("doChecksum"),QVariant(true)));
- KeysList.append(qMakePair(QString("checksumIgnoreIfImpossible"),QVariant(true)));
- KeysList.append(qMakePair(QString("checksumOnlyOnError"),QVariant(true)));
- KeysList.append(qMakePair(QString("osBuffer"),QVariant(true)));
- KeysList.append(qMakePair(QString("firstRenamingRule"),QVariant("")));
- KeysList.append(qMakePair(QString("otherRenamingRule"),QVariant("")));
- #ifdef Q_OS_WIN32
- KeysList.append(qMakePair(QString("osBufferLimited"),QVariant(true)));
- #else
- KeysList.append(qMakePair(QString("osBufferLimited"),QVariant(false)));
- #endif
- KeysList.append(qMakePair(QString("osBufferLimit"),QVariant(512)));
- optionsEngine->addOptionGroup(KeysList);
- #if ! defined (Q_CC_GNU)
- ui->keepDate->setEnabled(false);
- ui->keepDate->setToolTip("Not supported with this compiler");
- #endif
- ui->doRightTransfer->setChecked(optionsEngine->getOptionValue("doRightTransfer").toBool());
- ui->keepDate->setChecked(optionsEngine->getOptionValue("keepDate").toBool());
- ui->blockSize->setValue(optionsEngine->getOptionValue("blockSize").toUInt());
- ui->autoStart->setChecked(optionsEngine->getOptionValue("autoStart").toBool());
- ui->rsync->setChecked(optionsEngine->getOptionValue("rsync").toBool());
- ui->comboBoxFolderError->setCurrentIndex(optionsEngine->getOptionValue("folderError").toUInt());
- ui->comboBoxFolderColision->setCurrentIndex(optionsEngine->getOptionValue("folderColision").toUInt());
- ui->checkBoxDestinationFolderExists->setChecked(optionsEngine->getOptionValue("checkDestinationFolder").toBool());
- ui->doChecksum->setChecked(optionsEngine->getOptionValue("doChecksum").toBool());
- ui->checksumIgnoreIfImpossible->setChecked(optionsEngine->getOptionValue("checksumIgnoreIfImpossible").toBool());
- ui->checksumOnlyOnError->setChecked(optionsEngine->getOptionValue("checksumOnlyOnError").toBool());
- ui->osBuffer->setChecked(optionsEngine->getOptionValue("osBuffer").toBool());
- ui->osBufferLimited->setChecked(optionsEngine->getOptionValue("osBufferLimited").toBool());
- ui->osBufferLimit->setValue(optionsEngine->getOptionValue("osBufferLimit").toUInt());
- filters->setFilters(optionsEngine->getOptionValue("includeStrings").toStringList(),
- optionsEngine->getOptionValue("includeOptions").toStringList(),
- optionsEngine->getOptionValue("excludeStrings").toStringList(),
- optionsEngine->getOptionValue("excludeOptions").toStringList()
- );
- renamingRules->setRenamingRules(optionsEngine->getOptionValue("firstRenamingRule").toString(),optionsEngine->getOptionValue("otherRenamingRule").toString());
- }
-}
-
-QStringList Factory::supportedProtocolsForTheSource()
-{
- return QStringList() << "file";
-}
-
-QStringList Factory::supportedProtocolsForTheDestination()
-{
- return QStringList() << "file";
-}
-
-CopyType Factory::getCopyType()
-{
- return FileAndFolder;
-}
-
-TransferListOperation Factory::getTransferListOperation()
-{
- return TransferListOperation_ImportExport;
-}
-
-bool Factory::canDoOnlyCopy()
-{
- return false;
-}
-
-void Factory::error(QProcess::ProcessError error)
-{
- #ifndef ULTRACOPIER_PLUGIN_DEBUG
- Q_UNUSED(error)
- #endif
- errorFound=true;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"have detected error: "+QString::number(error));
-}
-
-void Factory::finished(int exitCode, QProcess::ExitStatus exitStatus)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"exitCode: "+QString::number(exitCode)+", exitStatus: "+QString::number(exitStatus));
- #ifndef ULTRACOPIER_PLUGIN_DEBUG
- Q_UNUSED(exitCode)
- Q_UNUSED(exitStatus)
- #endif
- if(!StandardError.isEmpty())
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"have finished with text on error output: "+StandardError);
- else if(errorFound)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"have finished with error and no text");
- {
- QStringList tempList=StandardOutput.split(QRegExp("[\n\r]+"));
- int index=0;
- while(index<tempList.size())
- {
- QString newString=tempList.at(index);
- newString=newString.remove(QRegExp("^.* on "));
- newString=newString.remove(QRegExp(" type .*$"));
- if(!newString.endsWith(QDir::separator()))
- newString+=QDir::separator();
- mountSysPoint<<newString;
- index++;
- }
- mountSysPoint.removeDuplicates();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"mountSysPoint: "+mountSysPoint.join(";"));
- }
-}
-
-void Factory::readyReadStandardError()
-{
- StandardError+=mount.readAllStandardError();
-}
-
-void Factory::readyReadStandardOutput()
-{
- StandardOutput+=mount.readAllStandardOutput();
-}
-
-void Factory::resetOptions()
-{
-}
-
-QWidget * Factory::options()
-{
- ui->autoStart->setChecked(optionsEngine->getOptionValue("autoStart").toBool());
- return tempWidget;
-}
-
-void Factory::setDoRightTransfer(bool doRightTransfer)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("doRightTransfer",doRightTransfer);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::setKeepDate(bool keepDate)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("keepDate",keepDate);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::setBlockSize(int blockSize)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("blockSize",blockSize);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::setAutoStart(bool autoStart)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("autoStart",autoStart);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::setRsync(bool rsync)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("rsync",rsync);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::newLanguageLoaded()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, retranslate the widget options");
- ui->retranslateUi(tempWidget);
- if(optionsEngine!=NULL)
- {
- filters->newLanguageLoaded();
- renamingRules->newLanguageLoaded();
- }
- emit reloadLanguage();
-}
-
-Q_EXPORT_PLUGIN2(copyEngine, Factory);
-
-void Factory::doChecksum_toggled(bool doChecksum)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("doChecksum",doChecksum);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::checksumOnlyOnError_toggled(bool checksumOnlyOnError)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("checksumOnlyOnError",checksumOnlyOnError);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::osBuffer_toggled(bool osBuffer)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("osBuffer",osBuffer);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
- ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked());
-}
-
-void Factory::osBufferLimited_toggled(bool osBufferLimited)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("osBufferLimited",osBufferLimited);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
- ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked());
-}
-
-void Factory::osBufferLimit_editingFinished()
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the spinbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("osBufferLimit",ui->osBufferLimit->value());
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::showFilterDialog()
-{
- if(optionsEngine==NULL)
- {
- QMessageBox::critical(NULL,tr("Options error"),tr("Options engine is not loaded, can't access to the filters"));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"options not loaded");
- return;
- }
- filters->exec();
-}
-
-void Factory::sendNewFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"new filter");
- if(optionsEngine!=NULL)
- {
- optionsEngine->setOptionValue("includeStrings",includeStrings);
- optionsEngine->setOptionValue("includeOptions",includeOptions);
- optionsEngine->setOptionValue("excludeStrings",excludeStrings);
- optionsEngine->setOptionValue("excludeOptions",excludeOptions);
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"new filter");
- if(optionsEngine!=NULL)
- {
- optionsEngine->setOptionValue("firstRenamingRule",firstRenamingRule);
- optionsEngine->setOptionValue("otherRenamingRule",otherRenamingRule);
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
-
-void Factory::showRenamingRules()
-{
- if(optionsEngine==NULL)
- {
- QMessageBox::critical(NULL,tr("Options error"),tr("Options engine is not loaded, can't access to the filters"));
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"options not loaded");
- return;
- }
- renamingRules->exec();
-}
-
-void Factory::checksumIgnoreIfImpossible_toggled(bool checksumIgnoreIfImpossible)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed");
- if(optionsEngine!=NULL)
- optionsEngine->setOptionValue("checksumIgnoreIfImpossible",checksumIgnoreIfImpossible);
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented");
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/factory.h b/plugins-alternative/CopyEngine/Rsync/factory.h
deleted file mode 100644
index 40c6d53..0000000
--- a/plugins-alternative/CopyEngine/Rsync/factory.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/** \file factory.h
-\brief Define the factory to create new instance
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QObject>
-#include <QList>
-#include <QStringList>
-#include <QFileInfo>
-#include <QProcess>
-
-#include "../../../interface/PluginInterface_CopyEngine.h"
-#include "StructEnumDefinition.h"
-#include "ui_options.h"
-#include "copyEngine.h"
-#include "Environment.h"
-#include "Filters.h"
-#include "RenamingRules.h"
-
-#ifndef FACTORY_H
-#define FACTORY_H
-
-namespace Ui {
- class options;
-}
-
-/** \brief to generate copy engine instance */
-class Factory : public PluginInterface_CopyEngineFactory
-{
- Q_OBJECT
- Q_INTERFACES(PluginInterface_CopyEngineFactory)
-public:
- Factory();
- ~Factory();
- /// \brief to return the instance of the copy engine
- PluginInterface_CopyEngine * getInstance();
- /// \brief set the resources, to store options, to have facilityInterface
- void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion);
- //get mode allowed
- /// \brief define if can copy file, folder or both
- CopyType getCopyType();
- /// \brief to return which kind of transfer list operation is supported
- TransferListOperation getTransferListOperation();
- /// \brief define if can only copy, or copy and move
- bool canDoOnlyCopy();
- /// \brief to get the supported protocols for the source
- QStringList supportedProtocolsForTheSource();
- /// \brief to get the supported protocols for the destination
- QStringList supportedProtocolsForTheDestination();
- /// \brief to get the options of the copy engine
- QWidget * options();
-private:
- Ui::options *ui;
- QWidget* tempWidget;
- OptionInterface * optionsEngine;
- QStringList mountSysPoint;
- QProcess mount;
- QString StandardError;
- QString StandardOutput;
- bool errorFound;
- FacilityInterface * facilityEngine;
- Filters *filters;
- RenamingRules *renamingRules;
-private slots:
- void error(QProcess::ProcessError error);
- void finished(int exitCode, QProcess::ExitStatus exitStatus);
- void readyReadStandardError();
- void readyReadStandardOutput();
- void setDoRightTransfer(bool doRightTransfer);
- void setKeepDate(bool keepDate);
- void setBlockSize(int blockSize);
- void setAutoStart(bool autoStart);
- void setRsync(bool rsync);
- void showFilterDialog();
- void sendNewFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions);
- void doChecksum_toggled(bool);
- void checksumOnlyOnError_toggled(bool);
- void osBuffer_toggled(bool);
- void osBufferLimited_toggled(bool);
- void osBufferLimit_editingFinished();
- void checksumIgnoreIfImpossible_toggled(bool);
- void sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
- void showRenamingRules();
-public slots:
- void resetOptions();
- void newLanguageLoaded();
-signals:
- void reloadLanguage();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
-};
-
-#endif // FACTORY_H
diff --git a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp b/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp
deleted file mode 100644
index 0d9fa9a..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-#include "fileErrorDialog.h"
-#include "ui_fileErrorDialog.h"
-
-fileErrorDialog::fileErrorDialog(QWidget *parent,QFileInfo fileInfo,QString errorString,bool havePutAtTheEndButton) :
- QDialog(parent),
- ui(new Ui::fileErrorDialog)
-{
- ui->setupUi(this);
- action=FileError_Cancel;
- ui->label_error->setText(errorString);
- ui->label_content_file_name->setText(fileInfo.fileName());
- if(fileInfo.exists())
- {
- ui->label_content_size->setText(QString::number(fileInfo.size()));
- QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1));
- if(maxTime<fileInfo.lastModified())
- {
- ui->label_modified->setVisible(true);
- ui->label_content_modified->setVisible(true);
- ui->label_content_modified->setText(fileInfo.lastModified().toString());
- }
- else
- {
- ui->label_modified->setVisible(false);
- ui->label_content_modified->setVisible(false);
- }
- if(fileInfo.isDir())
- {
- this->setWindowTitle(tr("Error on folder"));
- ui->label_size->hide();
- ui->label_content_size->hide();
- ui->label_file_name->setText(tr("Folder name"));
- }
- }
- else
- {
- ui->label_size->hide();
- ui->label_content_size->hide();
- ui->label_modified->hide();
- ui->label_content_modified->hide();
- }
- if(!havePutAtTheEndButton)
- ui->PutToBottom->hide();
-}
-
-fileErrorDialog::~fileErrorDialog()
-{
- delete ui;
-}
-
-void fileErrorDialog::changeEvent(QEvent *e)
-{
- QWidget::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-void fileErrorDialog::on_PutToBottom_clicked()
-{
- action=FileError_PutToEndOfTheList;
- this->close();
-}
-
-void fileErrorDialog::on_Retry_clicked()
-{
- action=FileError_Retry;
- this->close();
-}
-
-void fileErrorDialog::on_Skip_clicked()
-{
- action=FileError_Skip;
- this->close();
-}
-
-void fileErrorDialog::on_Cancel_clicked()
-{
- action=FileError_Cancel;
- this->close();
-}
-
-bool fileErrorDialog::getAlways()
-{
- return ui->checkBoxAlways->isChecked();
-}
-
-FileErrorAction fileErrorDialog::getAction()
-{
- return action;
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h b/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h
deleted file mode 100644
index b14fe87..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/** \file fileErrorDialog.h
-\brief Define the dialog error on the file
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QDialog>
-#include <QWidget>
-#include <QString>
-#include <QDateTime>
-#include <QFileInfo>
-#include "Environment.h"
-
-#ifndef FILEERRORDIALOG_H
-#define FILEERRORDIALOG_H
-
-namespace Ui {
- class fileErrorDialog;
-}
-
-/// \brief to show error dialog, and ask what do
-class fileErrorDialog : public QDialog
-{
- Q_OBJECT
-public:
- /// \brief create the object and pass all the informations to it
- explicit fileErrorDialog(QWidget *parent,QFileInfo fileInfo,QString errorString,bool havePutAtTheEndButton=true);
- ~fileErrorDialog();
- /// \brief return the the always checkbox is checked
- bool getAlways();
- /// \brief return the action clicked
- FileErrorAction getAction();
-protected:
- void changeEvent(QEvent *e);
-private slots:
- void on_PutToBottom_clicked();
- void on_Retry_clicked();
- void on_Skip_clicked();
- void on_Cancel_clicked();
-private:
- Ui::fileErrorDialog *ui;
- FileErrorAction action;
-};
-
-#endif // FILEERRORDIALOG_H
diff --git a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui b/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui
deleted file mode 100644
index c5027e7..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>fileErrorDialog</class>
- <widget class="QWidget" name="fileErrorDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>478</width>
- <height>154</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Error on file</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>Error</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLabel" name="label_error">
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout_2">
- <item row="0" column="0">
- <widget class="QLabel" name="label_size">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Size</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_content_size">
- <property name="text">
- <string notr="true">0 KiB</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_modified">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Modified</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLabel" name="label_content_modified">
- <property name="text">
- <string notr="true">Today</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_file_name">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>File name</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QLabel" name="label_content_file_name">
- <property name="text">
- <string notr="true">source.txt</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QCheckBox" name="checkBoxAlways">
- <property name="text">
- <string>&amp;Always do this action</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="PutToBottom">
- <property name="text">
- <string>Put to bottom</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Retry">
- <property name="text">
- <string>Retry</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Skip">
- <property name="text">
- <string>&amp;Skip</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Cancel">
- <property name="text">
- <string>&amp;Cancel</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>toggled(bool)</signal>
- <receiver>Cancel</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>112</x>
- <y>131</y>
- </hint>
- <hint type="destinationlabel">
- <x>438</x>
- <y>142</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>toggled(bool)</signal>
- <receiver>Retry</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>155</x>
- <y>131</y>
- </hint>
- <hint type="destinationlabel">
- <x>309</x>
- <y>134</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp b/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp
deleted file mode 100644
index 191dd79..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "fileExistsDialog.h"
-#include "ui_fileExistsDialog.h"
-
-#include <QDebug>
-
-fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule) :
- QDialog(parent),
- ui(new Ui::fileExistsDialog)
-{
- ui->setupUi(this);
- action=FileExists_Cancel;
- destinationInfo=destination;
- oldName=destination.fileName();
- ui->lineEditNewName->setText(oldName);
- ui->lineEditNewName->setPlaceholderText(oldName);
- ui->Overwrite->addAction(ui->actionOverwrite_if_newer);
- ui->Overwrite->addAction(ui->actionOverwrite_if_not_same_modification_date);
- ui->label_content_source_size->setText(QString::number(source.size()));
- ui->label_content_source_modified->setText(source.lastModified().toString());
- ui->label_content_source_file_name->setText(source.fileName());
- ui->label_content_destination_size->setText(QString::number(destination.size()));
- ui->label_content_destination_modified->setText(destination.lastModified().toString());
- ui->label_content_destination_file_name->setText(destination.fileName());
- QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1));
- if(maxTime<source.lastModified())
- {
- ui->label_source_modified->setVisible(true);
- ui->label_content_source_modified->setVisible(true);
- ui->label_content_source_modified->setText(source.lastModified().toString());
- }
- else
- {
- ui->label_source_modified->setVisible(false);
- ui->label_content_source_modified->setVisible(false);
- }
- if(maxTime<destination.lastModified())
- {
- ui->label_destination_modified->setVisible(true);
- ui->label_content_destination_modified->setVisible(true);
- ui->label_content_destination_modified->setText(destination.lastModified().toString());
- }
- else
- {
- ui->label_destination_modified->setVisible(false);
- ui->label_content_destination_modified->setVisible(false);
- }
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
-}
-
-fileExistsDialog::~fileExistsDialog()
-{
- delete ui;
-}
-
-void fileExistsDialog::changeEvent(QEvent *e)
-{
- QWidget::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-QString fileExistsDialog::getNewName()
-{
- if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked())
- qDebug() << "return the old name: "+oldName;
- else
- qDebug() << "return the new name: "+ui->lineEditNewName->text();
- if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked())
- return oldName;
- else
- return ui->lineEditNewName->text();
-}
-
-void fileExistsDialog::on_SuggestNewName_clicked()
-{
- QFileInfo destinationInfo=this->destinationInfo;
- QString absolutePath=destinationInfo.absolutePath();
- QString fileName=destinationInfo.fileName();
- QString suffix="";
- QString destination;
- QString newFileName;
- //resolv the suffix
- if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$")))
- {
- suffix=fileName;
- suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2");
- fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1");
- }
- //resolv the new name
- int num=1;
- do
- {
- if(num==1)
- {
- if(firstRenamingRule=="")
- newFileName=tr("%1 - copy").arg(fileName);
- else
- {
- newFileName=firstRenamingRule;
- newFileName.replace("%name%",fileName);
- }
- }
- else
- {
- if(otherRenamingRule=="")
- newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
- else
- {
- newFileName=otherRenamingRule;
- newFileName.replace("%name%",fileName);
- newFileName.replace("%number%",QString::number(num));
- }
- }
- destination=absolutePath+QDir::separator()+newFileName+suffix;
- destinationInfo.setFile(destination);
- num++;
- }
- while(destinationInfo.exists());
- ui->lineEditNewName->setText(newFileName+suffix);
-}
-
-void fileExistsDialog::on_Rename_clicked()
-{
- action=FileExists_Rename;
- this->close();
-}
-
-void fileExistsDialog::on_Overwrite_clicked()
-{
- action=FileExists_Overwrite;
- this->close();
-}
-
-void fileExistsDialog::on_Skip_clicked()
-{
- action=FileExists_Skip;
- this->close();
-}
-
-void fileExistsDialog::on_Cancel_clicked()
-{
- action=FileExists_Cancel;
- this->close();
-}
-
-void fileExistsDialog::on_actionOverwrite_if_newer_triggered()
-{
- action=FileExists_OverwriteIfNewer;
- this->close();
-}
-
-void fileExistsDialog::on_actionOverwrite_if_not_same_modification_date_triggered()
-{
- action=FileExists_OverwriteIfNotSameModificationDate;
- this->close();
-}
-
-FileExistsAction fileExistsDialog::getAction()
-{
- return action;
-}
-
-bool fileExistsDialog::getAlways()
-{
- return ui->checkBoxAlways->isChecked();
-}
-
-void fileExistsDialog::updateRenameButton()
-{
- ui->Rename->setEnabled(ui->checkBoxAlways->isChecked() || (oldName!=ui->lineEditNewName->text() && !ui->lineEditNewName->text().isEmpty()));
-}
-
-void fileExistsDialog::on_checkBoxAlways_toggled(bool checked)
-{
- Q_UNUSED(checked);
- updateRenameButton();
-}
-
-void fileExistsDialog::on_lineEditNewName_textChanged(const QString &arg1)
-{
- Q_UNUSED(arg1);
- updateRenameButton();
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h b/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h
deleted file mode 100644
index 75af190..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/** \file fileExistsDialog.h
-\brief Define the dialog when file already exists
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QDialog>
-#include <QWidget>
-#include <QString>
-#include <QDateTime>
-#include <QFileInfo>
-#include <QDir>
-#include "Environment.h"
-
-#ifndef FILEEXISTSDIALOG_H
-#define FILEEXISTSDIALOG_H
-
-namespace Ui {
- class fileExistsDialog;
-}
-
-/// \brief to show file exists dialog, and ask what do
-class fileExistsDialog : public QDialog
-{
- Q_OBJECT
-public:
- /// \brief create the object and pass all the informations to it
- explicit fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule);
- ~fileExistsDialog();
- /// \brief return the the always checkbox is checked
- bool getAlways();
- /// \brief return the action clicked
- FileExistsAction getAction();
- /// \brief return the new rename is case in manual renaming
- QString getNewName();
-protected:
- void changeEvent(QEvent *e);
-private slots:
- void on_SuggestNewName_clicked();
- void on_Rename_clicked();
- void on_Overwrite_clicked();
- void on_Skip_clicked();
- void on_Cancel_clicked();
- void on_actionOverwrite_if_newer_triggered();
- void on_actionOverwrite_if_not_same_modification_date_triggered();
- void updateRenameButton();
- void on_checkBoxAlways_toggled(bool checked);
- void on_lineEditNewName_textChanged(const QString &arg1);
-private:
- Ui::fileExistsDialog *ui;
- FileExistsAction action;
- QString oldName;
- QFileInfo destinationInfo;
- QString firstRenamingRule;
- QString otherRenamingRule;
-};
-
-#endif // FILEEXISTSDIALOG_H
diff --git a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui b/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui
deleted file mode 100644
index a37945a..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui
+++ /dev/null
@@ -1,367 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>fileExistsDialog</class>
- <widget class="QWidget" name="fileExistsDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>469</width>
- <height>150</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>The file exists</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Source</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_2">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Destination</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout_2">
- <item row="0" column="0">
- <widget class="QLabel" name="label_source_size">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Size</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_content_source_size">
- <property name="text">
- <string notr="true">0 KiB</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_source_modified">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Modified</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLabel" name="label_content_source_modified">
- <property name="text">
- <string notr="true">Today</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_source_file_name">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>File name</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QLabel" name="label_content_source_file_name">
- <property name="text">
- <string notr="true">source.txt</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_4">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::ExpandingFieldsGrow</enum>
- </property>
- <item row="0" column="0">
- <widget class="QLabel" name="label_destination_size">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Size</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_content_destination_size">
- <property name="text">
- <string notr="true">0 KiB</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_destination_modified">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Modified</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLabel" name="label_content_destination_modified">
- <property name="text">
- <string notr="true">Today</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_destination_file_name">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>File name</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QLabel" name="label_content_destination_file_name">
- <property name="text">
- <string notr="true">destination.txt</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QLineEdit" name="lineEditNewName">
- <property name="text">
- <string notr="true"/>
- </property>
- <property name="placeholderText">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="SuggestNewName">
- <property name="text">
- <string>Suggest new &amp;name</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QCheckBox" name="checkBoxAlways">
- <property name="text">
- <string>&amp;Always do this action</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="Rename">
- <property name="text">
- <string>&amp;Rename</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="Overwrite">
- <property name="text">
- <string>&amp;Overwrite</string>
- </property>
- <property name="popupMode">
- <enum>QToolButton::MenuButtonPopup</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Skip">
- <property name="text">
- <string>&amp;Skip</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Cancel">
- <property name="text">
- <string>&amp;Cancel</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- <action name="actionOverwrite_if_newer">
- <property name="text">
- <string>Overwrite if newer</string>
- </property>
- </action>
- <action name="actionOverwrite_if_not_same_modification_date">
- <property name="text">
- <string>Overwrite if not same modification date</string>
- </property>
- </action>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>toggled(bool)</signal>
- <receiver>Cancel</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>115</x>
- <y>130</y>
- </hint>
- <hint type="destinationlabel">
- <x>440</x>
- <y>129</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>toggled(bool)</signal>
- <receiver>lineEditNewName</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>62</x>
- <y>129</y>
- </hint>
- <hint type="destinationlabel">
- <x>108</x>
- <y>93</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>toggled(bool)</signal>
- <receiver>SuggestNewName</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>144</x>
- <y>138</y>
- </hint>
- <hint type="destinationlabel">
- <x>326</x>
- <y>98</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp b/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp
deleted file mode 100644
index f45b2ea..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "fileIsSameDialog.h"
-#include "ui_fileIsSameDialog.h"
-
-#include <QDebug>
-
-fileIsSameDialog::fileIsSameDialog(QWidget *parent,QFileInfo fileInfo,QString firstRenamingRule,QString otherRenamingRule) :
- QDialog(parent),
- ui(new Ui::fileIsSameDialog)
-{
- ui->setupUi(this);
- action=FileExists_Cancel;
- oldName=fileInfo.fileName();
- destinationInfo=fileInfo;
- ui->lineEditNewName->setText(oldName);
- ui->lineEditNewName->setPlaceholderText(oldName);
- ui->label_content_size->setText(QString::number(fileInfo.size()));
- ui->label_content_modified->setText(fileInfo.lastModified().toString());
- ui->label_content_file_name->setText(fileInfo.fileName());
- updateRenameButton();
- QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1));
- if(maxTime<fileInfo.lastModified())
- {
- ui->label_modified->setVisible(true);
- ui->label_content_modified->setVisible(true);
- ui->label_content_modified->setText(fileInfo.lastModified().toString());
- }
- else
- {
- ui->label_modified->setVisible(false);
- ui->label_content_modified->setVisible(false);
- }
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
-}
-
-fileIsSameDialog::~fileIsSameDialog()
-{
- delete ui;
-}
-
-void fileIsSameDialog::changeEvent(QEvent *e)
-{
- QWidget::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-QString fileIsSameDialog::getNewName()
-{
- if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked())
- qDebug() << "fileIsSameDialog, return the old name: "+oldName;
- else
- qDebug() << "fileIsSameDialog, return the new name: "+ui->lineEditNewName->text();
- if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked())
- return oldName;
- else
- return ui->lineEditNewName->text();
-}
-
-void fileIsSameDialog::on_SuggestNewName_clicked()
-{
- QFileInfo destinationInfo=this->destinationInfo;
- QString absolutePath=destinationInfo.absolutePath();
- QString fileName=destinationInfo.fileName();
- QString suffix="";
- QString destination;
- QString newFileName;
- //resolv the suffix
- if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$")))
- {
- suffix=fileName;
- suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2");
- fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1");
- }
- //resolv the new name
- int num=1;
- do
- {
- if(num==1)
- {
- if(firstRenamingRule=="")
- newFileName=tr("%1 - copy").arg(fileName);
- else
- {
- newFileName=firstRenamingRule;
- newFileName.replace("%name%",fileName);
- }
- }
- else
- {
- if(otherRenamingRule=="")
- newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
- else
- {
- newFileName=otherRenamingRule;
- newFileName.replace("%name%",fileName);
- newFileName.replace("%number%",QString::number(num));
- }
- }
- destination=absolutePath+QDir::separator()+newFileName+suffix;
- destinationInfo.setFile(destination);
- num++;
- }
- while(destinationInfo.exists());
- ui->lineEditNewName->setText(newFileName+suffix);
-}
-
-void fileIsSameDialog::on_Rename_clicked()
-{
- action=FileExists_Rename;
- this->close();
-}
-
-void fileIsSameDialog::on_Skip_clicked()
-{
- action=FileExists_Skip;
- this->close();
-}
-
-void fileIsSameDialog::on_Cancel_clicked()
-{
- action=FileExists_Cancel;
- this->close();
-}
-
-FileExistsAction fileIsSameDialog::getAction()
-{
- return action;
-}
-
-bool fileIsSameDialog::getAlways()
-{
- return ui->checkBoxAlways->isChecked();
-}
-
-void fileIsSameDialog::updateRenameButton()
-{
- ui->Rename->setEnabled(ui->checkBoxAlways->isChecked() || (oldName!=ui->lineEditNewName->text() && !ui->lineEditNewName->text().isEmpty()));
-}
-
-void fileIsSameDialog::on_lineEditNewName_textChanged(const QString &arg1)
-{
- Q_UNUSED(arg1);
- updateRenameButton();
-}
-
-void fileIsSameDialog::on_checkBoxAlways_toggled(bool checked)
-{
- Q_UNUSED(checked);
- updateRenameButton();
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h b/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h
deleted file mode 100644
index fa48755..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/** \file fileIsSameDialog.h
-\brief Define the dialog when file is same
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QDialog>
-#include <QWidget>
-#include <QString>
-#include <QDateTime>
-#include <QFileInfo>
-#include <QDir>
-#include "Environment.h"
-
-#ifndef FILEISSAMEDIALOG_H
-#define FILEISSAMEDIALOG_H
-
-namespace Ui {
- class fileIsSameDialog;
-}
-
-/// \brief to show file is same dialog, and ask what do
-class fileIsSameDialog : public QDialog
-{
- Q_OBJECT
-public:
- /// \brief create the object and pass all the informations to it
- explicit fileIsSameDialog(QWidget *parent,QFileInfo fileInfo,QString firstRenamingRule,QString otherRenamingRule);
- ~fileIsSameDialog();
- /// \brief return the the always checkbox is checked
- bool getAlways();
- /// \brief return the action clicked
- FileExistsAction getAction();
- /// \brief return the new rename is case in manual renaming
- QString getNewName();
-protected:
- void changeEvent(QEvent *e);
-private slots:
- void on_SuggestNewName_clicked();
- void on_Rename_clicked();
- void on_Skip_clicked();
- void on_Cancel_clicked();
- void updateRenameButton();
- void on_lineEditNewName_textChanged(const QString &arg1);
- void on_checkBoxAlways_toggled(bool checked);
-private:
- Ui::fileIsSameDialog *ui;
- FileExistsAction action;
- QString oldName;
- QFileInfo destinationInfo;
- QString firstRenamingRule;
- QString otherRenamingRule;
-
-};
-
-#endif // FILEISSAMEDIALOG_H
diff --git a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui b/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui
deleted file mode 100644
index 673ba26..0000000
--- a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui
+++ /dev/null
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>fileIsSameDialog</class>
- <widget class="QWidget" name="fileIsSameDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>378</width>
- <height>148</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>This files are the same file</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>The source and destination is same</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout_2">
- <item row="0" column="0">
- <widget class="QLabel" name="label_size">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Size</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_content_size">
- <property name="text">
- <string notr="true">0 KiB</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_modified">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Modified</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLabel" name="label_content_modified">
- <property name="text">
- <string notr="true">Today</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_file_name">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>File name</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QLabel" name="label_content_file_name">
- <property name="text">
- <string notr="true">source.txt</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QLineEdit" name="lineEditNewName">
- <property name="text">
- <string notr="true"/>
- </property>
- <property name="placeholderText">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="SuggestNewName">
- <property name="text">
- <string>Suggest new &amp;name</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QCheckBox" name="checkBoxAlways">
- <property name="text">
- <string>&amp;Always do this action</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="Rename">
- <property name="text">
- <string>&amp;Rename</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Skip">
- <property name="text">
- <string>&amp;Skip</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Cancel">
- <property name="text">
- <string>&amp;Cancel</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp b/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp
deleted file mode 100644
index d951b90..0000000
--- a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "folderExistsDialog.h"
-#include "ui_folderExistsDialog.h"
-
-#include <QMessageBox>
-
-folderExistsDialog::folderExistsDialog(QWidget *parent,QFileInfo source,bool isSame,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule) :
- QDialog(parent),
- ui(new Ui::folderExistsDialog)
-{
- ui->setupUi(this);
- action=FolderExists_Cancel;
- oldName=source.fileName();
- this->destinationInfo=destinationInfo;
- ui->lineEditNewName->setText(oldName);
- ui->lineEditNewName->setPlaceholderText(oldName);
- ui->label_content_source_modified->setText(source.lastModified().toString());
- ui->label_content_source_folder_name->setText(source.fileName());
- if(isSame)
- {
- ui->label_source->hide();
- ui->label_destination->hide();
- ui->label_destination_modified->hide();
- ui->label_destination_folder_name->hide();
- ui->label_content_destination_modified->hide();
- ui->label_content_destination_folder_name->hide();
- }
- else
- {
- this->setWindowTitle(tr("Folder already exists"));
- ui->label_message->hide();
- ui->label_content_destination_modified->setText(destination.lastModified().toString());
- ui->label_content_destination_folder_name->setText(destination.fileName());
- }
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
-}
-
-folderExistsDialog::~folderExistsDialog()
-{
- delete ui;
-}
-
-void folderExistsDialog::changeEvent(QEvent *e)
-{
- QDialog::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-QString folderExistsDialog::getNewName()
-{
- if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked())
- return "";
- else
- return ui->lineEditNewName->text();
-}
-
-void folderExistsDialog::on_SuggestNewName_clicked()
-{
- QFileInfo destinationInfo=this->destinationInfo;
- QString absolutePath=destinationInfo.absolutePath();
- QString fileName=destinationInfo.fileName();
- QString suffix="";
- QString destination;
- QString newFileName;
- //resolv the suffix
- if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$")))
- {
- suffix=fileName;
- suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2");
- fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1");
- }
- //resolv the new name
- int num=1;
- do
- {
- if(num==1)
- {
- if(firstRenamingRule=="")
- newFileName=tr("%1 - copy").arg(fileName);
- else
- {
- newFileName=firstRenamingRule;
- newFileName.replace("%name%",fileName);
- }
- }
- else
- {
- if(otherRenamingRule=="")
- newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
- else
- {
- newFileName=otherRenamingRule;
- newFileName.replace("%name%",fileName);
- newFileName.replace("%number%",QString::number(num));
- }
- }
- destination=absolutePath+QDir::separator()+newFileName+suffix;
- destinationInfo.setFile(destination);
- num++;
- }
- while(destinationInfo.exists());
- ui->lineEditNewName->setText(newFileName+suffix);
-}
-
-void folderExistsDialog::on_Rename_clicked()
-{
- action=FolderExists_Rename;
- this->close();
-}
-
-void folderExistsDialog::on_Skip_clicked()
-{
- action=FolderExists_Skip;
- this->close();
-}
-
-void folderExistsDialog::on_Cancel_clicked()
-{
- action=FolderExists_Cancel;
- this->close();
-}
-
-FolderExistsAction folderExistsDialog::getAction()
-{
- return action;
-}
-
-bool folderExistsDialog::getAlways()
-{
- return ui->checkBoxAlways->isChecked();
-}
-
-void folderExistsDialog::on_Merge_clicked()
-{
- action=FolderExists_Merge;
- this->close();
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h b/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h
deleted file mode 100644
index 6d612f1..0000000
--- a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/** \file folderExistsDialog.h
-\brief Define the dialog when file exists
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#ifndef FOLDERISSAMEDIALOG_H
-#define FOLDERISSAMEDIALOG_H
-
-#include <QDialog>
-#include <QFileInfo>
-#include <QString>
-#include <QDateTime>
-#include <QDir>
-
-#include "Environment.h"
-
-namespace Ui {
- class folderExistsDialog;
-}
-
-/// \brief to show file exists dialog, and ask what do
-class folderExistsDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- /// \brief create the object and pass all the informations to it
- explicit folderExistsDialog(QWidget *parent,QFileInfo source,bool isSame,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule);
- ~folderExistsDialog();
- /// \brief return the the always checkbox is checked
- bool getAlways();
- /// \brief return the action clicked
- FolderExistsAction getAction();
- /// \brief return the new rename is case in manual renaming
- QString getNewName();
-protected:
- void changeEvent(QEvent *e);
-private slots:
- void on_SuggestNewName_clicked();
- void on_Rename_clicked();
- void on_Skip_clicked();
- void on_Cancel_clicked();
- void on_Merge_clicked();
-private:
- Ui::folderExistsDialog *ui;
- FolderExistsAction action;
- QString oldName;
- QString firstRenamingRule;
- QString otherRenamingRule;
- QFileInfo destinationInfo;
-};
-
-#endif // FOLDERISSAMEDIALOG_H
diff --git a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui b/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui
deleted file mode 100644
index c4c4d5e..0000000
--- a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui
+++ /dev/null
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>folderExistsDialog</class>
- <widget class="QDialog" name="folderExistsDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>443</width>
- <height>146</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>This folders are the same folder</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label_source">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Source</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_destination">
- <property name="font">
- <font>
- <weight>75</weight>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Destination</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QLabel" name="label_message">
- <property name="text">
- <string>The source and destination is same</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label_source_modified">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Modified</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_content_source_modified">
- <property name="text">
- <string notr="true">Today</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_source_folder_name">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Folder name</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLabel" name="label_content_source_folder_name">
- <property name="text">
- <string notr="true">folder</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout_2">
- <item row="0" column="0">
- <widget class="QLabel" name="label_destination_modified">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Modified</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_destination_folder_name">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Folder name</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="label_content_destination_modified">
- <property name="text">
- <string notr="true">Today</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLabel" name="label_content_destination_folder_name">
- <property name="text">
- <string notr="true">folder</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QLineEdit" name="lineEditNewName">
- <property name="text">
- <string notr="true"/>
- </property>
- <property name="placeholderText">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="SuggestNewName">
- <property name="text">
- <string>Suggest new &amp;name</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QCheckBox" name="checkBoxAlways">
- <property name="text">
- <string>&amp;Always do this action</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Rename">
- <property name="text">
- <string>&amp;Rename</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Merge">
- <property name="text">
- <string>Merge</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Skip">
- <property name="text">
- <string>Skip</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="Cancel">
- <property name="text">
- <string>&amp;Cancel</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>clicked(bool)</signal>
- <receiver>lineEditNewName</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>132</x>
- <y>126</y>
- </hint>
- <hint type="destinationlabel">
- <x>135</x>
- <y>101</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>checkBoxAlways</sender>
- <signal>clicked(bool)</signal>
- <receiver>SuggestNewName</receiver>
- <slot>setDisabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>113</x>
- <y>129</y>
- </hint>
- <hint type="destinationlabel">
- <x>304</x>
- <y>100</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/informations.xml b/plugins-alternative/CopyEngine/Rsync/informations.xml
deleted file mode 100644
index 709df28..0000000
--- a/plugins-alternative/CopyEngine/Rsync/informations.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package>
- <title xml:lang="en"><![CDATA[Rsync copy engine]]></title><!-- english is required -->
- <title xml:lang="fr"><![CDATA[Moteur de copie rsync]]></title>
- <!-- What kind of plugin this is -->
- <category>CopyEngine</category>
- <!-- Who wrote this plugin -->
- <author><![CDATA[BRULE Herman, alpha_one_x86 (alpha_one_x86@first-world.info)]]></author>
- <!-- URL of page or site for this plugin (may provide additional information, bug reports, feature requests). -->
- <website xml:lang="en"><![CDATA[http://ultracopier.first-world.info/]]></website><!-- not required -->
- <website xml:lang="fr"><![CDATA[http://ultracopier-fr.first-world.info/]]></website><!-- not required -->
- <!-- the date-time format should be in timestamps format -->
- <pubDate>1287496800</pubDate>
- <!-- the architecture code of this plugin, found PlatformMacro.h into ultracopier source -->
- <architecture>windows-x86</architecture>
- <!-- Detailed description -->
- <description xml:lang="en"><![CDATA[Rsync copy engine, variant of the official copy engine to provide simple way to do backups]]></description>
- <description xml:lang="fr"><![CDATA[Moteur de copie rsync, variante du moteur de copie officiel pour fournir une maniƩre simple de faire des backups]]></description>
- <!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number -->
- <version>0.3.1.0</version>
- <!-- This internal name should never change, because it is used to detect when a particular plugin is updated. It must comprise only lower case ASCII characters (a-z), numerical digits (0-9), "-", "." or "_", and it must be be unique within the category. And have size lower than 64 char. -->
- <name>Rsync</name>
- <!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. -->
- <dependencies><![CDATA[
- >=ultracopier-0.3.1.0
- ]]></dependencies>
-</package> \ No newline at end of file
diff --git a/plugins-alternative/CopyEngine/Rsync/options.ui b/plugins-alternative/CopyEngine/Rsync/options.ui
deleted file mode 100644
index 78ac0b2..0000000
--- a/plugins-alternative/CopyEngine/Rsync/options.ui
+++ /dev/null
@@ -1,328 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>options</class>
- <widget class="QWidget" name="options">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>354</width>
- <height>399</height>
- </rect>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <property name="margin">
- <number>2</number>
- </property>
- <property name="spacing">
- <number>2</number>
- </property>
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Transfer the file rights</string>
- </property>
- </widget>
- </item>
- <item row="0" column="2">
- <widget class="QCheckBox" name="doRightTransfer"/>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Keep the file date</string>
- </property>
- </widget>
- </item>
- <item row="1" column="2">
- <widget class="QCheckBox" name="keepDate"/>
- </item>
- <item row="2" column="2">
- <widget class="QSpinBox" name="blockSize">
- <property name="suffix">
- <string>KB</string>
- </property>
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>64000</number>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="2">
- <widget class="QLabel" name="label_5">
- <property name="text">
- <string>Auto start the transfer</string>
- </property>
- </widget>
- </item>
- <item row="3" column="2">
- <widget class="QCheckBox" name="autoStart"/>
- </item>
- <item row="4" column="0">
- <widget class="QLabel" name="label_6">
- <property name="text">
- <string>When folder error</string>
- </property>
- </widget>
- </item>
- <item row="4" column="2">
- <widget class="QComboBox" name="comboBoxFolderError">
- <item>
- <property name="text">
- <string>Ask</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Skip</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="5" column="0">
- <widget class="QLabel" name="label_7">
- <property name="text">
- <string>When folder collision</string>
- </property>
- </widget>
- </item>
- <item row="5" column="2">
- <widget class="QComboBox" name="comboBoxFolderColision">
- <item>
- <property name="text">
- <string>Ask</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Merge</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Skip</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Rename</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="6" column="0" colspan="2">
- <widget class="QLabel" name="label_8">
- <property name="text">
- <string>Check if destination folder exists</string>
- </property>
- </widget>
- </item>
- <item row="6" column="2">
- <widget class="QCheckBox" name="checkBoxDestinationFolderExists"/>
- </item>
- <item row="8" column="0" colspan="3">
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>Checksum</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="1" column="1">
- <widget class="QCheckBox" name="checksumOnlyOnError">
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_9">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Only after error</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_10">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Ignore if impossible</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QCheckBox" name="checksumIgnoreIfImpossible">
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QCheckBox" name="doChecksum"/>
- </item>
- <item row="0" column="0">
- <widget class="QLabel" name="label_11">
- <property name="text">
- <string>Do checksum</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="9" column="1">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Enable OS buffer</string>
- </property>
- </widget>
- </item>
- <item row="9" column="2">
- <widget class="QCheckBox" name="osBuffer"/>
- </item>
- <item row="10" column="0" colspan="2">
- <widget class="QCheckBox" name="osBufferLimited">
- <property name="text">
- <string>OS buffer only if smaller than</string>
- </property>
- </widget>
- </item>
- <item row="10" column="2">
- <widget class="QSpinBox" name="osBufferLimit">
- <property name="suffix">
- <string>KB</string>
- </property>
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>2048</number>
- </property>
- <property name="value">
- <number>512</number>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>Block size</string>
- </property>
- </widget>
- </item>
- <item row="13" column="1">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="12" column="1">
- <widget class="QPushButton" name="filters">
- <property name="text">
- <string>Filters</string>
- </property>
- </widget>
- </item>
- <item row="11" column="1">
- <widget class="QPushButton" name="renamingRules">
- <property name="text">
- <string>Renaming rules</string>
- </property>
- </widget>
- </item>
- <item row="7" column="2">
- <widget class="QCheckBox" name="rsync">
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="7" column="0" colspan="2">
- <widget class="QLabel" name="label_rsync">
- <property name="text">
- <string>Rsync (only in copy mode)</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>doChecksum</sender>
- <signal>clicked(bool)</signal>
- <receiver>label_9</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>187</x>
- <y>212</y>
- </hint>
- <hint type="destinationlabel">
- <x>100</x>
- <y>223</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>doChecksum</sender>
- <signal>clicked(bool)</signal>
- <receiver>checksumOnlyOnError</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>198</x>
- <y>212</y>
- </hint>
- <hint type="destinationlabel">
- <x>190</x>
- <y>226</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>doChecksum</sender>
- <signal>clicked(bool)</signal>
- <receiver>label_10</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>245</x>
- <y>210</y>
- </hint>
- <hint type="destinationlabel">
- <x>123</x>
- <y>251</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>doChecksum</sender>
- <signal>clicked(bool)</signal>
- <receiver>checksumIgnoreIfImpossible</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>269</x>
- <y>209</y>
- </hint>
- <hint type="destinationlabel">
- <x>213</x>
- <y>247</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/plugins-alternative/CopyEngine/Rsync/resources.qrc b/plugins-alternative/CopyEngine/Rsync/resources.qrc
deleted file mode 100644
index c6ca4ef..0000000
--- a/plugins-alternative/CopyEngine/Rsync/resources.qrc
+++ /dev/null
@@ -1,8 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>resources/add.png</file>
- <file>resources/edit.png</file>
- <file>resources/remove.png</file>
- <file>resources/filter.png</file>
- </qresource>
-</RCC>
diff --git a/plugins-alternative/CopyEngine/Rsync/resources/add.png b/plugins-alternative/CopyEngine/Rsync/resources/add.png
deleted file mode 100644
index 1e03be9..0000000
--- a/plugins-alternative/CopyEngine/Rsync/resources/add.png
+++ /dev/null
Binary files differ
diff --git a/plugins-alternative/CopyEngine/Rsync/resources/edit.png b/plugins-alternative/CopyEngine/Rsync/resources/edit.png
deleted file mode 100644
index 8072aea..0000000
--- a/plugins-alternative/CopyEngine/Rsync/resources/edit.png
+++ /dev/null
Binary files differ
diff --git a/plugins-alternative/CopyEngine/Rsync/resources/filter.png b/plugins-alternative/CopyEngine/Rsync/resources/filter.png
deleted file mode 100644
index 9cabc5a..0000000
--- a/plugins-alternative/CopyEngine/Rsync/resources/filter.png
+++ /dev/null
Binary files differ
diff --git a/plugins-alternative/CopyEngine/Rsync/resources/remove.png b/plugins-alternative/CopyEngine/Rsync/resources/remove.png
deleted file mode 100644
index 5b4c488..0000000
--- a/plugins-alternative/CopyEngine/Rsync/resources/remove.png
+++ /dev/null
Binary files differ
diff --git a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp b/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp
deleted file mode 100644
index 197b8c7..0000000
--- a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp
+++ /dev/null
@@ -1,511 +0,0 @@
-#include "scanFileOrFolder.h"
-
-#include <QDateTime>
-
-scanFileOrFolder::scanFileOrFolder(CopyMode mode)
-{
- rsync=false;
- stopped = true;
- stopIt = false;
- this->mode=mode;
- setObjectName("ScanFileOrFolder");
- folder_isolation=QRegExp("^(.*/)?([^/]+)/$");
-}
-
-scanFileOrFolder::~scanFileOrFolder()
-{
- stop();
- quit();
- wait();
-}
-
-bool scanFileOrFolder::isFinished()
-{
- return stopped;
-}
-
-void scanFileOrFolder::addToList(const QStringList& sources,const QString& destination)
-{
- stopIt=false;
- this->sources=parseWildcardSources(sources);
- this->destination=destination;
- if(sources.size()>1 || QFileInfo(destination).isDir())
- /* Disabled because the separator transformation product bug
- * if(!destination.endsWith(QDir::separator()))
- this->destination+=QDir::separator();*/
- if(!destination.endsWith("/") && !destination.endsWith("\\"))
- this->destination+="/";//put unix separator because it's transformed into that's under windows too
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"addToList("+sources.join(";")+","+destination+")");
-}
-
-
-QStringList scanFileOrFolder::parseWildcardSources(const QStringList &sources)
-{
- QRegExp splitFolder("[/\\\\]");
- QStringList returnList;
- int index=0;
- while(index<sources.size())
- {
- if(sources.at(index).contains("*"))
- {
- QStringList toParse=sources.at(index).split(splitFolder);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("before wildcard parse: %1, toParse: %2, is valid: %3").arg(sources.at(index)).arg(toParse.join(", ")).arg(splitFolder.isValid()));
- QList<QStringList> recomposedSource;
- recomposedSource << (QStringList() << "");
- while(toParse.size()>0)
- {
- if(toParse.first().contains('*'))
- {
- QString toParseFirst=toParse.first();
- if(toParseFirst=="")
- toParseFirst+="/";
- QList<QStringList> newRecomposedSource;
- QRegExp toResolv=QRegExp(toParseFirst.replace('*',"[^/\\\\]*"));
- int index_recomposedSource=0;
- while(index_recomposedSource<recomposedSource.size())//parse each url part
- {
- QFileInfo info(recomposedSource.at(index_recomposedSource).join("/"));
- if(info.isDir())
- {
- QDir folder(info.absoluteFilePath());
- QFileInfoList fileFile=folder.entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System);//QStringList() << toResolv
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("list the folder: %1, with the wildcard: %2").arg(info.absoluteFilePath()).arg(toResolv.pattern()));
- int index_fileList=0;
- while(index_fileList<fileFile.size())
- {
- if(fileFile.at(index_fileList).fileName().contains(toResolv))
- {
- QStringList tempList=recomposedSource.at(index_recomposedSource);
- tempList << fileFile.at(index_fileList).fileName();
- newRecomposedSource << tempList;
- }
- index_fileList++;
- }
- }
- index_recomposedSource++;
- }
- recomposedSource=newRecomposedSource;
- }
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("add toParse: %1").arg(toParse.join("/")));
- int index_recomposedSource=0;
- while(index_recomposedSource<recomposedSource.size())
- {
- recomposedSource[index_recomposedSource] << toParse.first();
- if(!QFileInfo(recomposedSource.at(index_recomposedSource).join("/")).exists())
- recomposedSource.removeAt(index_recomposedSource);
- else
- index_recomposedSource++;
- }
- }
- toParse.removeFirst();
- }
- int index_recomposedSource=0;
- while(index_recomposedSource<recomposedSource.size())
- {
- returnList<<recomposedSource.at(index_recomposedSource).join("/");
- index_recomposedSource++;
- }
- }
- else
- returnList << sources.at(index);
- index++;
- }
- return returnList;
-}
-
-void scanFileOrFolder::setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- QMutexLocker lock(&filtersMutex);
- this->include_send=include;
- this->exclude_send=exclude;
- reloadTheNewFilters=true;
- haveFilters=include_send.size()>0 || exclude_send.size()>0;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("haveFilters: %1, include_send.size(): %2, exclude_send.size(): %3").arg(haveFilters).arg(include_send.size()).arg(exclude_send.size()));
-}
-
-//set action if Folder are same or exists
-void scanFileOrFolder::setFolderExistsAction(FolderExistsAction action,QString newName)
-{
- this->newName=newName;
- folderExistsAction=action;
- waitOneAction.release();
-}
-
-//set action if error
-void scanFileOrFolder::setFolderErrorAction(FileErrorAction action)
-{
- fileErrorAction=action;
- waitOneAction.release();
-}
-
-void scanFileOrFolder::stop()
-{
- stopIt=true;
- waitOneAction.release();
-}
-
-void scanFileOrFolder::run()
-{
- stopped=false;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the listing with destination: "+destination+", mode: "+QString::number(mode));
- QDir destinationFolder(destination);
- int sourceIndex=0;
- while(sourceIndex<sources.size())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"size source to list: "+QString::number(sourceIndex)+"/"+QString::number(sources.size()));
- if(stopIt)
- {
- stopped=true;
- return;
- }
- QFileInfo source=sources.at(sourceIndex);
- if(source.isDir())
- {
- /* Bad way; when you copy c:\source\folder into d:\destination, you wait it create the folder d:\destination\folder
- //listFolder(source.absoluteFilePath()+QDir::separator(),destination);
- listFolder(source.absoluteFilePath()+"/",destination);//put unix separator because it's transformed into that's under windows too
- */
- //put unix separator because it's transformed into that's under windows too
- listFolder(source.absolutePath()+"/",destinationFolder.absolutePath()+"/",source.fileName()+"/",source.fileName()+"/");
- }
- else
- emit fileTransfer(source,destination+source.fileName(),mode);
- sourceIndex++;
- }
- stopped=true;
- if(stopIt)
- return;
- emit finishedTheListing();
-}
-
-void scanFileOrFolder::listFolder(const QString& source,const QString& destination,const QString& sourceSuffixPath,QString destinationSuffixPath)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"source: "+source+", destination: "+destination+", sourceSuffixPath: "+sourceSuffixPath+", destinationSuffixPath: "+destinationSuffixPath);
- if(stopIt)
- return;
- QString newSource = source+sourceSuffixPath;
- QString finalDest = destination+destinationSuffixPath;
- //if is same
- if(newSource==finalDest)
- {
- QDir dirSource(newSource);
- emit folderAlreadyExists(dirSource.absolutePath(),finalDest,true);
- waitOneAction.acquire();
- switch(folderExistsAction)
- {
- case FolderExists_Merge:
- break;
- case FolderExists_Skip:
- return;
- break;
- case FolderExists_Rename:
- if(newName=="")
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"pattern: "+folder_isolation.pattern());
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"full: "+destinationSuffixPath);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"prefix: "+prefix);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"suffix: "+suffix);
- //resolv the new name
- QFileInfo destinationInfo;
- int num=1;
- do
- {
- if(num==1)
- {
- if(firstRenamingRule=="")
- destinationSuffixPath=tr("%1 - copy").arg(suffix);
- else
- {
- destinationSuffixPath=firstRenamingRule;
- destinationSuffixPath.replace("%name%",suffix);
- }
- }
- else
- {
- if(otherRenamingRule=="")
- destinationSuffixPath=tr("%1 - copy (%2)").arg(suffix).arg(num);
- else
- {
- destinationSuffixPath=otherRenamingRule;
- destinationSuffixPath.replace("%name%",suffix);
- destinationSuffixPath.replace("%number%",QString::number(num));
- }
- }
- num++;
- destinationInfo.setFile(prefix+destinationSuffixPath);
- }
- while(destinationInfo.exists());
- }
- else
- destinationSuffixPath = newName;
- destinationSuffixPath+="/";
- finalDest = destination+destinationSuffixPath;
- break;
- default:
- return;
- break;
- }
- }
- //check if destination exists
- if(checkDestinationExists)
- {
- QDir finalSource(newSource);
- QDir destinationDir(finalDest);
- if(destinationDir.exists())
- {
- emit folderAlreadyExists(finalSource.absolutePath(),destinationDir.absolutePath(),false);
- waitOneAction.acquire();
- switch(folderExistsAction)
- {
- case FolderExists_Merge:
- break;
- case FolderExists_Skip:
- return;
- break;
- case FolderExists_Rename:
- if(newName=="")
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"pattern: "+folder_isolation.pattern());
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"full: "+destinationSuffixPath);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"prefix: "+prefix);
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"suffix: "+suffix);
- //resolv the new name
- QFileInfo destinationInfo;
- int num=1;
- do
- {
- if(num==1)
- {
- if(firstRenamingRule=="")
- destinationSuffixPath=tr("%1 - copy").arg(suffix);
- else
- {
- destinationSuffixPath=firstRenamingRule;
- destinationSuffixPath.replace("%name%",suffix);
- }
- }
- else
- {
- if(otherRenamingRule=="")
- destinationSuffixPath=tr("%1 - copy (%2)").arg(suffix).arg(num);
- else
- {
- destinationSuffixPath=otherRenamingRule;
- destinationSuffixPath.replace("%name%",suffix);
- destinationSuffixPath.replace("%number%",QString::number(num));
- }
- }
- destinationInfo.setFile(prefix+destinationSuffixPath);
- num++;
- }
- while(destinationInfo.exists());
- }
- else
- destinationSuffixPath = newName;
- destinationSuffixPath+="/";
- finalDest = destination+destinationSuffixPath;
- break;
- default:
- return;
- break;
- }
- }
- }
- //do source check
- QDir finalSource(newSource);
- QFileInfo dirInfo(newSource);
- //check of source is readable
- do
- {
- fileErrorAction=FileError_NotSet;
- if(!dirInfo.isReadable() || !dirInfo.isExecutable() || !dirInfo.exists())
- {
- if(!dirInfo.exists())
- emit errorOnFolder(dirInfo,tr("The folder not exists"));
- else
- emit errorOnFolder(dirInfo,tr("The folder is not readable"));
- waitOneAction.acquire();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"actionNum: "+QString::number(fileErrorAction));
- }
- } while(fileErrorAction==FileError_Retry);
- /// \todo check here if the folder is not readable or not exists
- QFileInfoList entryList=finalSource.entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst|QDir::Name|QDir::IgnoreCase);//possible wait time here
- int sizeEntryList=entryList.size();
- emit newFolderListing(newSource);
- if(sizeEntryList==0)
- emit addToMkPath(finalDest);
- for (int index=0;index<sizeEntryList;++index)
- {
- QFileInfo fileInfo=entryList.at(index);
- if(stopIt)
- return;
- if(haveFilters)
- {
- if(reloadTheNewFilters)
- {
- QMutexLocker lock(&filtersMutex);
- QCoreApplication::processEvents(QEventLoop::AllEvents);
- reloadTheNewFilters=false;
- this->include=this->include_send;
- this->exclude=this->exclude_send;
- }
- QString fileName=fileInfo.fileName();
- if(fileInfo.isDir())
- {
- bool excluded=false,included=(include.size()==0);
- int filters_index=0;
- while(filters_index<exclude.size())
- {
- if(exclude.at(filters_index).apply_on==ApplyOn_folder || exclude.at(filters_index).apply_on==ApplyOn_fileAndFolder)
- {
- if(fileName.contains(exclude.at(filters_index).regex))
- {
- excluded=true;
- break;
- }
- }
- filters_index++;
- }
- if(excluded)
- {}
- else
- {
- filters_index=0;
- while(filters_index<include.size())
- {
- if(include.at(filters_index).apply_on==ApplyOn_folder || include.at(filters_index).apply_on==ApplyOn_fileAndFolder)
- {
- if(fileName.contains(include.at(filters_index).regex))
- {
- included=true;
- break;
- }
- }
- filters_index++;
- }
- if(!included)
- {}
- else
- listFolder(source,destination,sourceSuffixPath+fileInfo.fileName()+"/",destinationSuffixPath+fileName+"/");
- }
- }
- else
- {
- bool excluded=false,included=(include.size()==0);
- int filters_index=0;
- while(filters_index<exclude.size())
- {
- if(exclude.at(filters_index).apply_on==ApplyOn_file || exclude.at(filters_index).apply_on==ApplyOn_fileAndFolder)
- {
- if(fileName.contains(exclude.at(filters_index).regex))
- {
- excluded=true;
- break;
- }
- }
- filters_index++;
- }
- if(excluded)
- {}
- else
- {
- filters_index=0;
- while(filters_index<include.size())
- {
- if(include.at(filters_index).apply_on==ApplyOn_file || include.at(filters_index).apply_on==ApplyOn_fileAndFolder)
- {
- if(fileName.contains(include.at(filters_index).regex))
- {
- included=true;
- break;
- }
- }
- filters_index++;
- }
- if(!included)
- {}
- else
- {
- bool sendToTransfer=false;
- if(!rsync)
- sendToTransfer=true;
- else if(!QFile::exists(finalDest+fileName))
- sendToTransfer=true;
- else if(fileInfo.lastModified()!=QFileInfo(finalDest+fileName).lastModified())
- sendToTransfer=true;
- if(sendToTransfer)
- emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileName,mode);
- }
- }
- }
- }
- else
- {
- if(fileInfo.isDir())//possible wait time here
- //listFolder(source,destination,suffixPath+fileInfo.fileName()+QDir::separator());
- listFolder(source,destination,sourceSuffixPath+fileInfo.fileName()+"/",destinationSuffixPath+fileInfo.fileName()+"/");//put unix separator because it's transformed into that's under windows too
- else
- {
- bool sendToTransfer=false;
- if(!rsync)
- sendToTransfer=true;
- else if(!QFile::exists(finalDest+fileInfo.fileName()))
- sendToTransfer=true;
- else if(fileInfo.lastModified()!=QFileInfo(finalDest+fileInfo.fileName()).lastModified())
- sendToTransfer=true;
- if(sendToTransfer)
- emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileInfo.fileName(),mode);
- }
- }
- }
- if(rsync)
- {
- //check the reverse path here
- QFileInfoList entryListDestination=QDir(finalDest).entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst|QDir::Name|QDir::IgnoreCase);//possible wait time here
- int sizeEntryListDestination=entryListDestination.size();
- int index=0;
- for (int indexDestination=0;indexDestination<sizeEntryListDestination;++indexDestination)
- {
- index=0;
- while(index<sizeEntryList)
- {
- if(entryListDestination.at(indexDestination).fileName()==entryList.at(index).fileName())
- break;
- index++;
- }
- if(index==sizeEntryList)
- {
- //then not found, need be remove
- emit addToRmForRsync(finalDest+entryListDestination.at(indexDestination).fileName());
- }
- }
- return;
- }
-
- if(mode==Move)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"newSource: "+newSource+", sizeEntryList: "+QString::number(sizeEntryList));
- emit addToRmPath(newSource,sizeEntryList);
- }
-}
-
-//set if need check if the destination exists
-void scanFileOrFolder::setCheckDestinationFolderExists(const bool checkDestinationFolderExists)
-{
- this->checkDestinationExists=checkDestinationFolderExists;
-}
-
-void scanFileOrFolder::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
-{
- this->firstRenamingRule=firstRenamingRule;
- this->otherRenamingRule=otherRenamingRule;
-}
-
-/// \brief set rsync
-void scanFileOrFolder::setRsync(const bool rsync)
-{
- this->rsync=rsync;
-}
diff --git a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h b/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h
deleted file mode 100644
index 2109df2..0000000
--- a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/** \file scanFileOrFolder.h
-\brief Thread changed to list recursively the folder
-\author alpha_one_x86
-\version 0.3
-\date 2011 */
-
-#include <QThread>
-#include <QStringList>
-#include <QString>
-#include <QList>
-#include <QFileInfo>
-#include <QDir>
-#include <QSemaphore>
-#include <QEventLoop>
-#include <QCoreApplication>
-#include <QMutexLocker>
-
-#include "Environment.h"
-
-#ifndef SCANFILEORFOLDER_H
-#define SCANFILEORFOLDER_H
-
-/// \brief Thread changed to list recursively the folder
-class scanFileOrFolder : public QThread
-{
- Q_OBJECT
-public:
- explicit scanFileOrFolder(CopyMode mode);
- ~scanFileOrFolder();
- /// \brief to the a folder listing
- void stop();
- /// \brief to get if is finished
- bool isFinished();
- /// \brief set action if Folder are same or exists
- void setFolderExistsAction(FolderExistsAction action,QString newName="");
- /// \brief set action if error
- void setFolderErrorAction(FileErrorAction action);
- /// \brief set if need check if the destination exists
- void setCheckDestinationFolderExists(const bool checkDestinationFolderExists);
- void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
- /// \brief set rsync
- void setRsync(const bool rsync);
-signals:
- void fileTransfer(const QFileInfo &source,const QFileInfo &destination,const CopyMode &mode);
- /// \brief To debug source
- void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
- void folderAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame);
- void errorOnFolder(const QFileInfo &fileInfo,const QString &errorString);
- void finishedTheListing();
-
- void newFolderListing(const QString &path);
- void addToMkPath(const QString& folder);
- void addToRmPath(const QString& folder,const int& inodeToRemove);
- void addToRmForRsync(const QString& inode);
-public slots:
- void addToList(const QStringList& sources,const QString& destination);
- void setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude);
-protected:
- void run();
-private:
- QStringList sources;
- QString destination;
- volatile bool stopIt;
- void listFolder(const QString& source,const QString& destination,const QString& sourceSuffixPath,QString destinationSuffixPath);
- volatile bool stopped;
- QSemaphore waitOneAction;
- FolderExistsAction folderExistsAction;
- FileErrorAction fileErrorAction;
- volatile bool checkDestinationExists;
- QString newName;
- QRegExp folder_isolation;
- QString prefix;
- QString suffix;
- CopyMode mode;
- bool rsync;
- QList<Filters_rules> include,exclude;
- QList<Filters_rules> include_send,exclude_send;
- bool reloadTheNewFilters;
- bool haveFilters;
- QMutex filtersMutex;
- QString firstRenamingRule;
- QString otherRenamingRule;
- /** Parse the multiple wildcard source, it allow resolv multiple wildcard with Qt into their path
- * The string: /toto/f*a/yy*a/toto.mp3
- * Will give: /toto/f1a/yy*a/toto.mp3, /toto/f2a/yy*a/toto.mp3
- * Will give: /toto/f2a/yy1a/toto.mp3, /toto/f2a/yy2a/toto.mp3
- */
- QStringList parseWildcardSources(const QStringList &sources);
-};
-
-#endif // SCANFILEORFOLDER_H