summaryrefslogtreecommitdiff
path: root/plugins/CopyEngine
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CopyEngine')
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/FilterRules.cpp193
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/FilterRules.h46
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/FilterRules.ui162
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Filters.cpp456
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Filters.h44
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Filters.ui194
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/ar/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/de/translation.ts734
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/el/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/es/translation.ts734
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/fr/translation.ts600
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/hi/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/id/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/it/translation.ts734
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/ja/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/ko/translation.ts795
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/nl/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/no/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/pl/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/pt/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/ru/translation.ts734
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/th/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/tr/translation.ts570
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Languages/zh/translation.ts570
-rwxr-xr-x[-rw-r--r--]plugins/CopyEngine/Ultracopier-0.3/ListThread.cpp490
-rwxr-xr-x[-rw-r--r--]plugins/CopyEngine/Ultracopier-0.3/ListThread.h58
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/ListThread_InodeAction.cpp4
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/ReadThread.cpp100
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/ReadThread.h17
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/RenamingRules.cpp85
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/RenamingRules.h34
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/RenamingRules.ui129
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/RmPath.cpp2
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/StructEnumDefinition_CopyEngine.h39
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/TransferThread.cpp422
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/TransferThread.h38
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/Variable.h2
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/WriteThread.cpp182
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/WriteThread.h28
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/copyEngine-collision-and-error.cpp6
-rwxr-xr-x[-rw-r--r--]plugins/CopyEngine/Ultracopier-0.3/copyEngine.cpp454
-rwxr-xr-x[-rw-r--r--]plugins/CopyEngine/Ultracopier-0.3/copyEngine.h98
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/copyEngine.pro28
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/factory.cpp188
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/factory.h14
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/fileErrorDialog.cpp33
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp39
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.h4
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.cpp39
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.h5
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.cpp51
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.h6
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/informations.xml6
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/options.ui243
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/resources.qrc8
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/resources/add.pngbin0 -> 564 bytes
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/resources/edit.pngbin0 -> 563 bytes
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/resources/filter.pngbin0 -> 429 bytes
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/resources/remove.pngbin0 -> 722 bytes
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.cpp293
-rw-r--r--plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.h18
61 files changed, 12606 insertions, 2823 deletions
diff --git a/plugins/CopyEngine/Ultracopier-0.3/FilterRules.cpp b/plugins/CopyEngine/Ultracopier-0.3/FilterRules.cpp
new file mode 100644
index 0000000..0e6ba25
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/FilterRules.cpp
@@ -0,0 +1,193 @@
+#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/CopyEngine/Ultracopier-0.3/FilterRules.h b/plugins/CopyEngine/Ultracopier-0.3/FilterRules.h
new file mode 100644
index 0000000..f06f0cb
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/FilterRules.h
@@ -0,0 +1,46 @@
+#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/CopyEngine/Ultracopier-0.3/FilterRules.ui b/plugins/CopyEngine/Ultracopier-0.3/FilterRules.ui
new file mode 100644
index 0000000..fad35cd
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/FilterRules.ui
@@ -0,0 +1,162 @@
+<?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/CopyEngine/Ultracopier-0.3/Filters.cpp b/plugins/CopyEngine/Ultracopier-0.3/Filters.cpp
new file mode 100644
index 0000000..ce87b52
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/Filters.cpp
@@ -0,0 +1,456 @@
+#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/CopyEngine/Ultracopier-0.3/Filters.h b/plugins/CopyEngine/Ultracopier-0.3/Filters.h
new file mode 100644
index 0000000..dcdcb36
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/Filters.h
@@ -0,0 +1,44 @@
+#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/CopyEngine/Ultracopier-0.3/Filters.ui b/plugins/CopyEngine/Ultracopier-0.3/Filters.ui
new file mode 100644
index 0000000..db8577c
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/Filters.ui
@@ -0,0 +1,194 @@
+<?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/CopyEngine/Ultracopier-0.3/Languages/ar/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/ar/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/ar/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/ar/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/de/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/de/translation.ts
index 1c3692c..08c7422 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/de/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/de/translation.ts
@@ -1,459 +1,795 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="de" sourcelanguage="en">
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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>
+ <translation>Auf dieser Plattform nicht unterstützt</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Datum der letzten Änderung ist falsch</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <location filename="../../AvancedQFile.cpp" line="73"/>
<source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Datum des letzten Zugriffs ist falsch</translation>
+ </message>
+</context>
+<context>
+ <name>Factory</name>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation>Optionen Fehler</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation>Unfähig, die Transferliste sparen: %1</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <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="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation>Falsche Header: &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <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="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
+ <translation>Der Ordner kann nicht erstellt</translation>
</message>
</context>
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <location filename="../../ReadThread.cpp" line="154"/>
+ <location filename="../../ReadThread.cpp" line="316"/>
<source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
+ <translation>Unfähig, die Quelldatei zu lesen: </translation>
</message>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
+ <translation>Umbenennen von Regeln</translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
+ <translation>Der Ordner kann nicht entfernen</translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
+ <translation>%1 - kopieren</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - kopieren (%2)</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
+ <translation>Die Prüfsummen nicht überein</translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <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="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="193"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
+ <translation>Optionen Fehler</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler bei der Datei</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Größe</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Geändert</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Dateiname</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Immer diese Aktion</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
- <translation type="unfinished"></translation>
+ <translation>Legen Sie nach unten</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
- <translation type="unfinished"></translation>
+ <translation>Wiederholen</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>überspringen</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="177"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
- <translation type="unfinished"></translation>
+ <translation>Die Datei existiert</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>Quelle</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>Ziel</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="82"/>
+ <location filename="../../fileExistsDialog.ui" line="153"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Größe</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="99"/>
+ <location filename="../../fileExistsDialog.ui" line="170"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Geändert</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="116"/>
+ <location filename="../../fileExistsDialog.ui" line="187"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Dateiname</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Schlagen neuen Namen</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Immer diese Aktion</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Umbenennen</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
+ <translation>überschreiben</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>überspringen</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Stornieren</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <translation>Überschreiben, wenn neuere</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="312"/>
<source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
- <translation type="unfinished"></translation>
+ <translation>Diese Dateien sind die gleiche Datei</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>Die Quelle und das Ziel ist dasselbe</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Größe</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Geändert</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Dateiname</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Schlagen neuen Namen</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Immer diese Aktion</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Umbenennen</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>überspringen</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Stornieren</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
+ <translation>Diese Ordner sind die gleichen Ordner</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>Quelle</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>Ziel</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>Die Quelle und das Ziel ist dasselbe</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="89"/>
+ <location filename="../../folderExistsDialog.ui" line="140"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Geändert</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="106"/>
+ <location filename="../../folderExistsDialog.ui" line="150"/>
<source>Folder name</source>
- <translation type="unfinished"></translation>
+ <translation>Ordnername</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Schlagen neuen Namen</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Immer diese Aktion</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Umbenennen</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>Fusionieren</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
- <translation type="unfinished"></translation>
+ <translation>überspringen</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Stornieren</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
+ <translation>Übertragen Sie die Datei Rechte</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
- <translation type="unfinished"></translation>
+ <translation>Halten Sie das Datei-Datum</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
- <translation type="unfinished"></translation>
+ <translation>Blockgröße</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
- <translation type="unfinished"></translation>
+ <translation>KB</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
+ <translation>Auto starten Sie die Übertragung</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
- <translation type="unfinished"></translation>
+ <translation>Wenn Ordner Fehler</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="74"/>
+ <location filename="../../options.ui" line="95"/>
<source>Ask</source>
- <translation type="unfinished"></translation>
+ <translation>Fragen</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
+ <translation>überspringen</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>Fusionieren</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Umbenennen</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="118"/>
<source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
+ <translation>Prüfen Sie, ob Zielordner vorhanden ist</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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation>%1 - kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - kopieren (%2)</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
- <translation type="unfinished"></translation>
+ <translation>Der Ordner existiert nicht</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
- <translation type="unfinished"></translation>
+ <translation>Der Ordner ist nicht lesbar</translation>
</message>
</context>
</TS>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/el/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/el/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/el/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/el/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/es/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/es/translation.ts
index 1c3692c..fd90e5e 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/es/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/es/translation.ts
@@ -1,459 +1,795 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="es" sourcelanguage="en">
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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>
+ <translation>No es compatible con esta plataforma</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Fecha de última modificación es incorrecto</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <location filename="../../AvancedQFile.cpp" line="73"/>
<source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Fecha de último acceso es incorrecto</translation>
+ </message>
+</context>
+<context>
+ <name>Factory</name>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation>Error de opciones</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <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="1185"/>
+ <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="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation>Encabezado incorrecto: &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <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="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
+ <translation>No se puede crear la carpeta</translation>
</message>
</context>
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <location filename="../../ReadThread.cpp" line="154"/>
+ <location filename="../../ReadThread.cpp" line="316"/>
<source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
+ <translation>No se puede leer el archivo de origen: </translation>
</message>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
+ <translation>Reglas de Cambio de nombre</translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
+ <translation>No se puede eliminar la carpeta</translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
+ <translation>%1 - copia</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - copia (%2)</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
+ <translation>Las sumas de comprobación no coincide</translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <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="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="193"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
+ <translation>Opciones de error</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
- <translation type="unfinished"></translation>
+ <translation>Error en el archivo</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Error</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Tamaño</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificado</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Nombre de archivo</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Siempre hacer esta acción</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
- <translation type="unfinished"></translation>
+ <translation>Ponga a abajo</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
- <translation type="unfinished"></translation>
+ <translation>Reintentar</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Omitir</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="177"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
- <translation type="unfinished"></translation>
+ <translation>El archivo ya existe</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>Fuente</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>Destino</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="82"/>
+ <location filename="../../fileExistsDialog.ui" line="153"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Tamaño</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="99"/>
+ <location filename="../../fileExistsDialog.ui" line="170"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificado</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="116"/>
+ <location filename="../../fileExistsDialog.ui" line="187"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Nombre de archivo</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Sugerir nuevo nombre</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Siempre hacer esta acción</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Cambiar el nombre</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
+ <translation>Sobrescribir</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Omitir</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancelar</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <translation>Sobrescribir si nuevo</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="312"/>
<source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
- <translation type="unfinished"></translation>
+ <translation>Estos archivos son el mismo archivo</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>La fuente y el destino es el mismo</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Tamaño</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificado</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Nombre de archivo</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Sugerir nuevo nombre</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Siempre hacer esta acción</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Cambiar el nombre</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Omitir</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancelar</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
+ <translation>Esta carpeta es la misma carpeta</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>Fuente</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>Destino</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>La fuente y el destino es el mismo</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="89"/>
+ <location filename="../../folderExistsDialog.ui" line="140"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificado</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="106"/>
+ <location filename="../../folderExistsDialog.ui" line="150"/>
<source>Folder name</source>
- <translation type="unfinished"></translation>
+ <translation>Nombre de la carpeta</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Sugerir nuevo nombre</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Siempre hacer esta acción</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Cambiar el nombre</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>Unir</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Omitir</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancelar</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
+ <translation>Transferencia de los derechos de archivo</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
- <translation type="unfinished"></translation>
+ <translation>Mantener la fecha de archivo</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
- <translation type="unfinished"></translation>
+ <translation>Tamaño del bloque</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
- <translation type="unfinished"></translation>
+ <translation>KB</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
+ <translation>Auto iniciar la transferencia</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
- <translation type="unfinished"></translation>
+ <translation>Cuando el error carpeta</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="74"/>
+ <location filename="../../options.ui" line="95"/>
<source>Ask</source>
- <translation type="unfinished"></translation>
+ <translation>Pedir</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
+ <translation>Omitir</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>Unir</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Cambiar el nombre</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="118"/>
<source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
+ <translation>Compruebe si existe la carpeta de destino</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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation>%1 - copia</translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - copia (%2)</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
- <translation type="unfinished"></translation>
+ <translation>La carpeta no existe</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
- <translation type="unfinished"></translation>
+ <translation>La carpeta no se puede leer</translation>
</message>
</context>
</TS>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/fr/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/fr/translation.ts
index dcf87c6..56e2373 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/fr/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/fr/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <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="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation>Erreur d&apos;options</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <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="1185"/>
+ <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="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation>Mauvaise en-tête: &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <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="1269"/>
+ <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="52"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation>Impossible de créer le répertoire</translation>
</message>
@@ -32,426 +234,564 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="234"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="52"/>
- <source>Unable to remove the folder</source>
- <translation>Impossible de supprimer le répertoire</translation>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
- <translation>Copie de </translation>
+ <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>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="225"/>
- <source>Select source directory</source>
- <translation>Choisir le répertoire source</translation>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
+ <translation>Impossible de supprimer le répertoire</translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="239"/>
- <source>Select one or more files to open</source>
- <translation>Sélectionnez un ou plusieurs fichiers à ouvrir</translation>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
+ <translation>%1 - copie</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
- <translation>Tous les fichiers</translation>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - copie (%2)</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
- <translation>Selectionnez le répertoire de destination</translation>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
+ <translation>Les checksums ne correspondent pas</translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
- <translation>Demander</translation>
+ <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="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
- <translation>Passer</translation>
+ <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="190"/>
- <source>Overwrite</source>
- <translation>Ecraser</translation>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="191"/>
- <source>Overwrite if newer</source>
- <translation>Ecraser si plus récent</translation>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="192"/>
- <source>Overwrite if the last modification dates are different</source>
- <translation>Ecraser si les dates de modifications sont différentes</translation>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="193"/>
- <source>Rename</source>
- <translation>Renommer</translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
+ <translation>Erreur d&apos;options</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="203"/>
- <source>Put to end of the list</source>
- <translation>Mettre à la fin de la liste</translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation>Erreur sur le fichier</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation>Modifié</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation>Nom de fichier</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation>Mettre à la fin</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation>Réessayer</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation>&amp;Passer</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation>Le fichier existe</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation>Source</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation>Destination</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="82"/>
+ <location filename="../../fileExistsDialog.ui" line="153"/>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="99"/>
+ <location filename="../../fileExistsDialog.ui" line="170"/>
<source>Modified</source>
<translation>Modifié</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation>&amp;Renommer</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation>&amp;Ecraser</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation>&amp;Passer</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation>&amp;Annuler</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation>Ecraser si plus récent</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
- <translation>Copie de </translation>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation>Modifié</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation>Nom de fichier</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation>&amp;Renommer</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation>&amp;Passer</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation>&amp;Annuler</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
- <translation>Copie de </translation>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation>Source</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation>Destination</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="89"/>
+ <location filename="../../folderExistsDialog.ui" line="140"/>
<source>Modified</source>
<translation>Modifié</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation>&amp;Renommer</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation>Fusionner</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation>Passer</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation>&amp;Annuler</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
- <translation>Copie de </translation>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../options.ui" line="74"/>
+ <location filename="../../options.ui" line="95"/>
<source>Ask</source>
<translation>Demander</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="79"/>
+ <location filename="../../options.ui" line="105"/>
<source>Skip</source>
<translation>Passer</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation>Fusionner</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation>Renommer</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation>Taille de block</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
<translation>Ko</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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="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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
- <translation>Copie de </translation>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation>%1 - copie</translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - copie (%2)</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation>Le répertoire n&apos;existe pas</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation>Le répertoire n&apos;est pas lisible</translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/hi/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/hi/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/hi/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/hi/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/id/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/id/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/id/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/id/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/it/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/it/translation.ts
index 1c3692c..92743de 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/it/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/it/translation.ts
@@ -1,459 +1,795 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="it" sourcelanguage="en">
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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>
+ <translation>Non supportato su questa piattaforma</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Ultima modifica è sbagliato</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <location filename="../../AvancedQFile.cpp" line="73"/>
<source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Ultima data di accesso è sbagliato</translation>
+ </message>
+</context>
+<context>
+ <name>Factory</name>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation>opzioni di errore</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <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="1185"/>
+ <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="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation>Sbagliato intestazione: &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <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="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
+ <translation>Impossibile creare la cartella</translation>
</message>
</context>
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <location filename="../../ReadThread.cpp" line="154"/>
+ <location filename="../../ReadThread.cpp" line="316"/>
<source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
+ <translation>Impossibile leggere il file sorgente: </translation>
</message>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
+ <translation>Rinominare le regole</translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
+ <translation>Impossibile rimuovere la cartella</translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
+ <translation>%1 - copia</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - copia (%2)</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
+ <translation>Il checksum non corrisponde</translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <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="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="193"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
+ <translation>opzioni di errore</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
- <translation type="unfinished"></translation>
+ <translation>Errore su file</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Errore</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Dimensione</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificato</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Nome file</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Eseguire sempre questa azione</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
- <translation type="unfinished"></translation>
+ <translation>Mettere a fondo</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
- <translation type="unfinished"></translation>
+ <translation>Riprova</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Saltare</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="177"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
- <translation type="unfinished"></translation>
+ <translation>Il file esiste</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>Fonte</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>Destinazione</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="82"/>
+ <location filename="../../fileExistsDialog.ui" line="153"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Dimensione</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="99"/>
+ <location filename="../../fileExistsDialog.ui" line="170"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificato</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="116"/>
+ <location filename="../../fileExistsDialog.ui" line="187"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Nome file</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Suggerisci nuovo nome</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Eseguire sempre questa azione</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Rinominare</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
+ <translation>Sovrascrivi</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Saltare</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Annullare</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <translation>Sovrascrivi se più recente</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="312"/>
<source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
- <translation type="unfinished"></translation>
+ <translation>Questi file sono lo stesso file</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>La sorgente e destinazione è uguale</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Dimensione</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificato</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>Nome file</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Suggerisci nuovo nome</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Eseguire sempre questa azione</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Rinominare</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Saltare</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Annullare</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
+ <translation>Questo cartelle sono nella stessa cartella</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>Fonte</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>Destinazione</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>La sorgente e destinazione è uguale</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="89"/>
+ <location filename="../../folderExistsDialog.ui" line="140"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Modificato</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="106"/>
+ <location filename="../../folderExistsDialog.ui" line="150"/>
<source>Folder name</source>
- <translation type="unfinished"></translation>
+ <translation>Nome della cartella</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Suggerisci nuovo nome</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Eseguire sempre questa azione</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Rinominare</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>Unire</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
- <translation type="unfinished"></translation>
+ <translation>Saltare</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Annullare</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
+ <translation>Trasferire i diritti di file</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
- <translation type="unfinished"></translation>
+ <translation>Tenere la data del file</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
- <translation type="unfinished"></translation>
+ <translation>Dimensione del blocco</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
- <translation type="unfinished"></translation>
+ <translation></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
+ <translation>Auto iniziare il trasferimento</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
- <translation type="unfinished"></translation>
+ <translation>Quando errore cartella</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="74"/>
+ <location filename="../../options.ui" line="95"/>
<source>Ask</source>
- <translation type="unfinished"></translation>
+ <translation>Chiedere</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
+ <translation>Saltare</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>Unire</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
- <translation type="unfinished"></translation>
+ <translation>Rinominare</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="118"/>
<source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
+ <translation>Controllare se la cartella di destinazione esiste</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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation>%1 - copia</translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - copia (%2)</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
- <translation type="unfinished"></translation>
+ <translation>La cartella non esiste</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
- <translation type="unfinished"></translation>
+ <translation>La cartella non è leggibile</translation>
</message>
</context>
</TS>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/ja/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/ja/translation.ts
index 1c3692c..9a215b1 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/ja/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/ja/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <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>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/ko/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/ko/translation.ts
new file mode 100644
index 0000000..6210b83
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/ko/translation.ts
@@ -0,0 +1,795 @@
+<?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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="59"/>
+ <source>Unable to remove the folder</source>
+ <translation>폴더를 제거할 수 없습니다</translation>
+ </message>
+</context>
+<context>
+ <name>TransferThread</name>
+ <message>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <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="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="511"/>
+ <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="772"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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="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="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
+ <source>The folder not exists</source>
+ <translation>폴더가 존재하지 않습니다</translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
+ <source>The folder is not readable</source>
+ <translation>폴더를 읽을 수 없습니다</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/nl/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/nl/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/nl/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/nl/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/no/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/no/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/no/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/no/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/pl/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/pl/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/pl/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/pl/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/pt/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/pt/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/pt/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/pt/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/ru/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/ru/translation.ts
index 1c3692c..90f4c0f 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/ru/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/ru/translation.ts
@@ -1,459 +1,795 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="ru" sourcelanguage="en">
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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>
+ <translation>Не поддерживается на этой платформе</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Дата обновления неправильно</translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <location filename="../../AvancedQFile.cpp" line="73"/>
<source>Last access date is wrong</source>
- <translation type="unfinished"></translation>
+ <translation>Дата последнего доступа не так</translation>
+ </message>
+</context>
+<context>
+ <name>Factory</name>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation>Опции ошибке</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <source>Unable do to move or copy item into wrong forced mode: %1</source>
+ <translation>Невозможно сделать, чтобы скопировать или переместить элемент в неправильном форсированном режиме: %1</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation>Невозможно сохранить трансфер: %1</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation>Проблема при чтении или размер файла нулевой</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation>Неправильный заголовок: &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation>Некоторые ошибки были обнаружены в ходе разбора линия</translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <source>Unable to open the transfer list: %1</source>
+ <translation>Не удается открыть трансфер: %1</translation>
</message>
</context>
<context>
<name>MkPath</name>
<message>
- <location filename="../../MkPath.cpp" line="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
- <translation type="unfinished"></translation>
+ <translation>Невозможно создать папку</translation>
</message>
</context>
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <location filename="../../ReadThread.cpp" line="154"/>
+ <location filename="../../ReadThread.cpp" line="316"/>
<source>Unable to read the source file: </source>
- <translation type="unfinished"></translation>
+ <translation>Невозможно прочитать исходный файл: </translation>
</message>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
- <translation type="unfinished"></translation>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
+ <translation>Переименование правила</translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
+ <translation>Не удается удалить папку</translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
+ <translation>%1 - копия</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - копия (%2)</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
- <translation type="unfinished"></translation>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
+ <translation>Контрольные суммы не совпадают</translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
+ <translation>Невозможно прочитать исходный файл: </translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <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="193"/>
- <source>Rename</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <source>The engine is forced to move, you can&apos;t copy with it</source>
+ <translation>Двигатель вынуждены покинуть свои дома, вы не можете скопировать с ним</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="203"/>
- <source>Put to end of the list</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <source>The engine is forced to copy, you can&apos;t move with it</source>
+ <translation>Двигатель вынужден копии, вы не можете двигаться вместе с ним</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="225"/>
- <source>Select source directory</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
+ <translation>Опции ошибке</translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
- <translation type="unfinished"></translation>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
- <translation type="unfinished"></translation>
+ <translation>Ошибка в файле</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>ошибка</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>размер</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>модифицированный</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>имя файла</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Всегда делайте это действие</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
- <translation type="unfinished"></translation>
+ <translation>Положить в нижней</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
- <translation type="unfinished"></translation>
+ <translation>Повторить</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>пропускать</translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="177"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
- <translation type="unfinished"></translation>
+ <translation>Файл существует</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>источник</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>назначение</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="82"/>
+ <location filename="../../fileExistsDialog.ui" line="153"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>размер</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="99"/>
+ <location filename="../../fileExistsDialog.ui" line="170"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>модифицированный</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="116"/>
+ <location filename="../../fileExistsDialog.ui" line="187"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>имя файла</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Предложить новое имя</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Всегда делайте это действие</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>переименовать</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
- <translation type="unfinished"></translation>
+ <translation>переписывать</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>пропускать</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>отменить</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
- <translation type="unfinished"></translation>
+ <translation>Заменить, если новее</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="312"/>
<source>Overwrite if not same modification date</source>
- <translation type="unfinished"></translation>
+ <translation>Заменить, если не ту же дату модификации</translation>
+ </message>
+ <message>
+ <location filename="../../fileExistsDialog.cpp" line="102"/>
+ <source>%1 - copy</source>
+ <translation>%1 - копия</translation>
</message>
<message>
- <location filename="../../fileExistsDialog.cpp" line="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
- <translation type="unfinished"></translation>
+ <translation>Эти файлы имеют тот же файл</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>Источник и назначение такое же,</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>размер</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>модифицированный</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
- <translation type="unfinished"></translation>
+ <translation>имя файла</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Предложить новое имя</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Всегда делайте это действие</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>переименовать</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
- <translation type="unfinished"></translation>
+ <translation>пропускать</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>отменить</translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
- <translation type="unfinished"></translation>
+ <translation>Это папки той же папке,</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
- <translation type="unfinished"></translation>
+ <translation>источник</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
- <translation type="unfinished"></translation>
+ <translation>назначение</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
- <translation type="unfinished"></translation>
+ <translation>Источник и назначение такое же,</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="89"/>
+ <location filename="../../folderExistsDialog.ui" line="140"/>
<source>Modified</source>
- <translation type="unfinished"></translation>
+ <translation>модифицированный</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="106"/>
+ <location filename="../../folderExistsDialog.ui" line="150"/>
<source>Folder name</source>
- <translation type="unfinished"></translation>
+ <translation>имя папки</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
- <translation type="unfinished"></translation>
+ <translation>Предложить новое имя</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
- <translation type="unfinished"></translation>
+ <translation>Всегда делайте это действие</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
- <translation type="unfinished"></translation>
+ <translation>переименовать</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>слияние</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
- <translation type="unfinished"></translation>
+ <translation>пропускать</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>отменить</translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
- <translation type="unfinished"></translation>
+ <translation>Передача файлов прав</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
- <translation type="unfinished"></translation>
+ <translation>Держите дату файла</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
- <translation type="unfinished"></translation>
+ <translation>размер блока</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
- <translation type="unfinished"></translation>
+ <translation>KB</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
- <translation type="unfinished"></translation>
+ <translation>Авто начать передачу</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
- <translation type="unfinished"></translation>
+ <translation>Когда папка ошибка</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="74"/>
+ <location filename="../../options.ui" line="95"/>
<source>Ask</source>
- <translation type="unfinished"></translation>
+ <translation>просить</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
+ <translation>пропускать</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
- <translation type="unfinished"></translation>
+ <translation>слияние</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
- <translation type="unfinished"></translation>
+ <translation>переименовать</translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="118"/>
<source>Check if destination folder exists</source>
- <translation type="unfinished"></translation>
+ <translation>Убедитесь, что папка существует</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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
- <translation type="unfinished"></translation>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation>%1 - копия</translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
+ <translation>%1 - копия (%2)</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
- <translation type="unfinished"></translation>
+ <translation>Папка не существует</translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
- <translation type="unfinished"></translation>
+ <translation>Папки не читается</translation>
</message>
</context>
</TS>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/th/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/th/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/th/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/th/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/tr/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/tr/translation.ts
index 1c3692c..0898631 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/tr/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/tr/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <location filename="../../RenamingRules.ui" line="14"/>
+ <source>Renaming rules</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="214"/>
<source>Block size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Languages/zh/translation.ts b/plugins/CopyEngine/Ultracopier-0.3/Languages/zh/translation.ts
index 1c3692c..9a215b1 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Languages/zh/translation.ts
+++ b/plugins/CopyEngine/Ultracopier-0.3/Languages/zh/translation.ts
@@ -4,27 +4,229 @@
<context>
<name>AvancedQFile</name>
<message>
- <location filename="../../AvancedQFile.cpp" line="17"/>
- <location filename="../../AvancedQFile.cpp" line="48"/>
- <location filename="../../AvancedQFile.cpp" line="79"/>
+ <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="31"/>
+ <location filename="../../AvancedQFile.cpp" line="42"/>
<source>Last modified date is wrong</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../AvancedQFile.cpp" line="62"/>
+ <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="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <source>Options error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="356"/>
+ <location filename="../../factory.cpp" line="393"/>
+ <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="1162"/>
+ <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="1169"/>
+ <source>Unable to save the transfer list: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1185"/>
+ <source>Problem at the reading, or file size is null</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1192"/>
+ <source>Wrong header: &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1201"/>
+ <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="1210"/>
+ <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="1216"/>
+ <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="1263"/>
+ <source>Some error have been found during the line parsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../ListThread.cpp" line="1269"/>
+ <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="51"/>
+ <location filename="../../MkPath.cpp" line="62"/>
<source>Unable to create the folder</source>
<translation type="unfinished"></translation>
</message>
@@ -32,426 +234,560 @@
<context>
<name>ReadThread</name>
<message>
- <location filename="../../ReadThread.cpp" line="231"/>
+ <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>
-</context>
-<context>
- <name>RmPath</name>
<message>
- <location filename="../../RmPath.cpp" line="51"/>
- <source>Unable to remove the folder</source>
+ <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>TransferThread</name>
+ <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="../../TransferThread.cpp" line="281"/>
- <location filename="../../TransferThread.cpp" line="282"/>
- <source>Copy of </source>
+ <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>copyEngine</name>
+ <name>RmPath</name>
<message>
- <location filename="../../copyEngine.cpp" line="124"/>
- <location filename="../../copyEngine.cpp" line="141"/>
- <source>Select destination directory</source>
+ <location filename="../../RmPath.cpp" line="59"/>
+ <source>Unable to remove the folder</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>TransferThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="188"/>
- <location filename="../../copyEngine.cpp" line="201"/>
- <source>Ask</source>
+ <location filename="../../TransferThread.cpp" line="311"/>
+ <source>%1 - copy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="189"/>
- <location filename="../../copyEngine.cpp" line="202"/>
- <source>Skip</source>
+ <location filename="../../TransferThread.cpp" line="321"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="190"/>
- <source>Overwrite</source>
+ <location filename="../../TransferThread.cpp" line="626"/>
+ <source>The checksums not match</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>WriteThread</name>
<message>
- <location filename="../../copyEngine.cpp" line="191"/>
- <source>Overwrite if newer</source>
+ <location filename="../../WriteThread.cpp" line="443"/>
+ <source>Unable to read the source file: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="192"/>
- <source>Overwrite if not same modification date</source>
+ <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="193"/>
- <source>Rename</source>
+ <location filename="../../copyEngine.cpp" line="257"/>
+ <location filename="../../copyEngine.cpp" line="275"/>
+ <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="203"/>
- <source>Put to end of the list</source>
+ <location filename="../../copyEngine.cpp" line="286"/>
+ <location filename="../../copyEngine.cpp" line="304"/>
+ <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="225"/>
- <source>Select source directory</source>
+ <location filename="../../copyEngine.cpp" line="511"/>
+ <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="239"/>
- <source>Select one or more files to open</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <source>Options error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../copyEngine.cpp" line="241"/>
- <source>All files</source>
+ <location filename="../../copyEngine.cpp" line="772"/>
+ <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"/>
+ <location filename="../../fileErrorDialog.ui" line="14"/>
<source>Error on file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="20"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="56"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="73"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="90"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="136"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="156"/>
<source>Put to bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="163"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <location filename="../../fileErrorDialog.ui" line="170"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileErrorDialog.ui"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="14"/>
<source>The file exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <location filename="../../fileExistsDialog.ui" line="243"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="254"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="274"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="281"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="291"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="298"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <location filename="../../fileExistsDialog.ui" line="307"/>
<source>Overwrite if newer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileExistsDialog.ui"/>
+ <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="70"/>
- <location filename="../../fileExistsDialog.cpp" line="71"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../fileIsSameDialog.ui" line="14"/>
<source>This files are the same file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="20"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="47"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="64"/>
<source>Modified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="81"/>
<source>File name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="137"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="148"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="168"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="175"/>
<source>&amp;Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.ui"/>
+ <location filename="../../fileIsSameDialog.ui" line="182"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../fileIsSameDialog.cpp" line="66"/>
- <location filename="../../fileIsSameDialog.cpp" line="67"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="14"/>
<source>This folders are the same folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="34"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="50"/>
<source>Destination</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="62"/>
<source>The source and destination is same</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <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"/>
+ <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"/>
+ <location filename="../../folderExistsDialog.ui" line="200"/>
<source>Suggest new &amp;name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="211"/>
<source>&amp;Always do this action</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="218"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="225"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="232"/>
<source>Skip</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.ui"/>
+ <location filename="../../folderExistsDialog.ui" line="239"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../folderExistsDialog.cpp" line="61"/>
- <source>Copy of </source>
+ <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"/>
+ <location filename="../../options.ui" line="23"/>
<source>Transfer the file rights</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="33"/>
<source>Keep the file date</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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="43"/>
+ <location filename="../../options.ui" line="198"/>
<source>KB</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="56"/>
<source>Auto start the transfer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="66"/>
<source>When folder error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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"/>
+ <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"/>
- <source>When folder colision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="100"/>
<source>Merge</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <location filename="../../options.ui" line="110"/>
<source>Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../options.ui"/>
+ <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="112"/>
- <location filename="../../scanFileOrFolder.cpp" line="138"/>
- <source>Copy of </source>
+ <location filename="../../scanFileOrFolder.cpp" line="218"/>
+ <location filename="../../scanFileOrFolder.cpp" line="282"/>
+ <source>%1 - copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../scanFileOrFolder.cpp" line="228"/>
+ <location filename="../../scanFileOrFolder.cpp" line="292"/>
+ <source>%1 - copy (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="157"/>
+ <location filename="../../scanFileOrFolder.cpp" line="326"/>
<source>The folder not exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../scanFileOrFolder.cpp" line="159"/>
+ <location filename="../../scanFileOrFolder.cpp" line="328"/>
<source>The folder is not readable</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins/CopyEngine/Ultracopier-0.3/ListThread.cpp b/plugins/CopyEngine/Ultracopier-0.3/ListThread.cpp
index 7f022d8..9856c3c 100644..100755
--- a/plugins/CopyEngine/Ultracopier-0.3/ListThread.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/ListThread.cpp
@@ -1,22 +1,13 @@
#include "ListThread.h"
-/// \todo do pushed or instant mount point (setDrive, ...)
-/// \todo semaphore to prevent dual mkpath
-/// \todo repair the mkpath, to use mkpath class before file transfer to have the folder
-/// \todo do QThread( parent )
-/** \todo when overwrite with large inode operation, it not start specificly the first in the list
- When that's is finish, send start file at real transfer start, not inode operation start **/
-/** \todo group setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists) and setAlwaysFileExistsAction(FileExistsAction alwaysDoThisActionForFileExists)
- and check if I can choose case by case if I wish overwrite, skip, ... */
-/// \todo move directly the folder when it's needed
-/// \todo connect folder error of mkpath and rmpath class
-
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);
@@ -39,7 +30,14 @@ ListThread::ListThread(FacilityInterface * facilityInterface)
doRightTransfer = 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);
@@ -49,8 +47,6 @@ ListThread::ListThread(FacilityInterface * facilityInterface)
connect(&timerUpdateDebugDialog,SIGNAL(timeout()),this,SLOT(timedUpdateDebugDialog()));
timerUpdateDebugDialog.start(ULTRACOPIER_PLUGIN_DEBUG_WINDOW_TIMER);
#endif
- connect(&timerActionDone,SIGNAL(timeout()), this,SLOT(sendActionDone()));
- connect(&timerProgression,SIGNAL(timeout()), this,SLOT(sendProgression()));
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);
@@ -65,16 +61,13 @@ ListThread::ListThread(FacilityInterface * facilityInterface)
emit askNewTransferThread();
mkpathTransfer.release();
- timerActionDone.setSingleShot(true);
- timerActionDone.setInterval(ULTRACOPIER_PLUGIN_TIME_UPDATE_TRASNFER_LIST);
- timerProgression.setSingleShot(true);
- timerProgression.setInterval(ULTRACOPIER_PLUGIN_TIME_UPDATE_PROGRESSION);
}
ListThread::~ListThread()
{
emit tryCancel();
waitCancel.acquire();
+ quit();
wait();
}
@@ -92,7 +85,7 @@ void ListThread::transferInodeIsClosed()
#ifdef ULTRACOPIER_PLUGIN_DEBUG
int countLocalParse=0;
#endif
- if(temp_transfer_thread->getStat()!=TransferThread::Idle)
+ if(temp_transfer_thread->getStat()!=TransferStat_Idle)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not idle!"));
return;
@@ -113,8 +106,7 @@ void ListThread::transferInodeIsClosed()
actionToDoListTransfer.removeAt(int_for_internal_loop);
if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0)
updateTheStatus();
- /// \todo add the oversize to all size here
- bytesTransfered+=temp_transfer_thread->transferSize;
+
temp_transfer_thread->transferId=0;
temp_transfer_thread->transferSize=0;
#ifdef ULTRACOPIER_PLUGIN_DEBUG
@@ -157,6 +149,17 @@ void ListThread::transferIsFinished()
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));
@@ -178,47 +181,37 @@ void ListThread::transferPutAtBottom()
#ifdef ULTRACOPIER_PLUGIN_DEBUG
int countLocalParse=0;
#endif
- int index=0;
- loop_sub_size_transfer_thread_search=transferThreadList.size();
- while(index<loop_sub_size_transfer_thread_search)
+ int indexAction=0;
+ while(indexAction<actionToDoListTransfer.size())
{
- if(transferThreadList.at(index)==transfer)
+ if(actionToDoListTransfer.at(indexAction).id==transfer->transferId)
{
- int indexAction=0;
- while(indexAction<actionToDoListTransfer.size())
- {
- if(actionToDoListTransfer.at(indexAction).id==transferThreadList.at(index)->transferId)
- {
- //push for interface at the end
- returnActionOnCopyList newAction;
- newAction.type=MoveItem;
- newAction.addAction.id=transferThreadList.at(index)->transferId;
- newAction.userAction.position=actionToDoListTransfer.size()-1;
- actionDone << newAction;
- //do the wait stat
- actionToDoListTransfer[index].isRunning=false;
- //move at the end
- actionToDoListTransfer.move(indexAction,actionToDoListTransfer.size()-1);
- //reset the thread list stat
- transferThreadList[index]->transferId=0;
- transferThreadList[index]->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(transferThreadList.at(index)->transferId).arg(index));
- transferThreadList[index]->transferId=0;
- transferThreadList[index]->transferSize=0;
- }
+ //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;
}
- index++;
+ 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
@@ -338,9 +331,12 @@ scanFileOrFolder * ListThread::newScanThread(CopyMode mode)
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()->setFilters(include,exclude);
scanFileOrFolderThreadsPool.last()->setCheckDestinationFolderExists(checkDestinationFolderExists && alwaysDoThisActionForFolderExists!=FolderExists_Merge);
if(scanFileOrFolderThreadsPool.size()==1)
updateTheStatus();
+ scanFileOrFolderThreadsPool.last()->setRenamingRules(firstRenamingRule,otherRenamingRule);
return scanFileOrFolderThreadsPool.last();
}
@@ -349,31 +345,16 @@ void ListThread::scanThreadHaveFinish(bool skipFirstRemove)
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"listing thread have finish, skipFirstRemove: "+QString::number(skipFirstRemove));
if(!skipFirstRemove)
{
- QObject * senderThread = sender();
+ 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()));
- bool isFound=false;
- int index=0;
- while(index<scanFileOrFolderThreadsPool.size())
- {
- if(senderThread==scanFileOrFolderThreadsPool.at(index))
- {
- if(index!=0)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"scanFileOrFolderThread is not the first (plugin copy engine)");
- delete scanFileOrFolderThreadsPool.at(index);
- scanFileOrFolderThreadsPool.removeAt(index);
- if(scanFileOrFolderThreadsPool.size()==0)
- updateTheStatus();
- isFound=true;
- break;
- }
- index++;
- }
- if(!isFound)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"sender pointer not found (plugin copy engine)");
+ delete senderThread;
+ scanFileOrFolderThreadsPool.removeOne(senderThread);
+ if(scanFileOrFolderThreadsPool.size()==0)
+ updateTheStatus();
}
}
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the next thread, scanFileOrFolderThreadsPool.size(): "+QString::number(scanFileOrFolderThreadsPool.size()));
@@ -407,7 +388,6 @@ void ListThread::scanThreadHaveFinish(bool skipFirstRemove)
void ListThread::startGeneralTransfer()
{
doNewActions_inode_manipulation();
- timerProgression.start();
}
// -> add thread safe, by Qt::BlockingQueuedConnection
@@ -512,6 +492,79 @@ 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");
@@ -603,7 +656,6 @@ void ListThread::cancel()
return;
}
stopIt=true;
- disconnect(this);
int index=0;
loop_size=transferThreadList.size();
while(index<loop_size)
@@ -624,6 +676,7 @@ void ListThread::cancel()
}
quit();
waitCancel.release();
+ emit canBeDeleted();
}
//speed limitation
@@ -634,7 +687,7 @@ qint64 ListThread::getSpeedLimitation()
bool ListThread::setSpeedLimitation(const qint64 &speedLimitation)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"maxSpeed: "+QString::number(maxSpeed));
+ ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"maxSpeed: "+QString::number(speedLimitation));
maxSpeed=speedLimitation;
int_for_loop=0;
loop_size=transferThreadList.size();
@@ -713,11 +766,10 @@ void ListThread::sendActionDone()
{
if(actionDone.size()>0)
{
+ ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
emit newActionOnList(actionDone);
actionDone.clear();
}
- if(actionToDoListTransfer.size()>0)
- timerActionDone.start();
}
//send progression
@@ -725,38 +777,48 @@ void ListThread::sendProgression()
{
if(actionToDoListTransfer.size()==0)
return;
- qint64 copiedSize,totalSize,localOverSize;
- QList<ProgressionItem> progressionList;
- TransferThread *thread;
oversize=0;
currentProgression=0;
int_for_loop=0;
loop_size=transferThreadList.size();
while(int_for_loop<loop_size)
{
- thread=transferThreadList.at(int_for_loop);
- if(thread->getStat()==TransferThread::Transfer)
+ temp_transfer_thread=transferThreadList.at(int_for_loop);
+ if(temp_transfer_thread->getStat()==TransferStat_Transfer || temp_transfer_thread->getStat()==TransferStat_Checksum)
{
- copiedSize=thread->copiedSize();
+ copiedSize=temp_transfer_thread->copiedSize();
+
+ //for the general progression
currentProgression+=copiedSize;
- if(copiedSize>(qint64)thread->transferSize)
- localOverSize=copiedSize-thread->transferSize;
- totalSize=thread->transferSize+localOverSize;
- ProgressionItem tempItem;
- tempItem.current=copiedSize;
- tempItem.id=thread->transferId;
+
+ //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);
- timerProgression.start();
+ realByteTransfered();
}
-//send the progression
+//send the progression, after full reset of the interface (then all is empty)
void ListThread::syncTransferList_internal()
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
@@ -770,7 +832,7 @@ void ListThread::syncTransferList_internal()
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 = AddingItem;
+ newAction.type = PreOperation;
newAction.addAction.id = item.id;
newAction.addAction.sourceFullPath = item.source.absoluteFilePath();
newAction.addAction.sourceFileName = item.source.fileName();
@@ -779,6 +841,7 @@ void ListThread::syncTransferList_internal()
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) {
@@ -793,15 +856,15 @@ void ListThread::syncTransferList_internal()
newAction.addAction.size = item.size;
newAction.addAction.mode = item.mode;
actionDone << newAction;
- if(transferThread->getStat()!=TransferThread::PreOperation)
+ if(transferThread->getStat()!=TransferStat_PreOperation)
{
returnActionOnCopyList newAction;
switch(transferThread->getStat())
{
- case TransferThread::Transfer:
+ case TransferStat_Transfer:
newAction.type=Transfer;
break;
- case TransferThread::PostTransfer:
+ case TransferStat_PostTransfer:
newAction.type=PostOperation;
break;
default:
@@ -818,9 +881,6 @@ void ListThread::syncTransferList_internal()
//add file transfer to do
quint64 ListThread::addToTransfer(const QFileInfo& source,const QFileInfo& destination,const CopyMode& mode)
{
- //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"source: "+source.absoluteFilePath()+", destination: "+destination.absoluteFilePath());
- if(actionToDoListTransfer.size()==0)
- timerActionDone.start();
//add to transfer list
numberOfTransferIntoToDoList++;
bytesToTransfer+= source.size();
@@ -843,7 +903,7 @@ quint64 ListThread::addToTransfer(const QFileInfo& source,const QFileInfo& desti
newAction.addAction.size = temp.size;
newAction.addAction.mode = mode;
actionDone << newAction;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"source: "+source.absoluteFilePath()+",destination: "+destination.absoluteFilePath()+", add entry: "+QString::number(temp.id));
+ 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;
}
@@ -867,6 +927,11 @@ void ListThread::removeItems(const QList<int> &ids)
//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;
@@ -897,6 +962,11 @@ void ListThread::moveItemsOnTop(QList<int> ids)
//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;
@@ -943,6 +1013,11 @@ void ListThread::moveItemsUp(QList<int> ids)
//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;
@@ -990,6 +1065,11 @@ void ListThread::moveItemsDown(QList<int> ids)
//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;
@@ -1020,19 +1100,66 @@ void ListThread::moveItemsOnBottom(QList<int> ids)
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;CopyEngine-0.3\n").toUtf8());
+ 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)
- transferFile.write(QString("Copy;%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8());
- else
- transferFile.write(QString("Move;%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8());
+ {
+ 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();
}
@@ -1051,7 +1178,7 @@ void ListThread::importTransferList(const QString &fileName)
if(transferFile.open(QIODevice::ReadOnly))
{
QString content;
- QByteArray data=transferFile.readLine();
+ QByteArray data=transferFile.readLine(64);
if(data.size()<=0)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Problem at the reading, or file size is null"));
@@ -1059,19 +1186,47 @@ void ListThread::importTransferList(const QString &fileName)
return;
}
content=QString::fromUtf8(data);
- if(content!="Ultracopier-0.3;CopyEngine-0.3\n")
+ 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 errorFound=false,ignored_by_wrong_type=false;
- QRegExp correctLine("^(Copy|Move);[^;]+;[^;]+\n$");
+ 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 mode;
+ CopyMode tempMode;
do
{
- data=transferFile.readLine();
+ data=transferFile.readLine(65535*2);
if(data.size()>0)
{
content=QString::fromUtf8(data);
@@ -1080,12 +1235,20 @@ void ListThread::importTransferList(const QString &fileName)
{
content.remove("\n");
args=content.split(";");
- 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")
- mode=Copy;
+ 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
- mode=Move;
- addToTransfer(QFileInfo(args.at(1)),QFileInfo(args.at(2)),mode);
+ {
+ 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
{
@@ -1098,8 +1261,6 @@ void ListThread::importTransferList(const QString &fileName)
transferFile.close();
if(errorFound)
emit warningTransferList(tr("Some error have been found during the line parsing"));
- else if(ignored_by_wrong_type)
- emit warningTransferList(tr("Some list is ignored because it not corresponds to the window transfer type"));
// emit newActionOnList();
}
else
@@ -1113,7 +1274,7 @@ void ListThread::importTransferList(const QString &fileName)
//do new actions
void ListThread::doNewActions_start_transfer()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("actionToDoListTransfer.size(): %1, numberOfTranferRuning: ").arg(actionToDoListTransfer.size()).arg(numberOfTranferRuning));
+ ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("actionToDoListTransfer.size(): %1, numberOfTranferRuning: %2").arg(actionToDoListTransfer.size()).arg(numberOfTranferRuning));
if(stopIt || putInPause)
return;
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
@@ -1122,7 +1283,7 @@ void ListThread::doNewActions_start_transfer()
loop_size=transferThreadList.size();
while(int_for_loop<loop_size && numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER)
{
- if(transferThreadList.at(int_for_loop)->getStat()==TransferThread::WaitForTheTransfer)
+ if(transferThreadList.at(int_for_loop)->getStat()==TransferStat_WaitForTheTransfer)
{
transferThreadList.at(int_for_loop)->startTheTransfer();
numberOfTranferRuning++;
@@ -1132,7 +1293,7 @@ void ListThread::doNewActions_start_transfer()
int_for_loop=0;
while(int_for_loop<loop_size && numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER)
{
- if(transferThreadList.at(int_for_loop)->getStat()==TransferThread::PreOperation)
+ if(transferThreadList.at(int_for_loop)->getStat()==TransferStat_PreOperation)
{
transferThreadList.at(int_for_loop)->startTheTransfer();
numberOfTranferRuning++;
@@ -1195,7 +1356,7 @@ void ListThread::doNewActions_inode_manipulation()
I this case it lose all data
*/
currentTransferThread=transferThreadList[int_for_transfer_thread_search];
- if(currentTransferThread->getStat()==TransferThread::Idle && currentTransferThread->transferId==0) // /!\ important!
+ if(currentTransferThread->getStat()==TransferStat_Idle && currentTransferThread->transferId==0) // /!\ important!
{
currentTransferThread->transferId=currentActionToDoTransfer.id;
currentTransferThread->transferSize=currentActionToDoTransfer.size;
@@ -1265,7 +1426,7 @@ void ListThread::restartTransferIfItCan()
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!"));
return;
}
- if(numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER && transfer->getStat()==TransferThread::WaitForTheTransfer)
+ if(numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER && transfer->getStat()==TransferStat_WaitForTheTransfer)
{
transfer->startTheTransfer();
numberOfTranferRuning++;
@@ -1274,36 +1435,70 @@ void ListThread::restartTransferIfItCan()
}
/// \brief update the transfer stat
-void ListThread::newTransferStat(TransferThread::TransferStat stat,quint64 id)
+void ListThread::newTransferStat(TransferStat stat,quint64 id)
{
returnActionOnCopyList newAction;
switch(stat)
{
- case TransferThread::Idle:
+ case TransferStat_Idle:
return;
break;
- case TransferThread::PreOperation:
+ case TransferStat_PreOperation:
return;
break;
- case TransferThread::WaitForTheTransfer:
+ case TransferStat_WaitForTheTransfer:
return;
break;
- case TransferThread::Transfer:
+ case TransferStat_Transfer:
newAction.type=Transfer;
break;
- case TransferThread::PostTransfer:
+ case TransferStat_PostTransfer:
+ case TransferStat_PostOperation:
newAction.type=PostOperation;
break;
- case TransferThread::PostOperation:
- return;
+ 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;
@@ -1358,24 +1553,27 @@ void ListThread::timedUpdateDebugDialog()
QString stat;
switch(transferThreadList.at(index)->getStat())
{
- case TransferThread::Idle:
+ case TransferStat_Idle:
stat="Idle";
break;
- case TransferThread::PreOperation:
+ case TransferStat_PreOperation:
stat="PreOperation";
break;
- case TransferThread::WaitForTheTransfer:
+ case TransferStat_WaitForTheTransfer:
stat="WaitForTheTransfer";
break;
- case TransferThread::Transfer:
+ case TransferStat_Transfer:
stat="Transfer";
break;
- case TransferThread::PostOperation:
+ case TransferStat_PostOperation:
stat="PostOperation";
break;
- case TransferThread::PostTransfer:
+ case TransferStat_PostTransfer:
stat="PostTransfer";
break;
+ case TransferStat_Checksum:
+ stat="Checksum";
+ break;
default:
stat=QString("??? (%1)").arg(transferThreadList.at(index)->getStat());
break;
@@ -1454,6 +1652,13 @@ void ListThread::createTransferThread()
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);
+
#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
@@ -1464,9 +1669,14 @@ void ListThread::createTransferThread()
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
diff --git a/plugins/CopyEngine/Ultracopier-0.3/ListThread.h b/plugins/CopyEngine/Ultracopier-0.3/ListThread.h
index f053e86..ef6b7f8 100644..100755
--- a/plugins/CopyEngine/Ultracopier-0.3/ListThread.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/ListThread.h
@@ -98,6 +98,12 @@ public:
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
@@ -128,10 +134,14 @@ public slots:
/** \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
@@ -162,7 +172,16 @@ public slots:
void restartTransferIfItCan();
/// \brief update the transfer stat
- void newTransferStat(TransferThread::TransferStat stat,quint64 id);
+ 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;
@@ -183,10 +202,20 @@ private:
qint64 actualRealByteTransfered;
int preOperationNumber;
int numberOfTranferRuning;
- QList<quint64> orderStarted;///< list the order id
- int maxSpeed;
+ 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);
@@ -218,7 +247,10 @@ private:
QSemaphore waitConstructor,waitCancel;
int actionToDoListTransfer_count,actionToDoListInode_count;
bool doTransfer,doInode;
- qint64 oversize,currentProgression;
+ 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;
@@ -231,10 +263,9 @@ private:
QPair<quint64,quint64> returnPairQuint64ToCopyEngine;
QList<ItemOfCopyList> returnListItemOfCopyListToCopyEngine;
ItemOfCopyList returnItemOfCopyListToCopyEngine;
- //send action done timer
- QTimer timerActionDone;
- //send progression timer
- QTimer timerProgression;
+ ProgressionItem tempItem;
+
+ void realByteTransfered();
private slots:
void scanThreadHaveFinish(bool skipFirstRemove=false);
void updateTheStatus();
@@ -271,11 +302,7 @@ private slots:
quint64 addToMkPath(const QString& folder);
//add rm path to do
void addToRmPath(const QString& folder,const int& inodeToRemove);
- //send action done
- void sendActionDone();
- //send progression
- void sendProgression();
- //send the progression
+ //send the progression, after full reset of the interface (then all is empty)
void syncTransferList_internal();
signals:
//send information about the copy
@@ -298,7 +325,8 @@ signals:
void newErrorAction(QString action);
void isInPause(bool);
- void cancelAll();
+ //when can be deleted
+ void canBeDeleted();
//send error occurred
void error(QString path,quint64 size,QDateTime mtime,QString error);
@@ -335,6 +363,8 @@ signals:
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/CopyEngine/Ultracopier-0.3/ListThread_InodeAction.cpp b/plugins/CopyEngine/Ultracopier-0.3/ListThread_InodeAction.cpp
index 0fd2cf2..0f4c2f4 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/ListThread_InodeAction.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/ListThread_InodeAction.cpp
@@ -5,6 +5,8 @@
\version 0.3
\date 2011 */
+#ifdef LISTTHREAD_H
+
//do the inode action
actionToDoInode& currentActionToDoInode=actionToDoListInode[int_for_internal_loop];
switch(currentActionToDoInode.type)
@@ -52,3 +54,5 @@ default:
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong type at inode action"));
return;
}
+
+#endif
diff --git a/plugins/CopyEngine/Ultracopier-0.3/ReadThread.cpp b/plugins/CopyEngine/Ultracopier-0.3/ReadThread.cpp
index fb97ec5..3c7bfc1 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/ReadThread.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/ReadThread.cpp
@@ -33,6 +33,7 @@ void ReadThread::run()
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();
}
@@ -69,6 +70,8 @@ void ReadThread::stop()
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop()");
stopIt=true;
+ if(isOpen.available()>0)
+ return;
emit internalStartClose();
}
@@ -114,7 +117,6 @@ bool ReadThread::seek(qint64 position)
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with: "+QString::number(position));
if(position>file.size())
return false;
- lastGoodPosition=position;
return file.seek(position);
}
@@ -128,6 +130,84 @@ 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);
@@ -156,6 +236,7 @@ bool ReadThread::internalOpen(bool resetLastGoodPosition)
putInPause=false;
if(resetLastGoodPosition)
{
+ lastGoodPosition=0;
seek(0);
emit opened();
}
@@ -274,8 +355,6 @@ void ReadThread::internalRead()
break;
}
}
- /*if(lastGoodPosition>size)
- oversize=lastGoodPosition-size;*/
}
/*
if(lastGoodPosition>16*1024)
@@ -415,15 +494,21 @@ void ReadThread::fakeReadIsStopped()
emit readIsStopped();
}
+/// do the checksum
+void ReadThread::startCheckSum()
+{
+ emit internalStartChecksum();
+}
+
qint64 ReadThread::getLastGoodPosition()
{
- if(lastGoodPosition>file.size())
+ /*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;
+ else*/
+ return lastGoodPosition;
}
//reopen after an error
@@ -448,8 +533,7 @@ bool ReadThread::internalReopen()
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] source file have changed since the last open, restart all");
//fix this function like the close function
- lastGoodPosition=0;
- if(internalOpen(false))
+ if(internalOpen(true))
{
emit resumeAfterErrorByRestartAll();
return true;
diff --git a/plugins/CopyEngine/Ultracopier-0.3/ReadThread.h b/plugins/CopyEngine/Ultracopier-0.3/ReadThread.h
index 537134a..1d1eabc 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/ReadThread.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/ReadThread.h
@@ -13,14 +13,13 @@
#include <QTimer>
#include <QDateTime>
#include <QFileInfo>
+#include <QCryptographicHash>
#include "WriteThread.h"
#include "Environment.h"
#include "StructEnumDefinition_CopyEngine.h"
#include "AvancedQFile.h"
-/// \todo do fake open/close
-
/// \brief Thread changed to open/close and read the source file
class ReadThread : public QThread
{
@@ -65,7 +64,8 @@ public:
Idle=0,
InodeOperation=1,
Read=2,
- WaitWritePipe=3
+ WaitWritePipe=3,
+ Checksum=4
};
ReadStat stat;
#endif
@@ -79,9 +79,14 @@ public:
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();
@@ -93,13 +98,16 @@ signals:
void checkIfIsWait();
void resumeAfterErrorByRestartAll();
void resumeAfterErrorByRestartAtTheLastPosition();
+ void checksumFinish(const QByteArray&);
// internal signals
- void internalStartOpen();
+ 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;
@@ -130,7 +138,6 @@ private slots:
bool internalReopen();
void internalRead();
void internalClose(bool callByTheDestructor=false);
- void postOperation();
void isInWait();
};
diff --git a/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.cpp b/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.cpp
new file mode 100644
index 0000000..a09f66a
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.cpp
@@ -0,0 +1,85 @@
+#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/CopyEngine/Ultracopier-0.3/RenamingRules.h b/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.h
new file mode 100644
index 0000000..2fd9580
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.h
@@ -0,0 +1,34 @@
+#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/CopyEngine/Ultracopier-0.3/RenamingRules.ui b/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.ui
new file mode 100644
index 0000000..9e84f4b
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/RenamingRules.ui
@@ -0,0 +1,129 @@
+<?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/CopyEngine/Ultracopier-0.3/RmPath.cpp b/plugins/CopyEngine/Ultracopier-0.3/RmPath.cpp
index e7617fc..a65fb97 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/RmPath.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/RmPath.cpp
@@ -83,7 +83,7 @@ bool RmPath::rmpath(const QDir &dir)
else
{
//return the fonction for scan the new folder
- if(!rmpath(dir.absolutePath()+fileInfo.fileName()+'/'))
+ if(!rmpath(dir.absolutePath()+'/'+fileInfo.fileName()+'/'))
allHaveWork=false;
}
}
diff --git a/plugins/CopyEngine/Ultracopier-0.3/StructEnumDefinition_CopyEngine.h b/plugins/CopyEngine/Ultracopier-0.3/StructEnumDefinition_CopyEngine.h
index 88971aa..90af91b 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/StructEnumDefinition_CopyEngine.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/StructEnumDefinition_CopyEngine.h
@@ -4,6 +4,9 @@
\version 0.3
\date 2010 */
+#include <QString>
+#include <QRegExp>
+
#ifndef STRUCTDEF_COPYENGINE_H
#define STRUCTDEF_COPYENGINE_H
@@ -29,6 +32,18 @@ enum FileErrorAction
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
{
@@ -48,4 +63,28 @@ enum FolderExistsAction
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/CopyEngine/Ultracopier-0.3/TransferThread.cpp b/plugins/CopyEngine/Ultracopier-0.3/TransferThread.cpp
index 359a705..7550d8c 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/TransferThread.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/TransferThread.cpp
@@ -6,22 +6,21 @@
#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
-/// \todo manage case resume after error, because previously inode opt free before
-/// \todo manage error in pre and post operation
-/// \todo remove destination when canceled
-/// \todo test if source if closed by end but write error
-/// \todo pointer for readThread and writeThread to destroy the read before the write (prevent dead lock)
-
-/// \bug continue progress when write error
+#ifndef Q_OS_UNIX
+#include <windows.h>
+#endif
TransferThread::TransferThread()
{
start();
moveToThread(this);
needSkip = false;
- stat = Idle;
+ transfer_stat = TransferStat_Idle;
stopIt = false;
fileExistsAction = FileExists_NotSet;
alwaysDoFileExistsAction= FileExists_NotSet;
@@ -46,7 +45,7 @@ TransferThread::~TransferThread()
void TransferThread::run()
{
//ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start: "+QString::number((qint64)QThread::currentThreadId()));
- stat = Idle;
+ transfer_stat = TransferStat_Idle;
stopIt = false;
fileExistsAction = FileExists_NotSet;
alwaysDoFileExistsAction= FileExists_NotSet;
@@ -57,17 +56,18 @@ void TransferThread::run()
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);
+ //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);
- connect(&readThread,SIGNAL(readIsStopped()), this, SLOT(readIsFinish()), 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);
@@ -80,13 +80,12 @@ void TransferThread::run()
connect(&writeThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),Qt::QueuedConnection);
#endif
- /// \todo do the current post opt only after the read write opt
exec();
}
-TransferThread::TransferStat TransferThread::getStat()
+TransferStat TransferThread::getStat()
{
- return stat;
+ return transfer_stat;
}
void TransferThread::startTheTransfer()
@@ -96,7 +95,7 @@ void TransferThread::startTheTransfer()
void TransferThread::internalStartTheTransfer()
{
- if(stat==Idle)
+ if(transfer_stat==TransferStat_Idle)
{
if(mode!=Move)
{
@@ -105,12 +104,12 @@ void TransferThread::internalStartTheTransfer()
}
return;
}
- if(stat==PostOperation)
+ if(transfer_stat==TransferStat_PostOperation)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at PostOperation");
return;
}
- if(stat==Transfer)
+ if(transfer_stat==TransferStat_Transfer)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at Transfer");
return;
@@ -133,13 +132,13 @@ void TransferThread::internalStartTheTransfer()
void TransferThread::setFiles(const QString &source,const qint64 &size,const QString &destination,const CopyMode &mode)
{
- if(stat!=Idle)
+ 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()
- stat = PreOperation;
+ transfer_stat = TransferStat_PreOperation;
//emit pushStat(stat,transferId);
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start, source: "+source+", destination: "+destination);
this->source = source;
@@ -150,13 +149,14 @@ void TransferThread::setFiles(const QString &source,const qint64 &size,const QSt
canStartTransfer = false;
sended_state_preOperationStopped= false;
canBeMovedDirectlyVariable = false;
+ fileContentError = false;
resetExtraVariable();
emit internalStartPreOperation();
}
void TransferThread::setFileExistsAction(const FileExistsAction &action)
{
- if(stat!=PreOperation)
+ if(transfer_stat!=TransferStat_PreOperation)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
return;
@@ -177,7 +177,7 @@ void TransferThread::setFileExistsAction(const FileExistsAction &action)
void TransferThread::setFileRename(const QString &nameForRename)
{
- if(stat!=PreOperation)
+ if(transfer_stat!=TransferStat_PreOperation)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
return;
@@ -207,6 +207,7 @@ void TransferThread::resetExtraVariable()
readIsReadyVariable = false;
writeIsReadyVariable = false;
readIsFinishVariable = false;
+ writeIsFinishVariable = false;
readIsClosedVariable = false;
writeIsClosedVariable = false;
needSkip = false;
@@ -217,7 +218,7 @@ void TransferThread::resetExtraVariable()
void TransferThread::preOperation()
{
- if(stat!=PreOperation)
+ if(transfer_stat!=TransferStat_PreOperation)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination);
return;
@@ -258,7 +259,7 @@ void TransferThread::tryOpen()
if(!writeIsOpenVariable)
{
writeError=false;
- writeThread.open(destination,sourceInfo.size());
+ writeThread.open(destination,size,osBuffer && (!osBufferLimited || (osBufferLimited && size<osBufferLimit)));
}
}
@@ -275,7 +276,6 @@ bool TransferThread::isSame()
bool TransferThread::destinationExists()
{
- /// \todo do the overwrite: FileExists_OverwriteIfNotSameModificationDate
//check if destination exists
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] overwrite: "+QString::number(fileExistsAction)+", always action: "+QString::number(alwaysDoFileExistsAction));
if(alwaysDoFileExistsAction==FileExists_Overwrite || readError || writeError)
@@ -284,7 +284,7 @@ bool TransferThread::destinationExists()
{
if(fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_Skip)
{
- stat=Idle;
+ transfer_stat=TransferStat_Idle;
emit postOperationStopped();
return true;
}
@@ -293,31 +293,42 @@ bool TransferThread::destinationExists()
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(!fileName.startsWith(tr("Copy of ")))
- fileName=tr("Copy of ")+fileName;
- else
+ if(num==1)
{
- if(fileName.contains(QRegExp("_[0-9]+$")))
+ if(firstRenamingRule=="")
+ newFileName=tr("%1 - copy").arg(fileName);
+ else
{
- QString number=fileName;
- number.replace(QRegExp("^.*_([0-9]+)$"),"\\1");
- int num=number.toInt()+1;
- fileName.remove(QRegExp("[0-9]+$"));
- fileName+=QString::number(num);
+ newFileName=firstRenamingRule;
+ newFileName.replace("%name%",fileName);
}
+ }
+ else
+ {
+ if(otherRenamingRule=="")
+ newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
else
- fileName+="_2";
+ {
+ newFileName=otherRenamingRule;
+ newFileName.replace("%name%",fileName);
+ newFileName.replace("%number%",QString::number(num));
+ }
}
- destination=absolutePath+QDir::separator()+fileName+suffix;
+ destination=absolutePath+QDir::separator()+newFileName+suffix;
destinationInfo.setFile(destination);
+ num++;
}
while(destinationInfo.exists());
return false;
@@ -328,7 +339,7 @@ bool TransferThread::destinationExists()
return false;
else
{
- stat=Idle;
+ transfer_stat=TransferStat_Idle;
emit postOperationStopped();
return true;
}
@@ -339,7 +350,7 @@ bool TransferThread::destinationExists()
return false;
else
{
- stat=Idle;
+ transfer_stat=TransferStat_Idle;
emit postOperationStopped();
return true;
}
@@ -423,7 +434,7 @@ void TransferThread::ifCanStartTransfer()
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] readIsReadyVariable: "+QString::number(readIsReadyVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable));
if(readIsReadyVariable && writeIsReadyVariable)
{
- stat=WaitForTheTransfer;
+ transfer_stat=TransferStat_WaitForTheTransfer;
sended_state_readStopped = false;
sended_state_writeStopped = false;
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stat=WaitForTheTransfer");
@@ -435,7 +446,7 @@ void TransferThread::ifCanStartTransfer()
if(canStartTransfer)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stat=Transfer");
- stat=Transfer;
+ transfer_stat=TransferStat_Transfer;
if(!canBeMovedDirectlyVariable)
{
needRemove=true;
@@ -443,7 +454,7 @@ void TransferThread::ifCanStartTransfer()
}
else
tryMoveDirectly();
- emit pushStat(stat,transferId);
+ emit pushStat(transfer_stat,transferId);
}
//else
//emit pushStat(stat,transferId);
@@ -481,6 +492,7 @@ void TransferThread::setKeepDate(const bool keepDate)
void TransferThread::setMaxSpeed(int maxSpeed)
{
int interval=readThread.setMaxSpeed(maxSpeed);
+ writeThread.setMaxSpeed(maxSpeed);
if(maxSpeed>0)
{
clockForTheCopySpeed.setInterval(interval);
@@ -498,18 +510,22 @@ void TransferThread::setMaxSpeed(int maxSpeed)
bool TransferThread::setBlockSize(const unsigned int blockSize)
{
this->blockSize=blockSize;
- return readThread.setBlockSize(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();
}
@@ -517,6 +533,8 @@ void TransferThread::resume()
void TransferThread::stop()
{
stopIt=true;
+ if(transfer_stat==TransferStat_Idle)
+ return;
readThread.stop();
writeThread.stop();
}
@@ -531,8 +549,82 @@ void TransferThread::readIsFinish()
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
readIsFinishVariable=true;
canStartTransfer=false;
- stat=PostTransfer;
- emit pushStat(stat,transferId);
+ //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()
@@ -569,14 +661,19 @@ bool TransferThread::checkIfAllIsClosed()
if((!readIsReadyVariable || readIsClosedVariable) && (!writeIsReadyVariable || writeIsClosedVariable))
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit internalStartPostOperation() to do the real post operation");
- stat=PostOperation;
+ transfer_stat=TransferStat_PostOperation;
//emit pushStat(stat,transferId);
emit internalStartPostOperation();
return true;
}
else
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] wait self close");
+ 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;
}
}
@@ -585,9 +682,9 @@ bool TransferThread::checkIfAllIsClosed()
/// \todo the rights copy
void TransferThread::postOperation()
{
- if(stat!=PostOperation)
+ if(transfer_stat!=TransferStat_PostOperation)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] need be in transfer, source: "+source+", destination: "+destination+", stat:"+QString::number(stat));
+ 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");
@@ -633,7 +730,7 @@ void TransferThread::postOperation()
else
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] try remove destination but not exists!");
}
- stat=Idle;
+ transfer_stat=TransferStat_Idle;
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit postOperationStopped()");
emit postOperationStopped();
}
@@ -673,6 +770,7 @@ void TransferThread::getWriteError()
return;
}
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
+ fileContentError = true;
writeError = true;
writeIsReadyVariable = false;
writeError_source_seeked = false;
@@ -688,6 +786,7 @@ void TransferThread::getReadError()
return;
}
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
+ fileContentError = true;
readError = true;
writeIsReadyVariable = false;
readIsReadyVariable = false;
@@ -698,16 +797,16 @@ void TransferThread::getReadError()
void TransferThread::retryAfterError()
{
//opening error
- if(stat==PreOperation)
+ if(transfer_stat==TransferStat_PreOperation)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] is not idle, source: "+source+", destination: "+destination+", stat: "+QString::number(stat));
+ 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(stat!=PostOperation && stat!=Transfer)
+ 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(stat));
+ ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] is not idle, source: "+source+", destination: "+destination+", stat: "+QString::number(transfer_stat));
return;
}
if(canBeMovedDirectlyVariable)
@@ -716,6 +815,26 @@ void TransferThread::retryAfterError()
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");
@@ -739,6 +858,11 @@ void TransferThread::writeThreadIsReopened()
return;
}
writeError_destination_reopened=true;
+ if(transfer_stat==TransferStat_Checksum)
+ {
+ writeThread.startCheckSum();
+ return;
+ }
if(writeError_source_seeked && writeError_destination_reopened)
resumeTransferAfterWriteError();
}
@@ -796,6 +920,7 @@ void TransferThread::readIsStopped()
}
else
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] drop dual read stopped");
+ readIsFinish();
}
void TransferThread::writeIsStopped()
@@ -809,6 +934,7 @@ void TransferThread::writeIsStopped()
}
else
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] double event dropped");
+ writeIsFinish();
}
void TransferThread::timeOfTheBlockCopyFinished()
@@ -840,32 +966,100 @@ bool TransferThread::changeFileDateTime(const QString &source,const QString &des
if(maxTime>=sourceInfo.lastModified())
return;
*/
- QFileInfo fileInfo(destination);
- time_t ctime=fileInfo.created().toTime_t();
- time_t actime=fileInfo.lastRead().toTime_t();
- time_t modtime=fileInfo.lastModified().toTime_t();
- #ifdef Q_CC_GNU
- //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(source.toLatin1().data(),&butime)==0;
+ /** 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
- return false;
+ #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 true;
+ return false;
}
//skip the copy
void TransferThread::skip()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with stat: "+QString::number(stat));
- switch(stat)
+ ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with stat: "+QString::number(transfer_stat));
+ switch(transfer_stat)
{
- case PreOperation:
- case WaitForTheTransfer:
+ 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
@@ -877,7 +1071,7 @@ void TransferThread::skip()
writeThread.stop();
}
break;
- case Transfer:
+ 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())
@@ -888,7 +1082,18 @@ void TransferThread::skip()
writeThread.stop();
}
break;
- case PostOperation:
+ 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;
@@ -901,11 +1106,13 @@ void TransferThread::skip()
//return info about the copied size
qint64 TransferThread::copiedSize()
{
- switch(stat)
+ switch(transfer_stat)
{
- case Transfer:
- case PostOperation:
+ case TransferStat_Transfer:
+ case TransferStat_PostOperation:
return readThread.getLastGoodPosition();
+ case TransferStat_Checksum:
+ return transferSize;
default:
return 0;
}
@@ -917,6 +1124,11 @@ void TransferThread::putAtBottom()
emit tryPutAtBottom();
}
+void TransferThread::set_osBufferLimit(unsigned int osBufferLimit)
+{
+ this->osBufferLimit=osBufferLimit;
+}
+
#ifdef ULTRACOPIER_PLUGIN_DEBUG
//to set the id
void TransferThread::setId(int id)
@@ -942,6 +1154,9 @@ QChar TransferThread::readingLetter()
case ReadThread::WaitWritePipe:
return 'W';
break;
+ case ReadThread::Checksum:
+ return 'S';
+ break;
default:
return '?';
}
@@ -963,6 +1178,12 @@ QChar TransferThread::writingLetter()
case WriteThread::Close:
return 'C';
break;
+ case WriteThread::Read:
+ return 'R';
+ break;
+ case WriteThread::Checksum:
+ return 'S';
+ break;
default:
return '?';
}
@@ -975,3 +1196,50 @@ 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/CopyEngine/Ultracopier-0.3/TransferThread.h b/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h
index 37aa608..c32ccf3 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h
@@ -27,16 +27,6 @@ class TransferThread : public QThread
public:
explicit TransferThread();
~TransferThread();
- /// \brief to have the transfer status
- enum TransferStat
- {
- Idle=0,
- PreOperation=1,
- WaitForTheTransfer=2,
- Transfer=3,
- PostTransfer=4,
- PostOperation=5
- };
/// \brief get transfer stat
TransferStat getStat();
/// \brief get drive of an file or folder
@@ -57,6 +47,15 @@ public:
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:
@@ -114,16 +113,23 @@ public slots:
qint64 copiedSize();
/// \brief put the current file at bottom
void putAtBottom();
+
+ 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();
@@ -142,7 +148,7 @@ private:
MoveReturn_moved=1,
MoveReturn_error=2
};
- TransferStat stat;
+ TransferStat transfer_stat;
ReadThread readThread;
WriteThread writeThread;
QString source;
@@ -160,6 +166,7 @@ private:
bool readIsClosedVariable;
bool writeIsClosedVariable;
bool canBeMovedDirectlyVariable;
+ QByteArray sourceChecksum,destinationChecksum;
volatile bool stopIt;
volatile bool canStartTransfer;
int blockSize;
@@ -174,9 +181,18 @@ private:
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();
diff --git a/plugins/CopyEngine/Ultracopier-0.3/Variable.h b/plugins/CopyEngine/Ultracopier-0.3/Variable.h
index a04d7eb..f39b8a6 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/Variable.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/Variable.h
@@ -27,6 +27,8 @@
#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/CopyEngine/Ultracopier-0.3/WriteThread.cpp b/plugins/CopyEngine/Ultracopier-0.3/WriteThread.cpp
index fc46d1f..448e8dc 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/WriteThread.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/WriteThread.cpp
@@ -5,7 +5,6 @@
WriteThread::WriteThread()
{
stopIt=false;
- /// \test lot of level of priority
isOpen.release();
start();
moveToThread(this);
@@ -15,15 +14,22 @@ WriteThread::WriteThread()
stat=Idle;
#endif
CurentCopiedSize=0;
+ buffer=false;
+ putInPause=false;
+ needRemoveTheFile=false;
+ blockSize=1024*1024;
}
WriteThread::~WriteThread()
{
- stop();
+ stopIt=true;
+ needRemoveTheFile=true;
freeBlock.release();
+ // useless because stopIt will close all thread, but if thread not runing run it
+ //endIsDetected();
emit internalStartClose();
- disconnect(this);
isOpen.acquire();
+ disconnect(this);
quit();
wait();
}
@@ -36,6 +42,7 @@ void WriteThread::run()
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();
}
@@ -92,7 +99,10 @@ bool WriteThread::internalOpen()
if(stopIt)
return false;
//try open it
- if(file.open(QIODevice::ReadWrite))
+ QIODevice::OpenMode flags=QIODevice::ReadWrite;
+ if(!buffer)
+ flags|=QIODevice::Unbuffered;
+ if(file.open(flags))
{
if(stopIt)
return false;
@@ -107,6 +117,7 @@ bool WriteThread::internalOpen()
stat=Idle;
#endif
isOpen.acquire();
+ needRemoveTheFile=false;
return true;
}
else
@@ -123,7 +134,7 @@ bool WriteThread::internalOpen()
}
}
-void WriteThread::open(const QString &name,const quint64 &startSize)
+void WriteThread::open(const QString &name,const quint64 &startSize,const bool &buffer)
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open destination: "+name);
if(stopIt)
@@ -131,6 +142,7 @@ void WriteThread::open(const QString &name,const quint64 &startSize)
fakeMode=false;
this->name=name;
this->startSize=startSize;
+ this->buffer=buffer;
endDetected=false;
emit internalStartOpen();
}
@@ -170,11 +182,15 @@ bool WriteThread::write(const QByteArray &data)
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();
- //emit internalStartClose();
+ //for the stop for skip: void TransferThread::skip()
+ emit internalStartClose();
}
void WriteThread::flushBuffer()
@@ -262,11 +278,20 @@ void WriteThread::internalClose(bool emitSignal)
#ifdef ULTRACOPIER_PLUGIN_DEBUG
stat=Close;
#endif
- if(!fakeMode)
+ if(!fakeMode && file.isOpen())
{
- if(startSize!=CurentCopiedSize)
- file.resize(CurentCopiedSize);
+ 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;
@@ -294,6 +319,7 @@ void WriteThread::reopen()
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start");
stopIt=true;
+ endDetected=false;
emit internalStartReopen();
}
@@ -324,12 +350,150 @@ 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();
diff --git a/plugins/CopyEngine/Ultracopier-0.3/WriteThread.h b/plugins/CopyEngine/Ultracopier-0.3/WriteThread.h
index 7a9b4b7..3683c27 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/WriteThread.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/WriteThread.h
@@ -12,6 +12,7 @@
#include <QString>
#include <QMutex>
#include <QSemaphore>
+#include <QCryptographicHash>
#include "Environment.h"
#include "StructEnumDefinition_CopyEngine.h"
@@ -30,7 +31,7 @@ protected:
void run();
public:
/// \brief open the destination to open it
- void open(const QString &name,const quint64 &startSize);
+ void open(const QString &name,const quint64 &startSize,const bool &buffer);
/// \brief to return the error string
QString errorString();
/// \brief to stop all
@@ -46,7 +47,9 @@ public:
Idle=0,
InodeOperation=1,
Write=2,
- Close=3
+ Close=3,
+ Read=5,
+ Checksum=6
};
WriteStat stat;
#endif
@@ -56,6 +59,14 @@ public:
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();
@@ -67,6 +78,8 @@ public slots:
void reopen();
/// \brief flush and seek to zero
void flushAndSeekToZero();
+ /// do the checksum
+ void checkSum();
signals:
void error();
void opened();
@@ -75,8 +88,10 @@ signals:
void writeIsStopped();
void flushedAndSeekedToZero();
void closed();
+ void checksumFinish(const QByteArray&);
//internal signals
void internalStartOpen();
+ void internalStartChecksum();
void internalStartReopen();
void internalStartWrite();
void internalStartClose();
@@ -89,9 +104,16 @@ private:
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
@@ -102,6 +124,8 @@ private:
quint64 startSize;
QSemaphore *mkpathTransfer;
bool fakeMode;
+ bool buffer;
+ bool needRemoveTheFile;
private slots:
bool internalOpen();
void internalWrite();
diff --git a/plugins/CopyEngine/Ultracopier-0.3/copyEngine-collision-and-error.cpp b/plugins/CopyEngine/Ultracopier-0.3/copyEngine-collision-and-error.cpp
index 81a75bd..7ec07c2 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/copyEngine-collision-and-error.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/copyEngine-collision-and-error.cpp
@@ -48,7 +48,7 @@ void copyEngine::fileAlreadyExists(QFileInfo source,QFileInfo destination,bool i
}
dialogIsOpen=true;
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- fileIsSameDialog dialog(interface,source);
+ fileIsSameDialog dialog(interface,source,firstRenamingRule,otherRenamingRule);
emit isInPause(true);
dialog.exec();/// \bug crash when external close
FileExistsAction newAction=dialog.getAction();
@@ -117,7 +117,7 @@ void copyEngine::fileAlreadyExists(QFileInfo source,QFileInfo destination,bool i
}
dialogIsOpen=true;
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- fileExistsDialog dialog(interface,source,destination);
+ fileExistsDialog dialog(interface,source,destination,firstRenamingRule,otherRenamingRule);
emit isInPause(true);
dialog.exec();/// \bug crash when external close
FileExistsAction newAction=dialog.getAction();
@@ -297,7 +297,7 @@ void copyEngine::folderAlreadyExists(QFileInfo source,QFileInfo destination,bool
}
dialogIsOpen=true;
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog");
- folderExistsDialog dialog(interface,source,isSame,destination);
+ 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));
diff --git a/plugins/CopyEngine/Ultracopier-0.3/copyEngine.cpp b/plugins/CopyEngine/Ultracopier-0.3/copyEngine.cpp
index 362d332..950cfd3 100644..100755
--- a/plugins/CopyEngine/Ultracopier-0.3/copyEngine.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/copyEngine.cpp
@@ -12,71 +12,25 @@
#include "folderExistsDialog.h"
#include "../../../interface/PluginInterface_CopyEngine.h"
-/// \todo do pushed or instant mount point (setDrive, ...)
-/// \todo semaphore to prevent dual mkpath
-/// \todo repair the mkpath, to use mkpath class before file transfer to have the folder
-/** \todo when overwrite with large inode operation, it not start specificly the first in the list
- When that's is finish, send start file at real transfer start, not inode operation start **/
-
-namespace Ui {
- class options;
-}
-
-copyEngine::copyEngine(FacilityInterface * facilityInterface) :
+copyEngine::copyEngine(FacilityInterface * facilityEngine) :
ui(new Ui::options())
{
- listThread=new ListThread(facilityInterface);
+ 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>");
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- debugDialogWindow.show();
- #endif
- connect(listThread,SIGNAL(actionInProgess(EngineActionInProgress)), this,SIGNAL(actionInProgess(EngineActionInProgress)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(newFolderListing(QString)), this,SIGNAL(newFolderListing(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(newCollisionAction(QString)), this,SIGNAL(newCollisionAction(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(newErrorAction(QString)), this,SIGNAL(newErrorAction(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(isInPause(bool)), this,SIGNAL(isInPause(bool)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(cancelAll()), this,SIGNAL(cancelAll()), Qt::QueuedConnection);
- connect(listThread,SIGNAL(error(QString,quint64,QDateTime,QString)), this,SIGNAL(error(QString,quint64,QDateTime,QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(rmPath(QString)), this,SIGNAL(rmPath(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(mkPath(QString)), this,SIGNAL(mkPath(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(newActionOnList(QList<returnActionOnCopyList>)), this,SIGNAL(newActionOnList(QList<returnActionOnCopyList>)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(pushFileProgression(QList<ProgressionItem>)), this,SIGNAL(pushFileProgression(QList<ProgressionItem>)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(pushGeneralProgression(quint64,quint64)), this,SIGNAL(pushGeneralProgression(quint64,quint64)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(syncReady()), this,SIGNAL(syncReady()), Qt::QueuedConnection);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
- connect(listThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection);
- #endif
-
- connect(listThread,SIGNAL(send_fileAlreadyExists(QFileInfo,QFileInfo,bool,TransferThread *)), this,SLOT(fileAlreadyExists(QFileInfo,QFileInfo,bool,TransferThread *)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(send_errorOnFile(QFileInfo,QString,TransferThread *)), this,SLOT(errorOnFile(QFileInfo,QString,TransferThread *)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(send_folderAlreadyExists(QFileInfo,QFileInfo,bool,scanFileOrFolder *)), this,SLOT(folderAlreadyExists(QFileInfo,QFileInfo,bool,scanFileOrFolder *)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(send_errorOnFolder(QFileInfo,QString,scanFileOrFolder *)), this,SLOT(errorOnFolder(QFileInfo,QString,scanFileOrFolder *)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(updateTheDebugInfo(QStringList,QStringList,int)), this,SLOT(updateTheDebugInfo(QStringList,QStringList,int)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(errorTransferList(QString)), this,SLOT(errorTransferList(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(warningTransferList(QString)), this,SLOT(warningTransferList(QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(mkPathErrorOnFolder(QFileInfo,QString)), this,SLOT(mkPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection);
- connect(listThread,SIGNAL(rmPathErrorOnFolder(QFileInfo,QString)), this,SLOT(rmPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection);
-
- connect(this,SIGNAL(signal_pause()), listThread,SLOT(pause()), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_resume()), listThread,SLOT(resume()), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_skip(quint64)), listThread,SLOT(skip(quint64)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_setCollisionAction(FileExistsAction)), listThread,SLOT(setAlwaysFileExistsAction(FileExistsAction)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_setFolderColision(FolderExistsAction)), listThread,SLOT(setFolderColision(FolderExistsAction)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_removeItems(QList<int>)), listThread,SLOT(removeItems(QList<int>)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_moveItemsOnTop(QList<int>)), listThread,SLOT(moveItemsOnTop(QList<int>)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_moveItemsUp(QList<int>)), listThread,SLOT(moveItemsUp(QList<int>)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_moveItemsDown(QList<int>)), listThread,SLOT(moveItemsDown(QList<int>)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_moveItemsOnBottom(QList<int>)), listThread,SLOT(moveItemsOnBottom(QList<int>)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_exportTransferList(QString)), listThread,SLOT(exportTransferList(QString)), Qt::QueuedConnection);
- connect(this,SIGNAL(signal_importTransferList(QString)), listThread,SLOT(importTransferList(QString)), Qt::QueuedConnection);
-
- connect(this,SIGNAL(queryOneNewDialog()),SLOT(showOneNewDialog()),Qt::QueuedConnection);
interface = NULL;
tempWidget = NULL;
uiIsInstalled = false;
@@ -87,15 +41,131 @@ copyEngine::copyEngine(FacilityInterface * facilityInterface) :
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)
{
@@ -124,6 +194,12 @@ bool copyEngine::getOptionsEngine(QWidget * tempWidget)
setBlockSize(blockSize);
setAutoStart(autoStart);
setCheckDestinationFolderExists(checkDestinationFolderExists);
+ set_doChecksum(doChecksum);
+ set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible);
+ set_checksumOnlyOnError(checksumOnlyOnError);
+ set_osBuffer(osBuffer);
+ set_osBufferLimited(osBufferLimited);
+ set_osBufferLimit(osBufferLimit);
return true;
}
@@ -131,6 +207,36 @@ bool copyEngine::getOptionsEngine(QWidget * tempWidget)
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->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)
@@ -145,8 +251,14 @@ bool copyEngine::haveSameDestination(const QString &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,tr("Select destination directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+ 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");
@@ -157,13 +269,25 @@ bool copyEngine::newCopy(const QStringList &sources)
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,tr("Select destination directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+ 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");
@@ -174,9 +298,21 @@ bool copyEngine::newMove(const QStringList &sources)
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;
@@ -193,12 +329,12 @@ QList<QPair<QString,QString> > copyEngine::getCollisionAction()
{
QPair<QString,QString> tempItem;
QList<QPair<QString,QString> > list;
- tempItem.first=tr("Ask");tempItem.second="ask";list << tempItem;
- tempItem.first=tr("Skip");tempItem.second="skip";list << tempItem;
- tempItem.first=tr("Overwrite");tempItem.second="overwrite";list << tempItem;
- tempItem.first=tr("Overwrite if newer");tempItem.second="overwriteIfNewer";list << tempItem;
- tempItem.first=tr("Overwrite if the last modification dates are different");tempItem.second="overwriteIfNotSameModificationDate";list << tempItem;
- tempItem.first=tr("Rename");tempItem.second="rename";list << tempItem;
+ 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;
}
@@ -206,9 +342,9 @@ QList<QPair<QString,QString> > copyEngine::getErrorAction()
{
QPair<QString,QString> tempItem;
QList<QPair<QString,QString> > list;
- tempItem.first=tr("Ask");tempItem.second="ask";list << tempItem;
- tempItem.first=tr("Skip");tempItem.second="skip";list << tempItem;
- tempItem.first=tr("Put to end of the list");tempItem.second="putToEndOfTheList";list << tempItem;
+ 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;
}
@@ -224,9 +360,75 @@ 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,tr("Select source directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+ 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)
@@ -240,9 +442,9 @@ bool copyEngine::userAddFile(const CopyMode &mode)
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
QStringList sources = QFileDialog::getOpenFileNames(
interface,
- tr("Select one or more files to open"),
+ facilityEngine->translateText("Select one or more files to open"),
"",
- tr("All files")+" (*)");
+ facilityEngine->translateText("All files")+" (*)");
if(sources.isEmpty())
return false;
if(mode==Copy)
@@ -270,7 +472,9 @@ void copyEngine::cancel()
{
ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
stopIt=true;
- listThread->cancel();
+ timerProgression.stop();
+ timerActionDone.stop();
+ emit tryCancel();
}
void copyEngine::removeItems(const QList<int> &ids)
@@ -298,9 +502,27 @@ 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(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,tr("Save transfer list"),"transfer-list.lst",tr("Transfer list")+" (*.lst)");
+ 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);
@@ -308,7 +530,7 @@ void copyEngine::exportTransferList()
void copyEngine::importTransferList()
{
- QString fileName = QFileDialog::getOpenFileName(NULL,tr("Open transfer list"),"transfer-list.lst",tr("Transfer list")+" (*.lst)");
+ 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);
@@ -316,12 +538,12 @@ void copyEngine::importTransferList()
void copyEngine::warningTransferList(const QString &warning)
{
- QMessageBox::warning(interface,tr("Error"),warning);
+ QMessageBox::warning(interface,facilityEngine->translateText("Error"),warning);
}
void copyEngine::errorTransferList(const QString &error)
{
- QMessageBox::critical(interface,tr("Error"),error);
+ QMessageBox::critical(interface,facilityEngine->translateText("Error"),error);
}
bool copyEngine::setSpeedLimitation(const qint64 &speedLimitation)
@@ -490,3 +712,85 @@ void copyEngine::setComboBoxFolderError(FileErrorAction action,bool changeComboB
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/CopyEngine/Ultracopier-0.3/copyEngine.h b/plugins/CopyEngine/Ultracopier-0.3/copyEngine.h
index c903b12..66b3a4f 100644..100755
--- a/plugins/CopyEngine/Ultracopier-0.3/copyEngine.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/copyEngine.h
@@ -20,6 +20,8 @@
#include "ui_options.h"
#include "Environment.h"
#include "ListThread.h"
+#include "Filters.h"
+#include "RenamingRules.h"
#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
#include "debugDialog.h"
@@ -38,8 +40,9 @@ class copyEngine : public PluginInterface_CopyEngine
{
Q_OBJECT
public:
- copyEngine(FacilityInterface * facilityInterface);
+ copyEngine(FacilityInterface * facilityEngine);
~copyEngine();
+ void connectTheSignalsSlots();
private:
ListThread *listThread;
#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW
@@ -49,6 +52,9 @@ private:
Ui::options * ui;
bool uiIsInstalled;
QWidget * interface;
+ Filters * filters;
+ RenamingRules * renamingRules;
+ FacilityInterface * facilityEngine;
int maxSpeed;
bool doRightTransfer;
bool keepDate;
@@ -87,7 +93,24 @@ private:
FileErrorAction tempFileErrorAction;
FolderExistsAction tempFolderExistsAction;
FileExistsAction tempFileExistsAction;
- quint64 size_for_speed;
+ 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);
@@ -107,6 +130,19 @@ private slots:
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
@@ -143,6 +179,10 @@ public:
* \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();
@@ -163,6 +203,15 @@ public:
/** \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
@@ -197,10 +246,14 @@ public slots:
/** \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);
@@ -250,37 +303,46 @@ signals:
* first = current transfered byte, second = byte to transfer */
void pushGeneralProgression(const quint64 &,const quint64 &);
- void newFolderListing(QString path);
- void newCollisionAction(QString action);
- void newErrorAction(QString action);
+ 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(quint64 id);
+ void signal_skip(const quint64 &id);
//edit the transfer list
- void signal_removeItems(QList<int> ids);
- void signal_moveItemsOnTop(QList<int> ids);
- void signal_moveItemsUp(QList<int> ids);
- void signal_moveItemsDown(QList<int> ids);
- void signal_moveItemsOnBottom(QList<int> ids);
- void signal_exportTransferList(QString fileName);
- void signal_importTransferList(QString fileName);
+ 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(QString path,quint64 size,QDateTime mtime,QString error);
+ void error(const QString &path,const quint64 &size,const QDateTime &mtime,const QString &error);
//for the extra logging
- void rmPath(QString path);
- void mkPath(QString path);
+ 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);
@@ -288,6 +350,10 @@ signals:
//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/CopyEngine/Ultracopier-0.3/copyEngine.pro b/plugins/CopyEngine/Ultracopier-0.3/copyEngine.pro
index 0f1cb68..13ab523 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/copyEngine.pro
+++ b/plugins/CopyEngine/Ultracopier-0.3/copyEngine.pro
@@ -21,7 +21,10 @@ HEADERS = copyEngine.h \
ListThread.h \
../../../interface/PluginInterface_CopyEngine.h \
../../../interface/OptionInterface.h \
- ../../../interface/FacilityInterface.h
+ ../../../interface/FacilityInterface.h \
+ Filters.h \
+ FilterRules.h \
+ RenamingRules.h
SOURCES = copyEngine.cpp \
scanFileOrFolder.cpp \
fileErrorDialog.cpp \
@@ -37,16 +40,20 @@ SOURCES = copyEngine.cpp \
folderExistsDialog.cpp \
AvancedQFile.cpp \
copyEngine-collision-and-error.cpp \
- ListThread.cpp
+ ListThread.cpp \
+ Filters.cpp \
+ FilterRules.cpp \
+ RenamingRules.cpp \
+ ListThread_InodeAction.cpp
TARGET = $$qtLibraryTarget(copyEngine)
-TRANSLATIONS += Languages/fr/translation.ts \
+TRANSLATIONS += Languages/fr/translation.ts \
Languages/ar/translation.ts \
- Languages/ch/translation.ts \
+ Languages/zh/translation.ts \
Languages/es/translation.ts \
Languages/de/translation.ts \
Languages/el/translation.ts \
Languages/it/translation.ts \
- Languages/jp/translation.ts \
+ Languages/ja/translation.ts \
Languages/id/translation.ts \
Languages/pl/translation.ts \
Languages/ru/translation.ts \
@@ -55,7 +62,8 @@ TRANSLATIONS += Languages/fr/translation.ts \
Languages/hi/translation.ts \
Languages/nl/translation.ts \
Languages/no/translation.ts \
- Languages/pt/translation.ts
+ Languages/pt/translation.ts \
+ Languages/ko/translation.ts
FORMS += \
options.ui \
@@ -63,6 +71,12 @@ FORMS += \
fileExistsDialog.ui \
fileIsSameDialog.ui \
debugDialog.ui \
- folderExistsDialog.ui
+ folderExistsDialog.ui \
+ Filters.ui \
+ FilterRules.ui \
+ RenamingRules.ui
OTHER_FILES += informations.xml
+
+RESOURCES += \
+ resources.qrc
diff --git a/plugins/CopyEngine/Ultracopier-0.3/factory.cpp b/plugins/CopyEngine/Ultracopier-0.3/factory.cpp
index be53272..642a05b 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/factory.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/factory.cpp
@@ -9,8 +9,6 @@
#include "factory.h"
-/// \todo connect in global options the change
-
Factory::Factory() :
ui(new Ui::options())
{
@@ -18,6 +16,8 @@ Factory::Factory() :
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) {
@@ -31,23 +31,41 @@ Factory::Factory() :
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->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->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(newTransferEngine,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)));
connect(this,SIGNAL(reloadLanguage()),newTransferEngine,SLOT(newLanguageLoaded()));
realObject->setRightTransfer( optionsEngine->getOptionValue("doRightTransfer").toBool());
realObject->setKeepDate( optionsEngine->getOptionValue("keepDate").toBool());
@@ -56,6 +74,19 @@ PluginInterface_CopyEngine * Factory::getInstance()
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;
}
@@ -95,6 +126,22 @@ void Factory::setResources(OptionInterface * options,const QString &writePath,co
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);
@@ -102,11 +149,23 @@ void Factory::setResources(OptionInterface * options,const QString &writePath,co
#endif
ui->doRightTransfer->setChecked(optionsEngine->getOptionValue("doRightTransfer").toBool());
ui->keepDate->setChecked(optionsEngine->getOptionValue("keepDate").toBool());
- ui->blockSize->setValue(optionsEngine->getOptionValue("blockSize").toInt());
+ ui->blockSize->setValue(optionsEngine->getOptionValue("blockSize").toUInt());
ui->autoStart->setChecked(optionsEngine->getOptionValue("autoStart").toBool());
- ui->comboBoxFolderError->setCurrentIndex(optionsEngine->getOptionValue("folderError").toInt());
- ui->comboBoxFolderColision->setCurrentIndex(optionsEngine->getOptionValue("folderColision").toInt());
+ 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());
}
}
@@ -233,7 +292,116 @@ 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/CopyEngine/Ultracopier-0.3/factory.h b/plugins/CopyEngine/Ultracopier-0.3/factory.h
index bf41a27..c5cfa91 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/factory.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/factory.h
@@ -15,6 +15,8 @@
#include "ui_options.h"
#include "copyEngine.h"
#include "Environment.h"
+#include "Filters.h"
+#include "RenamingRules.h"
#ifndef FACTORY_H
#define FACTORY_H
@@ -58,6 +60,8 @@ private:
QString StandardOutput;
bool errorFound;
FacilityInterface * facilityEngine;
+ Filters *filters;
+ RenamingRules *renamingRules;
private slots:
void error(QProcess::ProcessError error);
void finished(int exitCode, QProcess::ExitStatus exitStatus);
@@ -67,6 +71,16 @@ private slots:
void setKeepDate(bool keepDate);
void setBlockSize(int blockSize);
void setAutoStart(bool autoStart);
+ 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();
diff --git a/plugins/CopyEngine/Ultracopier-0.3/fileErrorDialog.cpp b/plugins/CopyEngine/Ultracopier-0.3/fileErrorDialog.cpp
index 8f8b9a5..0d9fa9a 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/fileErrorDialog.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/fileErrorDialog.cpp
@@ -9,18 +9,35 @@ fileErrorDialog::fileErrorDialog(QWidget *parent,QFileInfo fileInfo,QString erro
action=FileError_Cancel;
ui->label_error->setText(errorString);
ui->label_content_file_name->setText(fileInfo.fileName());
- ui->label_content_size->setText(QString::number(fileInfo.size()));
- QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1));
- if(maxTime<fileInfo.lastModified())
+ if(fileInfo.exists())
{
- ui->label_modified->setVisible(true);
- ui->label_content_modified->setVisible(true);
- ui->label_content_modified->setText(fileInfo.lastModified().toString());
+ 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_modified->setVisible(false);
- ui->label_content_modified->setVisible(false);
+ ui->label_size->hide();
+ ui->label_content_size->hide();
+ ui->label_modified->hide();
+ ui->label_content_modified->hide();
}
if(!havePutAtTheEndButton)
ui->PutToBottom->hide();
diff --git a/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp b/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp
index 78c3bd0..191dd79 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp
@@ -3,7 +3,7 @@
#include <QDebug>
-fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination) :
+fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule) :
QDialog(parent),
ui(new Ui::fileExistsDialog)
{
@@ -44,6 +44,8 @@ fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo de
ui->label_destination_modified->setVisible(false);
ui->label_content_destination_modified->setVisible(false);
}
+ this->firstRenamingRule=firstRenamingRule;
+ this->otherRenamingRule=otherRenamingRule;
}
fileExistsDialog::~fileExistsDialog()
@@ -82,34 +84,45 @@ void fileExistsDialog::on_SuggestNewName_clicked()
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(!fileName.startsWith(tr("Copy of ")))
- fileName=tr("Copy of ")+fileName;
- else
+ if(num==1)
{
- if(fileName.contains(QRegExp("_[0-9]+$")))
+ if(firstRenamingRule=="")
+ newFileName=tr("%1 - copy").arg(fileName);
+ else
{
- QString number=fileName;
- number.replace(QRegExp("^.*_([0-9]+)$"),"\\1");
- int num=number.toInt()+1;
- fileName.remove(QRegExp("[0-9]+$"));
- fileName+=QString::number(num);
+ newFileName=firstRenamingRule;
+ newFileName.replace("%name%",fileName);
}
+ }
+ else
+ {
+ if(otherRenamingRule=="")
+ newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
else
- fileName+="_2";
+ {
+ newFileName=otherRenamingRule;
+ newFileName.replace("%name%",fileName);
+ newFileName.replace("%number%",QString::number(num));
+ }
}
- destination=absolutePath+QDir::separator()+fileName+suffix;
+ destination=absolutePath+QDir::separator()+newFileName+suffix;
destinationInfo.setFile(destination);
+ num++;
}
while(destinationInfo.exists());
- ui->lineEditNewName->setText(fileName+suffix);
+ ui->lineEditNewName->setText(newFileName+suffix);
}
void fileExistsDialog::on_Rename_clicked()
diff --git a/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.h b/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.h
index 1a5817d..75af190 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.h
@@ -25,7 +25,7 @@ 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);
+ explicit fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule);
~fileExistsDialog();
/// \brief return the the always checkbox is checked
bool getAlways();
@@ -51,6 +51,8 @@ private:
FileExistsAction action;
QString oldName;
QFileInfo destinationInfo;
+ QString firstRenamingRule;
+ QString otherRenamingRule;
};
#endif // FILEEXISTSDIALOG_H
diff --git a/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.cpp b/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.cpp
index a618f4c..f45b2ea 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.cpp
@@ -3,7 +3,7 @@
#include <QDebug>
-fileIsSameDialog::fileIsSameDialog(QWidget *parent,QFileInfo fileInfo) :
+fileIsSameDialog::fileIsSameDialog(QWidget *parent,QFileInfo fileInfo,QString firstRenamingRule,QString otherRenamingRule) :
QDialog(parent),
ui(new Ui::fileIsSameDialog)
{
@@ -29,6 +29,8 @@ fileIsSameDialog::fileIsSameDialog(QWidget *parent,QFileInfo fileInfo) :
ui->label_modified->setVisible(false);
ui->label_content_modified->setVisible(false);
}
+ this->firstRenamingRule=firstRenamingRule;
+ this->otherRenamingRule=otherRenamingRule;
}
fileIsSameDialog::~fileIsSameDialog()
@@ -67,34 +69,45 @@ void fileIsSameDialog::on_SuggestNewName_clicked()
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(!fileName.startsWith(tr("Copy of ")))
- fileName=tr("Copy of ")+fileName;
- else
+ if(num==1)
{
- if(fileName.contains(QRegExp("_[0-9]+$")))
+ if(firstRenamingRule=="")
+ newFileName=tr("%1 - copy").arg(fileName);
+ else
{
- QString number=fileName;
- number.replace(QRegExp("^.*_([0-9]+)$"),"\\1");
- int num=number.toInt()+1;
- fileName.remove(QRegExp("[0-9]+$"));
- fileName+=QString::number(num);
+ newFileName=firstRenamingRule;
+ newFileName.replace("%name%",fileName);
}
+ }
+ else
+ {
+ if(otherRenamingRule=="")
+ newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num);
else
- fileName+="_2";
+ {
+ newFileName=otherRenamingRule;
+ newFileName.replace("%name%",fileName);
+ newFileName.replace("%number%",QString::number(num));
+ }
}
- destination=absolutePath+QDir::separator()+fileName+suffix;
+ destination=absolutePath+QDir::separator()+newFileName+suffix;
destinationInfo.setFile(destination);
+ num++;
}
while(destinationInfo.exists());
- ui->lineEditNewName->setText(fileName+suffix);
+ ui->lineEditNewName->setText(newFileName+suffix);
}
void fileIsSameDialog::on_Rename_clicked()
diff --git a/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.h b/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.h
index afd0e04..fa48755 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/fileIsSameDialog.h
@@ -25,7 +25,7 @@ class fileIsSameDialog : public QDialog
Q_OBJECT
public:
/// \brief create the object and pass all the informations to it
- explicit fileIsSameDialog(QWidget *parent,QFileInfo fileInfo);
+ explicit fileIsSameDialog(QWidget *parent,QFileInfo fileInfo,QString firstRenamingRule,QString otherRenamingRule);
~fileIsSameDialog();
/// \brief return the the always checkbox is checked
bool getAlways();
@@ -48,6 +48,9 @@ private:
FileExistsAction action;
QString oldName;
QFileInfo destinationInfo;
+ QString firstRenamingRule;
+ QString otherRenamingRule;
+
};
#endif // FILEISSAMEDIALOG_H
diff --git a/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.cpp b/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.cpp
index 054c293..d951b90 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.cpp
@@ -3,13 +3,14 @@
#include <QMessageBox>
-folderExistsDialog::folderExistsDialog(QWidget *parent,QFileInfo source,bool isSame,QFileInfo destination) :
+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());
@@ -25,10 +26,13 @@ folderExistsDialog::folderExistsDialog(QWidget *parent,QFileInfo source,bool isS
}
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()
@@ -58,7 +62,50 @@ QString folderExistsDialog::getNewName()
void folderExistsDialog::on_SuggestNewName_clicked()
{
- ui->lineEditNewName->setText(tr("Copy of ")+oldName);
+ 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()
diff --git a/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.h b/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.h
index 8d1bdfd..6d612f1 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/folderExistsDialog.h
@@ -11,6 +11,7 @@
#include <QFileInfo>
#include <QString>
#include <QDateTime>
+#include <QDir>
#include "Environment.h"
@@ -25,7 +26,7 @@ class folderExistsDialog : public QDialog
public:
/// \brief create the object and pass all the informations to it
- explicit folderExistsDialog(QWidget *parent,QFileInfo source,bool isSame,QFileInfo destination);
+ 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();
@@ -45,6 +46,9 @@ private:
Ui::folderExistsDialog *ui;
FolderExistsAction action;
QString oldName;
+ QString firstRenamingRule;
+ QString otherRenamingRule;
+ QFileInfo destinationInfo;
};
#endif // FOLDERISSAMEDIALOG_H
diff --git a/plugins/CopyEngine/Ultracopier-0.3/informations.xml b/plugins/CopyEngine/Ultracopier-0.3/informations.xml
index 077a1c9..8593149 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/informations.xml
+++ b/plugins/CopyEngine/Ultracopier-0.3/informations.xml
@@ -12,16 +12,16 @@
<!-- 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>linux-x86_64-pc</architecture>
+ <architecture>windows-x86</architecture>
<!-- Detailed description -->
<description xml:lang="en"><![CDATA[Copy engine of Ultracopier 0.3, do in Qt for all platform, and copy by stream]]></description>
<description xml:lang="fr"><![CDATA[Moteur de copie d'ultracopier 0.3, fait en Qt pour toutes les plateformes, et copie par stream]]></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.0.5</version>
+ <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>Ultracopier-0.3</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.0.5
+ >=ultracopier-0.3.1.0
]]></dependencies>
</package> \ No newline at end of file
diff --git a/plugins/CopyEngine/Ultracopier-0.3/options.ui b/plugins/CopyEngine/Ultracopier-0.3/options.ui
index 77bf15a..21d4d7f 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/options.ui
+++ b/plugins/CopyEngine/Ultracopier-0.3/options.ui
@@ -6,13 +6,16 @@
<rect>
<x>0</x>
<y>0</y>
- <width>306</width>
- <height>184</height>
+ <width>356</width>
+ <height>376</height>
</rect>
</property>
- <layout class="QFormLayout" name="formLayout">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::ExpandingFieldsGrow</enum>
+ <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">
@@ -21,12 +24,8 @@
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QCheckBox" name="doRightTransfer">
- <property name="text">
- <string/>
- </property>
- </widget>
+ <item row="0" column="2">
+ <widget class="QCheckBox" name="doRightTransfer"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
@@ -35,21 +34,10 @@
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QCheckBox" name="keepDate">
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>Block size</string>
- </property>
- </widget>
+ <item row="1" column="2">
+ <widget class="QCheckBox" name="keepDate"/>
</item>
- <item row="2" column="1">
+ <item row="2" column="2">
<widget class="QSpinBox" name="blockSize">
<property name="suffix">
<string>KB</string>
@@ -62,19 +50,15 @@
</property>
</widget>
</item>
- <item row="3" column="0">
+ <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="1">
- <widget class="QCheckBox" name="autoStart">
- <property name="text">
- <string/>
- </property>
- </widget>
+ <item row="3" column="2">
+ <widget class="QCheckBox" name="autoStart"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
@@ -83,7 +67,7 @@
</property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="4" column="2">
<widget class="QComboBox" name="comboBoxFolderError">
<item>
<property name="text">
@@ -104,7 +88,7 @@
</property>
</widget>
</item>
- <item row="5" column="1">
+ <item row="5" column="2">
<widget class="QComboBox" name="comboBoxFolderColision">
<item>
<property name="text">
@@ -128,22 +112,203 @@
</item>
</widget>
</item>
- <item row="6" column="0">
+ <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="1">
- <widget class="QCheckBox" name="checkBoxDestinationFolderExists">
+ <item row="6" column="2">
+ <widget class="QCheckBox" name="checkBoxDestinationFolderExists"/>
+ </item>
+ <item row="7" 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="8" column="1">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Enable OS buffer</string>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="2">
+ <widget class="QCheckBox" name="osBuffer"/>
+ </item>
+ <item row="9" 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="9" 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="12" 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="11" column="1">
+ <widget class="QPushButton" name="filters">
+ <property name="text">
+ <string>Filters</string>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="1">
+ <widget class="QPushButton" name="renamingRules">
<property name="text">
- <string/>
+ <string>Renaming rules</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
- <connections/>
+ <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/CopyEngine/Ultracopier-0.3/resources.qrc b/plugins/CopyEngine/Ultracopier-0.3/resources.qrc
new file mode 100644
index 0000000..c6ca4ef
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/resources.qrc
@@ -0,0 +1,8 @@
+<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/CopyEngine/Ultracopier-0.3/resources/add.png b/plugins/CopyEngine/Ultracopier-0.3/resources/add.png
new file mode 100644
index 0000000..1e03be9
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/resources/add.png
Binary files differ
diff --git a/plugins/CopyEngine/Ultracopier-0.3/resources/edit.png b/plugins/CopyEngine/Ultracopier-0.3/resources/edit.png
new file mode 100644
index 0000000..8072aea
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/resources/edit.png
Binary files differ
diff --git a/plugins/CopyEngine/Ultracopier-0.3/resources/filter.png b/plugins/CopyEngine/Ultracopier-0.3/resources/filter.png
new file mode 100644
index 0000000..9cabc5a
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/resources/filter.png
Binary files differ
diff --git a/plugins/CopyEngine/Ultracopier-0.3/resources/remove.png b/plugins/CopyEngine/Ultracopier-0.3/resources/remove.png
new file mode 100644
index 0000000..5b4c488
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-0.3/resources/remove.png
Binary files differ
diff --git a/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.cpp b/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.cpp
index 4d13fab..e40e941 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.cpp
+++ b/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.cpp
@@ -26,7 +26,7 @@ bool scanFileOrFolder::isFinished()
void scanFileOrFolder::addToList(const QStringList& sources,const QString& destination)
{
stopIt=false;
- this->sources=sources;
+ this->sources=parseWildcardSources(sources);
this->destination=destination;
if(sources.size()>1 || QFileInfo(destination).isDir())
/* Disabled because the separator transformation product bug
@@ -37,6 +37,94 @@ void scanFileOrFolder::addToList(const QStringList& sources,const QString& desti
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)
{
@@ -115,24 +203,43 @@ void scanFileOrFolder::listFolder(const QString& source,const QString& destinati
case FolderExists_Rename:
if(newName=="")
{
- /// \todo use facility here
- if(destinationSuffixPath.contains(folder_isolation))
+ 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
{
- prefix=destinationSuffixPath;
- suffix=destinationSuffixPath;
- prefix.replace(folder_isolation,"\\1");
- suffix.replace(folder_isolation,"\\2");
- 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);
- destinationSuffixPath = prefix+tr("Copy of ")+suffix;
+ 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);
}
- else
- destinationSuffixPath = tr("Copy of ")+"Unknow";
+ while(destinationInfo.exists());
}
else
- destinationSuffixPath = newName+"/";
+ destinationSuffixPath = newName;
destinationSuffixPath+="/";
finalDest = destination+destinationSuffixPath;
break;
@@ -160,21 +267,40 @@ void scanFileOrFolder::listFolder(const QString& source,const QString& destinati
case FolderExists_Rename:
if(newName=="")
{
- /// \todo use facility here
- if(destinationSuffixPath.contains(folder_isolation))
+ 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
{
- prefix=destinationSuffixPath;
- suffix=destinationSuffixPath;
- prefix.replace(folder_isolation,"\\1");
- suffix.replace(folder_isolation,"\\2");
- 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);
- destinationSuffixPath = prefix+tr("Copy of ")+suffix;
+ 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++;
}
- else
- destinationSuffixPath = tr("Copy of ")+"Unknow";
+ while(destinationInfo.exists());
}
else
destinationSuffixPath = newName;
@@ -205,21 +331,114 @@ void scanFileOrFolder::listFolder(const QString& source,const QString& destinati
}
} 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);//possible wait time here
+ 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;
- QFileInfo fileInfo=entryList.at(index);
- 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
+ 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
+ emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileName,mode);
+ }
+ }
+ }
else
- emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileInfo.fileName(),mode);
+ {
+ 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
+ emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileInfo.fileName(),mode);
+ }
}
if(mode==Move)
{
@@ -233,3 +452,9 @@ void scanFileOrFolder::setCheckDestinationFolderExists(const bool checkDestinati
{
this->checkDestinationExists=checkDestinationFolderExists;
}
+
+void scanFileOrFolder::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule)
+{
+ this->firstRenamingRule=firstRenamingRule;
+ this->otherRenamingRule=otherRenamingRule;
+}
diff --git a/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.h b/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.h
index c7ae7fe..787d8af 100644
--- a/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.h
+++ b/plugins/CopyEngine/Ultracopier-0.3/scanFileOrFolder.h
@@ -11,6 +11,9 @@
#include <QFileInfo>
#include <QDir>
#include <QSemaphore>
+#include <QEventLoop>
+#include <QCoreApplication>
+#include <QMutexLocker>
#include "Environment.h"
@@ -34,6 +37,7 @@ public:
void setFolderErrorAction(FileErrorAction action);
/// \brief set if need check if the destination exists
void setCheckDestinationFolderExists(const bool checkDestinationFolderExists);
+ void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule);
signals:
void fileTransfer(const QFileInfo &source,const QFileInfo &destination,const CopyMode &mode);
/// \brief To debug source
@@ -47,6 +51,7 @@ signals:
void addToRmPath(const QString& folder,const int& inodeToRemove);
public slots:
void addToList(const QStringList& sources,const QString& destination);
+ void setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude);
protected:
void run();
private:
@@ -64,6 +69,19 @@ private:
QString prefix;
QString suffix;
CopyMode mode;
+ 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