diff options
Diffstat (limited to 'plugins-alternative')
320 files changed, 17556 insertions, 28582 deletions
diff --git a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp b/plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp deleted file mode 100644 index af5805b..0000000 --- a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/** \file AvancedQFile.cpp -\brief Define the QFile herited class to set file date/time -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include "AvancedQFile.h" - -#ifdef Q_CC_GNU -//this next header is needed to change file time/date under gcc -#include <utime.h> -#include <errno.h> -#endif - -//source -//hSrc=CreateFile(pData->pfiSrcFile->GetFullFilePath(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | (bNoBuffer ? FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH : 0), NULL); -//destination -//hDst=CreateFile(pData->strDstFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | (bNoBuffer ? FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH : 0), NULL); - -bool AvancedQFile::setCreated(QDateTime time) -{ - time_t ctime=time.toTime_t(); - #ifdef Q_CC_GNU - //creation time not exists into unix world - Q_UNUSED(ctime) - return true; - #else - setErrorString(tr("Not supported on this platform")); - return false; - #endif -} - -bool AvancedQFile::setLastModified(QDateTime time) -{ - time_t actime=QFileInfo(*this).lastRead().toTime_t(); - //protect to wrong actime - if(actime<0) - actime=0; - time_t modtime=time.toTime_t(); - if(modtime<0) - { - setErrorString(tr("Last modified date is wrong")); - return false; - } - #ifdef Q_CC_GNU - //this function avalaible on unix and mingw - utimbuf butime; - butime.actime=actime; - butime.modtime=modtime; - int returnVal=utime(this->fileName().toLocal8Bit().data(),&butime); - if(returnVal==0) - return true; - else - { - setErrorString(strerror(errno)); - return false; - } - #else - setErrorString(tr("Not supported on this platform")); - return false; - #endif -} - -bool AvancedQFile::setLastRead(QDateTime time) -{ - time_t modtime=QFileInfo(*this).lastModified().toTime_t(); - //protect to wrong actime - if(modtime<0) - modtime=0; - time_t actime=time.toTime_t(); - if(actime<0) - { - setErrorString(tr("Last access date is wrong")); - return false; - } - #ifdef Q_CC_GNU - //this function avalaible on unix and mingw - utimbuf butime; - butime.actime=actime; - butime.modtime=modtime; - int returnVal=utime(this->fileName().toLocal8Bit().data(),&butime); - if(returnVal==0) - return true; - else - { - setErrorString(strerror(errno)); - return false; - } - #else - setErrorString(tr("Not supported on this platform")); - return false; - #endif -} - diff --git a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.h b/plugins-alternative/CopyEngine/Rsync/AvancedQFile.h deleted file mode 100644 index 284cf02..0000000 --- a/plugins-alternative/CopyEngine/Rsync/AvancedQFile.h +++ /dev/null @@ -1,32 +0,0 @@ -/** \file AvancedQFile.h -\brief Define the QFile herited class to set file date/time -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#ifndef AVANCEDQFILE_H -#define AVANCEDQFILE_H - -#include <QFile> -#include <QDateTime> -#include <QFileInfo> - -/// \brief devired class from QFile to set time/date on file -class AvancedQFile : public QFile -{ - Q_OBJECT -public: - /// \brief set created date, not exists in unix world - bool setCreated(QDateTime time); - /// \brief set last modification date - bool setLastModified(QDateTime time); - /// \brief set last read date - bool setLastRead(QDateTime time); - -/* //fileName - void close(); - bool open ( FILE * fh, OpenMode mode ) - bool open ( int fd, OpenMode mode )*/ -}; - -#endif // AVANCEDQFILE_H diff --git a/plugins-alternative/CopyEngine/Rsync/CompilerInfo.h b/plugins-alternative/CopyEngine/Rsync/CompilerInfo.h deleted file mode 100644 index 84625b9..0000000 --- a/plugins-alternative/CopyEngine/Rsync/CompilerInfo.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../CompilerInfo.h" diff --git a/plugins-alternative/CopyEngine/Rsync/FilterRules.cpp b/plugins-alternative/CopyEngine/Rsync/FilterRules.cpp deleted file mode 100644 index 0e6ba25..0000000 --- a/plugins-alternative/CopyEngine/Rsync/FilterRules.cpp +++ /dev/null @@ -1,193 +0,0 @@ -#include "FilterRules.h" -#include "ui_FilterRules.h" - -#include <QMessageBox> - -FilterRules::FilterRules(QWidget *parent) : - QDialog(parent), - ui(new Ui::FilterRules) -{ - ui->setupUi(this); - updateChecking(); - haveBeenValided=false; -} - -FilterRules::~FilterRules() -{ - delete ui; -} - -bool FilterRules::getIsValid() -{ - return isValid && haveBeenValided; -} - -QString FilterRules::get_search_text() -{ - return ui->search->text(); -} - -SearchType FilterRules::get_search_type() -{ - switch(ui->search_type->currentIndex()) - { - case 0: - return SearchType_rawText; - case 1: - return SearchType_simpleRegex; - case 2: - return SearchType_perlRegex; - } - return SearchType_simpleRegex; -} - -ApplyOn FilterRules::get_apply_on() -{ - switch(ui->apply_on->currentIndex()) - { - case 0: - return ApplyOn_file; - case 1: - return ApplyOn_fileAndFolder; - case 2: - return ApplyOn_folder; - } - return ApplyOn_fileAndFolder; -} - -bool FilterRules::get_need_match_all() -{ - return ui->need_match_all->isChecked(); -} - -void FilterRules::set_search_text(QString search_text) -{ - ui->search->setText(search_text); -} - -void FilterRules::set_search_type(SearchType search_type) -{ - switch(search_type) - { - case SearchType_rawText: - ui->search_type->setCurrentIndex(0); - break; - case SearchType_simpleRegex: - ui->search_type->setCurrentIndex(1); - break; - case SearchType_perlRegex: - ui->search_type->setCurrentIndex(2); - break; - } -} - -void FilterRules::set_apply_on(ApplyOn apply_on) -{ - switch(apply_on) - { - case ApplyOn_file: - ui->apply_on->setCurrentIndex(0); - break; - case ApplyOn_fileAndFolder: - ui->apply_on->setCurrentIndex(1); - break; - case ApplyOn_folder: - ui->apply_on->setCurrentIndex(2); - break; - } -} - -void FilterRules::set_need_match_all(bool need_match_all) -{ - ui->need_match_all->setChecked(need_match_all); -} - -void FilterRules::on_search_textChanged(const QString &arg1) -{ - Q_UNUSED(arg1); - updateChecking(); -} - -void FilterRules::updateChecking() -{ - QRegExp regex; - isValid=!ui->search->text().isEmpty(); - if(isValid) - { - QString tempString; - if(ui->search_type->currentIndex()==0) - { - tempString=QRegExp::escape(ui->search->text()); - if(tempString.contains('/') || tempString.contains('\\')) - isValid=false; - } - else if(ui->search_type->currentIndex()==1) - { - tempString=QRegExp::escape(ui->search->text()); - tempString.replace("\\*","[^\\\\/]*"); - } - else if(ui->search_type->currentIndex()==2) - { - tempString=ui->search->text(); - if(tempString.startsWith('^') && tempString.endsWith('$')) - { - ui->need_match_all->setChecked(true); - tempString.remove(QRegExp("^\\^")); - tempString.remove(QRegExp("\\$$")); - ui->search->setText(tempString); - } - } - if(isValid) - { - if(ui->need_match_all->isChecked()) - tempString="^"+tempString+"$"; - regex=QRegExp(tempString); - isValid=regex.isValid() && !regex.isEmpty(); - } - } - - ui->isValid->setChecked(isValid); - ui->testString->setEnabled(isValid); - ui->label_test_string->setEnabled(isValid); - ui->matched->setEnabled(isValid); - ui->matched->setChecked(isValid && ui->testString->text().contains(regex)); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(isValid); -} - -void FilterRules::on_isValid_clicked() -{ - updateChecking(); -} - -void FilterRules::on_testString_textChanged(const QString &arg1) -{ - Q_UNUSED(arg1); - updateChecking(); -} - -void FilterRules::on_matched_clicked() -{ - updateChecking(); -} - -void FilterRules::on_search_type_currentIndexChanged(int index) -{ - Q_UNUSED(index); - updateChecking(); -} - -void FilterRules::on_need_match_all_clicked() -{ - updateChecking(); -} - -void FilterRules::on_buttonBox_clicked(QAbstractButton *button) -{ - if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::RejectRole) - reject(); - else - { - haveBeenValided=true; - accept(); - } -} diff --git a/plugins-alternative/CopyEngine/Rsync/FilterRules.h b/plugins-alternative/CopyEngine/Rsync/FilterRules.h deleted file mode 100644 index f06f0cb..0000000 --- a/plugins-alternative/CopyEngine/Rsync/FilterRules.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef FILTERRULES_H -#define FILTERRULES_H - -#include <QDialog> -#include <QAbstractButton> -#include <QPushButton> - -#include "StructEnumDefinition_CopyEngine.h" - -namespace Ui { -class FilterRules; -} - -/** All the filter rules to include/exclude some file during the listing */ -class FilterRules : public QDialog -{ - Q_OBJECT - -public: - explicit FilterRules(QWidget *parent = 0); - ~FilterRules(); - bool getIsValid(); - QString get_search_text(); - SearchType get_search_type(); - ApplyOn get_apply_on(); - bool get_need_match_all(); - void set_search_text(QString search_text); - void set_search_type(SearchType search_type); - void set_apply_on(ApplyOn apply_on); - void set_need_match_all(bool need_match_all); -private slots: - void on_search_textChanged(const QString &arg1); - void on_isValid_clicked(); - void on_testString_textChanged(const QString &arg1); - void on_matched_clicked(); - void on_search_type_currentIndexChanged(int index); - void on_need_match_all_clicked(); - void on_buttonBox_clicked(QAbstractButton *button); -private: - Ui::FilterRules *ui; - void updateChecking(); - bool isValid; - bool haveBeenValided; -}; - -#endif // FILTERRULES_H diff --git a/plugins-alternative/CopyEngine/Rsync/FilterRules.ui b/plugins-alternative/CopyEngine/Rsync/FilterRules.ui deleted file mode 100644 index fad35cd..0000000 --- a/plugins-alternative/CopyEngine/Rsync/FilterRules.ui +++ /dev/null @@ -1,162 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>FilterRules</class> - <widget class="QDialog" name="FilterRules"> - <property name="windowModality"> - <enum>Qt::WindowModal</enum> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>289</width> - <height>231</height> - </rect> - </property> - <property name="windowTitle"> - <string>Filters dialog</string> - </property> - <property name="windowIcon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/filter.png</normaloff>:/resources/filter.png</iconset> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <property name="margin"> - <number>1</number> - </property> - <property name="spacing"> - <number>1</number> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Search:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="search"/> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Search type:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="search_type"> - <item> - <property name="text"> - <string>Raw text</string> - </property> - </item> - <item> - <property name="text"> - <string>Simplified regex</string> - </property> - </item> - <item> - <property name="text"> - <string>Perl's regex</string> - </property> - </item> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Apply on:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QComboBox" name="apply_on"> - <item> - <property name="text"> - <string>File</string> - </property> - </item> - <item> - <property name="text"> - <string>Folder</string> - </property> - </item> - <item> - <property name="text"> - <string>File and folder</string> - </property> - </item> - </widget> - </item> - <item row="3" column="0" colspan="2"> - <widget class="QCheckBox" name="need_match_all"> - <property name="text"> - <string>All string need match</string> - </property> - </widget> - </item> - <item row="4" column="0" colspan="2"> - <widget class="QGroupBox" name="groupBoxChecking"> - <property name="title"> - <string>Checking</string> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0" colspan="2"> - <widget class="QCheckBox" name="isValid"> - <property name="text"> - <string>The regex is valid</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_test_string"> - <property name="text"> - <string>Test string:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="testString"/> - </item> - <item row="2" column="0" colspan="2"> - <widget class="QCheckBox" name="matched"> - <property name="text"> - <string>The test string match with the regex</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="5" column="0" colspan="2"> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>68</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources> - <include location="resources.qrc"/> - </resources> - <connections/> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/Filters.cpp b/plugins-alternative/CopyEngine/Rsync/Filters.cpp deleted file mode 100644 index ce87b52..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Filters.cpp +++ /dev/null @@ -1,456 +0,0 @@ -#include "Filters.h" -#include "ui_Filters.h" - -#include <QMessageBox> - -Filters::Filters(QWidget *parent) : - QDialog(parent), - ui(new Ui::Filters) -{ - ui->setupUi(this); -} - -Filters::~Filters() -{ - delete ui; -} - -void Filters::setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions) -{ - if(includeStrings.size()!=includeOptions.size() || excludeStrings.size()!=excludeOptions.size()) - return; - Filters_rules new_item; - - include.clear(); - int index=0; - while(index<includeStrings.size()) - { - new_item.search_text=includeStrings.at(index); - QStringList options=includeOptions.at(index).split(";"); - new_item.need_match_all=false; - new_item.search_type=SearchType_rawText; - new_item.apply_on=ApplyOn_fileAndFolder; - - if(options.contains("SearchType_simpleRegex")) - new_item.search_type=SearchType_simpleRegex; - if(options.contains("SearchType_perlRegex")) - new_item.search_type=SearchType_perlRegex; - if(options.contains("ApplyOn_file")) - new_item.apply_on=ApplyOn_file; - if(options.contains("ApplyOn_folder")) - new_item.apply_on=ApplyOn_folder; - if(options.contains("need_match_all")) - new_item.need_match_all=true; - - if(convertToRegex(new_item)) - include << new_item; - - index++; - } - - exclude.clear(); - index=0; - while(index<excludeStrings.size()) - { - new_item.search_text=excludeStrings.at(index); - QStringList options=excludeOptions.at(index).split(";"); - new_item.need_match_all=false; - new_item.search_type=SearchType_rawText; - new_item.apply_on=ApplyOn_fileAndFolder; - - if(options.contains("SearchType_simpleRegex")) - new_item.search_type=SearchType_simpleRegex; - if(options.contains("SearchType_perlRegex")) - new_item.search_type=SearchType_perlRegex; - if(options.contains("ApplyOn_file")) - new_item.apply_on=ApplyOn_file; - if(options.contains("ApplyOn_folder")) - new_item.apply_on=ApplyOn_folder; - if(options.contains("need_match_all")) - new_item.need_match_all=true; - - if(convertToRegex(new_item)) - exclude << new_item; - - index++; - } - - reShowAll(); -} - -void Filters::reShowAll() -{ - ui->inclusion->clear(); - int index=0; - while(index<include.size()) - { - QString entryShow=include.at(index).search_text+" ("; - QStringList optionsToShow; - switch(include.at(index).search_type) - { - case SearchType_rawText: - optionsToShow << tr("Raw text"); - break; - case SearchType_simpleRegex: - optionsToShow << tr("Simplified regex"); - break; - case SearchType_perlRegex: - optionsToShow << tr("Perl's regex"); - break; - default: - break; - } - switch(include.at(index).apply_on) - { - case ApplyOn_file: - optionsToShow << tr("Only on file"); - break; - case ApplyOn_folder: - optionsToShow << tr("Only on folder"); - break; - default: - break; - } - if(include.at(index).need_match_all) - optionsToShow << tr("Full match"); - entryShow+=optionsToShow.join(","); - entryShow+=")"; - ui->inclusion->addItem(new QListWidgetItem(entryShow)); - index++; - } - ui->exclusion->clear(); - index=0; - while(index<exclude.size()) - { - QString entryShow=exclude.at(index).search_text+" ("; - QStringList optionsToShow; - switch(exclude.at(index).search_type) - { - case SearchType_rawText: - optionsToShow << tr("Raw text"); - break; - case SearchType_simpleRegex: - optionsToShow << tr("Simplified regex"); - break; - case SearchType_perlRegex: - optionsToShow << tr("Perl's regex"); - break; - default: - break; - } - switch(exclude.at(index).apply_on) - { - case ApplyOn_file: - optionsToShow << tr("Only on file"); - break; - case ApplyOn_folder: - optionsToShow << tr("Only on folder"); - break; - default: - break; - } - if(exclude.at(index).need_match_all) - optionsToShow << tr("Full match"); - entryShow+=optionsToShow.join(","); - entryShow+=")"; - ui->exclusion->addItem(new QListWidgetItem(entryShow)); - index++; - } -} - -QList<Filters_rules> Filters::getInclude() -{ - return include; -} - -QList<Filters_rules> Filters::getExclude() -{ - return exclude; -} - -void Filters::newLanguageLoaded() -{ - ui->retranslateUi(this); - reShowAll(); -} - -void Filters::haveNewFilters() -{ - QStringList includeStrings,includeOptions,excludeStrings,excludeOptions; - int index=0; - while(index<include.size()) - { - includeStrings<<include.at(index).search_text; - QStringList optionsToShow; - - switch(include.at(index).search_type) - { - case SearchType_rawText: - optionsToShow << "SearchType_rawText"; - break; - case SearchType_simpleRegex: - optionsToShow << "SearchType_simpleRegex"; - break; - case SearchType_perlRegex: - optionsToShow << "SearchType_perlRegex"; - break; - default: - break; - } - switch(include.at(index).apply_on) - { - case ApplyOn_file: - optionsToShow << "ApplyOn_file"; - break; - case ApplyOn_fileAndFolder: - optionsToShow << "ApplyOn_fileAndFolder"; - break; - case ApplyOn_folder: - optionsToShow << "ApplyOn_folder"; - break; - default: - break; - } - if(include.at(index).need_match_all) - optionsToShow << tr("Full match"); - includeOptions<<optionsToShow.join(";"); - index++; - } - index=0; - while(index<exclude.size()) - { - excludeStrings<<exclude.at(index).search_text; - QStringList optionsToShow; - - switch(exclude.at(index).search_type) - { - case SearchType_rawText: - optionsToShow << "SearchType_rawText"; - break; - case SearchType_simpleRegex: - optionsToShow << "SearchType_simpleRegex"; - break; - case SearchType_perlRegex: - optionsToShow << "SearchType_perlRegex"; - break; - default: - break; - } - switch(exclude.at(index).apply_on) - { - case ApplyOn_file: - optionsToShow << "ApplyOn_file"; - break; - case ApplyOn_fileAndFolder: - optionsToShow << "ApplyOn_fileAndFolder"; - break; - case ApplyOn_folder: - optionsToShow << "ApplyOn_folder"; - break; - default: - break; - } - if(exclude.at(index).need_match_all) - optionsToShow << tr("Full match"); - excludeOptions<<optionsToShow.join(";"); - index++; - } - emit sendNewFilters(includeStrings,includeOptions,excludeStrings,excludeOptions); -} - -bool Filters::convertToRegex(Filters_rules &item) -{ - bool isValid=!item.search_text.isEmpty(); - if(isValid) - { - QRegExp regex; - QString tempString; - if(item.search_type==SearchType_rawText) - { - tempString=QRegExp::escape(item.search_text); - if(tempString.contains('/') || tempString.contains('\\')) - isValid=false; - } - else if(item.search_type==SearchType_simpleRegex) - { - tempString=QRegExp::escape(item.search_text); - tempString.replace("\\*","[^\\\\/]*"); - } - else if(item.search_type==SearchType_perlRegex) - { - tempString=item.search_text; - if(tempString.startsWith('^') && tempString.endsWith('$')) - { - item.need_match_all=true; - tempString.remove(QRegExp("^\\^")); - tempString.remove(QRegExp("\\$$")); - item.search_text=tempString; - } - } - if(isValid) - { - if(item.need_match_all==true) - tempString="^"+tempString+"$"; - regex=QRegExp(tempString); - isValid=regex.isValid() && !regex.isEmpty(); - item.regex=regex; - return true; - } - else - return false; - } - return false; -} - -void Filters::on_remove_exclusion_clicked() -{ - bool removedEntry=false; - int index=0; - while(index<ui->exclusion->count()) - { - if(ui->exclusion->item(index)->isSelected()) - { - delete ui->exclusion->item(index); - exclude.removeAt(index); - removedEntry=true; - } - else - index++; - } - if(removedEntry) - { - reShowAll(); - haveNewFilters(); - } -} - -void Filters::on_remove_inclusion_clicked() -{ - bool removedEntry=false; - int index=0; - while(index<ui->inclusion->count()) - { - if(ui->inclusion->item(index)->isSelected()) - { - delete ui->inclusion->item(index); - include.removeAt(index); - removedEntry=true; - } - else - index++; - } - if(removedEntry) - { - reShowAll(); - haveNewFilters(); - } -} - -void Filters::on_add_exclusion_clicked() -{ - FilterRules dialog(this); - dialog.exec(); - if(dialog.getIsValid()) - { - Filters_rules new_item; - new_item.apply_on=dialog.get_apply_on(); - new_item.need_match_all=dialog.get_need_match_all(); - new_item.search_text=dialog.get_search_text(); - new_item.search_type=dialog.get_search_type(); - exclude << new_item; - reShowAll(); - haveNewFilters(); - } -} - -void Filters::on_buttonBox_clicked(QAbstractButton *button) -{ - if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::RejectRole) - reject(); -} - -void Filters::on_add_inclusion_clicked() -{ - FilterRules dialog(this); - dialog.exec(); - if(dialog.getIsValid()) - { - Filters_rules new_item; - new_item.apply_on=dialog.get_apply_on(); - new_item.need_match_all=dialog.get_need_match_all(); - new_item.search_text=dialog.get_search_text(); - new_item.search_type=dialog.get_search_type(); - if(convertToRegex(new_item)) - include << new_item; - reShowAll(); - haveNewFilters(); - } -} - -void Filters::on_edit_exclusion_clicked() -{ - bool editedEntry=false; - int index=0; - while(index<ui->exclusion->count()) - { - if(ui->exclusion->item(index)->isSelected()) - { - FilterRules dialog(this); - dialog.set_apply_on(exclude[index].apply_on); - dialog.set_need_match_all(exclude[index].need_match_all); - dialog.set_search_text(exclude[index].search_text); - dialog.set_search_type(exclude[index].search_type); - dialog.exec(); - if(dialog.getIsValid()) - { - exclude[index].apply_on=dialog.get_apply_on(); - exclude[index].need_match_all=dialog.get_need_match_all(); - exclude[index].search_text=dialog.get_search_text(); - exclude[index].search_type=dialog.get_search_type(); - if(!convertToRegex(exclude[index])) - exclude.removeAt(index); - editedEntry=true; - } - } - index++; - } - if(editedEntry) - { - reShowAll(); - haveNewFilters(); - } -} - -void Filters::on_edit_inclusion_clicked() -{ - bool editedEntry=false; - int index=0; - while(index<ui->inclusion->count()) - { - if(ui->inclusion->item(index)->isSelected()) - { - FilterRules dialog(this); - dialog.set_apply_on(exclude[index].apply_on); - dialog.set_need_match_all(exclude[index].need_match_all); - dialog.set_search_text(exclude[index].search_text); - dialog.set_search_type(exclude[index].search_type); - dialog.exec(); - if(dialog.getIsValid()) - { - exclude[index].apply_on=dialog.get_apply_on(); - exclude[index].need_match_all=dialog.get_need_match_all(); - exclude[index].search_text=dialog.get_search_text(); - exclude[index].search_type=dialog.get_search_type(); - if(!convertToRegex(exclude[index])) - exclude.removeAt(index); - editedEntry=true; - } - } - index++; - } - if(editedEntry) - { - reShowAll(); - haveNewFilters(); - } -} diff --git a/plugins-alternative/CopyEngine/Rsync/Filters.h b/plugins-alternative/CopyEngine/Rsync/Filters.h deleted file mode 100644 index dcdcb36..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Filters.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef FILTERS_H -#define FILTERS_H - -#include <QDialog> -#include <QStringList> - -#include "FilterRules.h" -#include "StructEnumDefinition_CopyEngine.h" - -namespace Ui { -class Filters; -} - -/** To add/edit one filter rules */ -class Filters : public QDialog -{ - Q_OBJECT -public: - explicit Filters(QWidget *parent = 0); - ~Filters(); - void setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions); - void reShowAll(); - QList<Filters_rules> getInclude(); - QList<Filters_rules> getExclude(); - void newLanguageLoaded(); -private: - Ui::Filters *ui; - QList<Filters_rules> include; - QList<Filters_rules> exclude; - void haveNewFilters(); - bool convertToRegex(Filters_rules &item); -signals: - void sendNewFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions); -private slots: - void on_remove_exclusion_clicked(); - void on_remove_inclusion_clicked(); - void on_add_exclusion_clicked(); - void on_buttonBox_clicked(QAbstractButton *button); - void on_add_inclusion_clicked(); - void on_edit_exclusion_clicked(); - void on_edit_inclusion_clicked(); -}; - -#endif // FILTERS_H diff --git a/plugins-alternative/CopyEngine/Rsync/Filters.ui b/plugins-alternative/CopyEngine/Rsync/Filters.ui deleted file mode 100644 index db8577c..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Filters.ui +++ /dev/null @@ -1,194 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>Filters</class> - <widget class="QDialog" name="Filters"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>507</width> - <height>502</height> - </rect> - </property> - <property name="windowTitle"> - <string>Filters</string> - </property> - <property name="windowIcon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/filter.png</normaloff>:/resources/filter.png</iconset> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>1</number> - </property> - <property name="margin"> - <number>1</number> - </property> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>Exclusion filter</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="spacing"> - <number>1</number> - </property> - <property name="margin"> - <number>2</number> - </property> - <item> - <widget class="QListWidget" name="exclusion"> - <property name="selectionMode"> - <enum>QAbstractItemView::MultiSelection</enum> - </property> - </widget> - </item> - <item> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QToolButton" name="add_exclusion"> - <property name="icon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="edit_exclusion"> - <property name="icon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/edit.png</normaloff>:/resources/edit.png</iconset> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="remove_exclusion"> - <property name="icon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/remove.png</normaloff>:/resources/remove.png</iconset> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer_2"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_2"> - <property name="title"> - <string>Inclusion filter</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <property name="spacing"> - <number>1</number> - </property> - <property name="margin"> - <number>2</number> - </property> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>None = Include all</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QListWidget" name="inclusion"> - <property name="selectionMode"> - <enum>QAbstractItemView::MultiSelection</enum> - </property> - </widget> - </item> - <item> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QToolButton" name="add_inclusion"> - <property name="icon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="edit_inclusion"> - <property name="icon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/edit.png</normaloff>:/resources/edit.png</iconset> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="remove_inclusion"> - <property name="icon"> - <iconset resource="resources.qrc"> - <normaloff>:/resources/remove.png</normaloff>:/resources/remove.png</iconset> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel</set> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources> - <include location="resources.qrc"/> - </resources> - <connections/> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/ar/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts deleted file mode 100644 index 1370c9a..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/de/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="de" sourcelanguage="en"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation>Auf dieser Plattform nicht unterstützt</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation>Datum der letzten Änderung ist falsch</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation>Datum des letzten Zugriffs ist falsch</translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation>Optionen Fehler</translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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's regex</source> - <translation>Perl'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's regex</source> - <translation>Perl's regex</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation>Nur auf Datei</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation>Nur auf Ordner</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation>Spielaufzeichnung</translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation>Kann nicht tun, verschieben oder kopieren Artikel in den falschen gezwungen Modus: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation>Unfähig, die Transferliste sparen: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation>Problem an der Lektüre, der Oder Dateigröße IST Null</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation>Falsche Header: "%1"</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation>Die Transferliste ist im gemischten Modus, aber diese Instanz ist in diesem Modus nicht</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation>Die Transferliste ist im Copy-Mode, aber dieser Fall ist in diesem Modus nicht</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation>Die Transferliste ist in Verschiebe-Modus, aber diese Instanz ist in diesem Modus nicht</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation>Einige Fehler wurden während des Parsing gefunden</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation>Unfähig, die Transferliste geöffnet: %1</translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation>Der Ordner kann nicht erstellt</translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation>Unfähig, die Quelldatei zu lesen: </translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation>Datei während der Lese, möglich Datenänderung abgeschnitten</translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation>erste Umbenennung</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation>%name% - kopieren</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></source> - <extracomment> should not be translated</extracomment> - <translation><html><head/><body><p>Variablen: <span style=" font-weight:600;">%name%</span> für den ursprünglichen Dateinamen</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation><html><head/><body><p>Variablen: <span style=" font-weight:600;">%name%</span> für den ursprünglichen Dateinamen</p><p><span style=" font-weight:600;">%number%</span> für die zusätzliche Zahl</p></body></html></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation>%1 - kopieren</translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation>%1 - kopieren (%2)</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation>Umbenennen von Regeln</translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation>Der Ordner kann nicht entfernen</translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation>%1 - kopieren</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation>%1 - kopieren (%2)</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation>Die Prüfsummen nicht überein</translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation>Unfähig, die Quelldatei zu lesen: </translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation>Datei während der Lese, möglich Datenänderung abgeschnitten</translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation>Der Motor wird gezwungen sich zu bewegen, können Sie mit ihr nicht zu kopieren</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation>Der Motor ist gezwungen, zu kopieren, können Sie nicht mit ihm bewegen</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation>Der Modus wurden vorher gezwungen, es interner Fehler ist, melden Sie dies bitte</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation>Optionen Fehler</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation>Optionen Motor nicht geladen wird, kann nicht auf die Filter zu übersetzen</translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation>Fehler bei der Datei</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation>Fehler</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation>Größe</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation>Geändert</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation>Dateiname</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation>Immer diese Aktion</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation>Legen Sie nach unten</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation>Wiederholen</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation>überspringen</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation>Stornieren</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation>Fehler auf Ordner</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation>Ordnername</translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation>Die Datei existiert</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Quelle</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Ziel</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation>Größe</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation>Geändert</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation>Dateiname</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation>Schlagen neuen Namen</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation>Immer diese Aktion</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation>Umbenennen</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation>überschreiben</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation>überspringen</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation>Stornieren</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation>Überschreiben, wenn neuere</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation>Überschreiben, wenn nicht gleiche Änderungsdatum</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation>%1 - kopieren</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation>%1 - kopieren (%2)</translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation>Diese Dateien sind die gleiche Datei</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation>Die Quelle und das Ziel ist dasselbe</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation>Größe</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation>Geändert</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation>Dateiname</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation>Schlagen neuen Namen</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation>Immer diese Aktion</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation>Umbenennen</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation>überspringen</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation>Stornieren</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation>%1 - kopieren</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation>%1 - kopieren (%2)</translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation>Diese Ordner sind die gleichen Ordner</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Quelle</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Ziel</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation>Die Quelle und das Ziel ist dasselbe</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation>Geändert</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation>Ordnername</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation>Schlagen neuen Namen</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation>Immer diese Aktion</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation>Umbenennen</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation>Fusionieren</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation>überspringen</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation>Stornieren</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation>Ordner bereits vorhanden ist</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation>%1 - kopieren</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation>%1 - kopieren (%2)</translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation>Übertragen Sie die Datei Rechte</translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation>Halten Sie das Datei-Datum</translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation>Blockgröße</translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation>KB</translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation>Auto starten Sie die Übertragung</translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation>Wenn Ordner Fehler</translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation>Fragen</translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation>überspringen</translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation>Fusionieren</translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation>Umbenennen</translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation>Prüfen Sie, ob Zielordner vorhanden ist</translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation>Wenn Ordner Kollision</translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation>Checksum</translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation>Erst nach dem Fehler</translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation>Ignorieren, wenn nicht</translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation>Haben checksum</translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation>Aktivieren Sie OS-Puffer</translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation>Filter</translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation>Umbenennen von Regeln</translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation>OS-Puffer, wenn kleiner als</translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation>%1 - kopieren</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation>%1 - kopieren (%2)</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation>Der Ordner existiert nicht</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation>Der Ordner ist nicht lesbar</translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/el/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts deleted file mode 100644 index 8e00156..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/es/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="es" sourcelanguage="en"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation>No es compatible con esta plataforma</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation>Fecha de última modificación es incorrecto</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation>Fecha de último acceso es incorrecto</translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation>Error de opciones</translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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's regex</source> - <translation>Perl'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's regex</source> - <translation>Perl's regex</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation>Sólo en el archivo</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation>Sólo en la carpeta</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation>Partido completo</translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation>No se puede hacer para mover o copiar elemento en modo incorrecto obligado: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation>No se puede guardar la lista de transferencias: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation>Problema en la lectura, o el tamaño del archivo es nulo</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation>Encabezado incorrecto: "%1"</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation>La lista de transferencia está en modo mixto, pero este caso no es de este modo</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation>La lista de transferencia está en el modo de copia, pero esta instancia no está en este modo</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation>La lista de transferencia es el modo de desplazamiento, pero esta instancia no está en este modo</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation>Algunos errores han sido encontrados durante el análisis de línea</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation>No se puede abrir la lista de transferencias: %1</translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation>No se puede crear la carpeta</translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation>No se puede leer el archivo de origen: </translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation>Archivo truncada durante el cambio de lectura, los datos posibles</translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation>En primer lugar el cambio de nombre</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation>%name% - copia</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></source> - <extracomment> should not be translated</extracomment> - <translation><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> para el nombre del archivo original</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> para el nombre del archivo original</p><p><span style=" font-weight:600;">%number%</span> para el número adicional</p></body></html></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation>Reglas de Cambio de nombre</translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation>No se puede eliminar la carpeta</translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation>Las sumas de comprobación no coincide</translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation>No se puede leer el archivo de origen: </translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation>Archivo truncada durante el cambio de lectura, los datos posibles</translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation>El motor se ve obligado a moverse, no se puede copiar con ella</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation>El motor se ve obligado a copiar, no te puedes mover con él</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation>El modo se han visto obligados con anterioridad, es un error interno, por favor repórtelo</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation>Opciones de error</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation>Opciones del motor no está cargado, no se puede acceder a los filtros</translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation>Error en el archivo</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation>Error</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation>Tamaño</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation>Modificado</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation>Nombre de archivo</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation>Siempre hacer esta acción</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation>Ponga a abajo</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation>Reintentar</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation>Omitir</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation>Cancelar</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation>Error en la carpeta</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation>Nombre de la carpeta</translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation>El archivo ya existe</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Fuente</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Destino</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation>Tamaño</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation>Modificado</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation>Nombre de archivo</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation>Sugerir nuevo nombre</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation>Siempre hacer esta acción</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation>Cambiar el nombre</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation>Sobrescribir</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation>Omitir</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation>Cancelar</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation>Sobrescribir si nuevo</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation>Sobrescribir si no es misma fecha de modificación</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation>Estos archivos son el mismo archivo</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation>La fuente y el destino es el mismo</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation>Tamaño</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation>Modificado</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation>Nombre de archivo</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation>Sugerir nuevo nombre</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation>Siempre hacer esta acción</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation>Cambiar el nombre</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation>Omitir</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation>Cancelar</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation>Esta carpeta es la misma carpeta</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Fuente</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Destino</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation>La fuente y el destino es el mismo</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation>Modificado</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation>Nombre de la carpeta</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation>Sugerir nuevo nombre</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation>Siempre hacer esta acción</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation>Cambiar el nombre</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation>Unir</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation>Omitir</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation>Cancelar</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation>Carpeta ya existe</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation>Transferencia de los derechos de archivo</translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation>Mantener la fecha de archivo</translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation>Tamaño del bloque</translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation>KB</translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation>Auto iniciar la transferencia</translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation>Cuando el error carpeta</translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation>Pedir</translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation>Omitir</translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation>Unir</translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation>Cambiar el nombre</translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation>Compruebe si existe la carpeta de destino</translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation>Cuando la colisión carpeta</translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation>Suma de comprobación</translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation>Sólo después de un error</translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation>No haga caso si no es posible</translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation>Hacer suma de comprobación</translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation>Habilitar el OS de amortiguación</translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation>Filtros</translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation>Reglas de Cambio de nombre</translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation>OS de amortiguación sólo si menor que</translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation>La carpeta no existe</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation>La carpeta no se puede leer</translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts deleted file mode 100644 index 92d565c..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/fr/translation.ts +++ /dev/null @@ -1,810 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="fr" sourcelanguage="en"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation>Non supporté sur cette plateforme</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation>Date de dernière modification du fichier fausse</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation>Date du dernier accès au fichier fausse</translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation>Erreur d'options</translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation>Moteur d'options non chargé, impossible d'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'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'exclusion</translation> - </message> - <message> - <location filename="../../Filters.ui" line="93"/> - <source>Inclusion filter</source> - <translation>Filtre d'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's regex</source> - <translation>Regex perl</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation>Appliquer sur fichier</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation>Appliquer sur dossier</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation>Correspondance totale</translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation>Impossible de faire un déplacement ou une copie dans le mauvais mode forcé: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation>Impossible de sauvegarde la liste de transfer: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation>Probléme à la lecture, ou fichier de taille nulle</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation>Mauvaise en-tête: "%1"</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation>La list de transfer est en mode mixte, mais l'instance n'est pas dans ce mode</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation>La list de transfer est en mode copie, mais l'instance n'est pas dans ce mode</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation>La list de transfer est en mode déplacement, mais l'instance n'est pas dans ce mode</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation>Quelque erreur ont été trouvé durrant l'analise des lignes</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation>Impossible d'ouvrir la list de transfer: %1</translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation>Impossible de créer le répertoire</translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation>Impossible de lire le fichier source: </translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation>Fichier diminué durrant la lecture, possible changement de données</translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation>Premier renommage</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translatorcomment>variables need never be translated</translatorcomment> - <translation>%name% - copie</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></source> - <extracomment> should not be translated</extracomment> - <translatorcomment>variables need never be translated</translatorcomment> - <translation><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> pour le nom originel</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translatorcomment>variables need never be translated</translatorcomment> - <translation><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> pour le nom originel</p><p><span style=" font-weight:600;">%number%</span> pour le nombre extra</p></body></html></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation>%1 - copie</translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copie (%2)</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation>Régles de renommage</translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation>Impossible de supprimer le répertoire</translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation>%1 - copie</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copie (%2)</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation>Les checksums ne correspondent pas</translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation>Impossible de lire le fichier source: </translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation>Fichier diminué durrant la lecture, possible changement de données</translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation>Le moteur est forcé en déplacement, vous ne pouvez pas copier avec</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation>Le moteur est forcé en copie, vous ne pouvez pas déplacer avec</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation>Le mode as été forcé précédement, c'est une erreur interne, merci de le repporter</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation>Erreur d'options</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation>Moteur d'options non chargé, impossible d'accédrer aux filtres</translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation>Erreur sur le fichier</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation>Erreur</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation>Taille</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation>Modifié</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation>Nom de fichier</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation>&Toujours effectuer cette action</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation>Mettre à la fin</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation>Réessayer</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation>&Passer</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation>&Annuler</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation>Erreur sur un dossier</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation>Nom de répertoire</translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation>Le fichier existe</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Source</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Destination</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation>Taille</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation>Modifié</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation>Nom de fichier</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation>Suggérer un &nouveau nom</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation>&Toujours effectuer cette action</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation>&Renommer</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation>&Ecraser</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation>&Passer</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation>&Annuler</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation>Ecraser si plus récent</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation>Ecraser si la date de modification est différente</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation>%1 - copie</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copie (%2)</translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation>Ces fichiers sont identiques</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation>La source et la destination sont identiques</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation>Taille</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation>Modifié</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation>Nom de fichier</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation>Suggérer un &nouveau nom</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation>&Toujours effectuer cette action</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation>&Renommer</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation>&Passer</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation>&Annuler</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation>%1 - copie</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copie (%2)</translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation>Les répertoires sont identiques</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Source</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Destination</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation>La source et la destination sont identiques</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation>Modifié</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation>Nom de répertoire</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation>Suggérer un &nouveau nom</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation>&Toujours effectuer cette action</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation>&Renommer</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation>Fusionner</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation>Passer</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation>&Annuler</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation>Dossier déjà existant</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation>%1 - copie</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copie (%2)</translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation>Transférer les droits des fichiers</translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation>Garder la date du fichier</translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation>En cas d'erreur de répertoire</translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation>Demander</translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation>Passer</translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation>Fusionner</translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation>Renommer</translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation>Vérifier si le répertoire de destination existe</translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation>Taille de block</translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation>Ko</translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation>Démmarer automatiquement le transfert</translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation>Lors d'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'OS</translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation>Filtres</translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation>Régles de renommage</translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation>Buffer de l'OS seulement si plus petit que</translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation>%1 - copie</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copie (%2)</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation>Le répertoire n'existe pas</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation>Le répertoire n'est pas lisible</translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/hi/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/id/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts deleted file mode 100644 index 16adaed..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/it/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="it" sourcelanguage="en"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation>Non supportato su questa piattaforma</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation>Ultima modifica è sbagliato</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation>Ultima data di accesso è sbagliato</translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation>opzioni di errore</translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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's regex</source> - <translation>Perl'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's regex</source> - <translation>Perl's regex</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation>Solo su file</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation>Solo sulla cartella</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation>partita completa</translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation>Impossibile fare per spostare o copiare elemento in male modo forzato: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation>Impossibile salvare la lista dei trasferimenti: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation>Problema alla lettura, o la dimensione del file è nullo</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation>Sbagliato intestazione: "%1"</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation>La lista di trasferimento è in modalità mista, ma questa istanza non è in questa modalità</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation>La lista di trasferimento è in modalità di copia, ma questa istanza non è in questa modalità</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation>La lista di trasferimento è in modalità di spostamento, ma questa istanza non è in questa modalità</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation>Alcuni errori sono stati trovati durante l'analisi linea</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation>Impossibile aprire la lista di trasferimento: %1</translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation>Impossibile creare la cartella</translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation>Impossibile leggere il file sorgente: </translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation>File troncato durante la lettura, i possibili cambiamenti di dati</translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation>Prima ridenominazione</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation>%name% - copia</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></source> - <extracomment> should not be translated</extracomment> - <translation><html><head/><body><p>variabili: <span style=" font-weight:600;">%name%</span> per il nome del file originale</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation><html><head/><body><p>variabili: <span style=" font-weight:600;">%name%</span> per il nome del file originale</p><p><span style=" font-weight:600;">%number%</span> per il numero aggiuntivo</p></body></html></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation>Rinominare le regole</translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation>Impossibile rimuovere la cartella</translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation>Il checksum non corrisponde</translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation>Impossibile leggere il file sorgente: </translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation>File troncato durante la lettura, i possibili cambiamenti di dati</translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation>Il motore è costretto a muoversi, non è possibile copiare con esso</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation>Il motore è costretto a copiare, non è possibile spostare con esso</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation>La modalità sono stati costretti in precedenza, è un errore interno, si prega di segnalarlo</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation>opzioni di errore</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation>Opzioni del motore non viene caricato, non possono accedere ai filtri</translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation>Errore su file</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation>Errore</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation>Dimensione</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation>Modificato</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation>Nome file</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation>Eseguire sempre questa azione</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation>Mettere a fondo</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation>Riprova</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation>Saltare</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation>Annullare</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation>Errore cartella</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation>Nome della cartella</translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation>Il file esiste</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Fonte</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Destinazione</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation>Dimensione</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation>Modificato</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation>Nome file</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation>Suggerisci nuovo nome</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation>Eseguire sempre questa azione</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation>Rinominare</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation>Sovrascrivi</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation>Saltare</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation>Annullare</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation>Sovrascrivi se più recente</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation>Sovrascrivi se non la data di modifica stessa</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation>Questi file sono lo stesso file</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation>La sorgente e destinazione è uguale</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation>Dimensione</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation>Modificato</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation>Nome file</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation>Suggerisci nuovo nome</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation>Eseguire sempre questa azione</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation>Rinominare</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation>Saltare</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation>Annullare</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation>Questo cartelle sono nella stessa cartella</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>Fonte</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>Destinazione</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation>La sorgente e destinazione è uguale</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation>Modificato</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation>Nome della cartella</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation>Suggerisci nuovo nome</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation>Eseguire sempre questa azione</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation>Rinominare</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation>Unire</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation>Saltare</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation>Annullare</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation>Cartella esiste già</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation>Trasferire i diritti di file</translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation>Tenere la data del file</translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation>Dimensione del blocco</translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation>Auto iniziare il trasferimento</translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation>Quando errore cartella</translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation>Chiedere</translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation>Saltare</translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation>Unire</translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation>Rinominare</translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation>Controllare se la cartella di destinazione esiste</translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation>Quando collisione cartella</translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation>Solo dopo l'errore</translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation>Ignora se impossibile</translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation>Fare checksum</translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation>Abilita OS tampone</translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation>Filtri</translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation>Rinominare le regole</translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation>OS tampone solo se inferiori</translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation>%1 - copia</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation>%1 - copia (%2)</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation>La cartella non esiste</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation>La cartella non è leggibile</translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts deleted file mode 100644 index 9c2e5d6..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/ja/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts deleted file mode 100644 index 4cbf604..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/ko/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="ko_KR"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation>이 플랫폼에서 지원되지 않습니다</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation>마지막 수정 날짜가 잘못되었습니다</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation>마지막 엑세스 날짜가 잘못되었습니다</translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation>폴더를 생성할 수 없습니다</translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation>원본 파일 읽기 불가:</translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation>폴더를 제거할 수 없습니다</translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished">원본 파일 읽기 불가:</translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can'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>&Always do this action</source> - <translation>&항상 이 작동 실행</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation>아래에 놓기</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation>재시도</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation>&건너뛰기</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation>&취소</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 &name</source> - <translation>새 &이름 제안</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation>&항상 이 작동 실행</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation>&이름 바꾸기</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation>&덮어씌우기</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation>&건너뛰기</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation>&취소</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation>더 최신이면 덮어씌우기</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation>수정 날짜가 다르면 덮어씌우기</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation 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 &name</source> - <translation>새 &이름 제안</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation>&항상 이 작동 실행</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation>&이름 바꾸기</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation>&건너뛰기</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation>&취소</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 &name</source> - <translation>새 &이름 제안</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation>&항상 이 작동 실행</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation>&이름 바꾸기</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation>합치기</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation>건너뛰기</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation>&취소</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation>파일 권한 전송</translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation>파일 날짜 보존</translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation>블럭 크기</translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation>KB</translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation>전송 자동 시작</translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation>폴더 오류시</translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation>확인</translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation>건너뛰기</translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation>합치기</translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation>이름 바꾸기</translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation>대상 폴드 존재시 확인</translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation>폴더 충돌시</translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation>폴더가 존재하지 않습니다</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation>폴더를 읽을 수 없습니다</translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/nl/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/no/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/pl/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/pt/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts deleted file mode 100644 index cbafed3..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/ru/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0" language="ru" sourcelanguage="en"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation>Не поддерживается на этой платформе</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation>Дата обновления неправильно</translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation>Дата последнего доступа не так</translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation>Опции ошибке</translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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's regex</source> - <translation>Perl'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's regex</source> - <translation>Perl's regex</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation>Только на файл</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation>Только на папку</translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation>Полный матч</translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation>Невозможно сделать, чтобы скопировать или переместить элемент в неправильном форсированном режиме: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation>Невозможно сохранить трансфер: %1</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation>Проблема при чтении или размер файла нулевой</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation>Неправильный заголовок: "%1"</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation>Трансфер в смешанном режиме, но этот экземпляр не в этом режиме</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation>Передача списка в режиме копирования, но этот экземпляр не в этом режиме</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation>Трансфер в режим перемещения, но этот экземпляр не в этом режиме</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation>Некоторые ошибки были обнаружены в ходе разбора линия</translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation>Не удается открыть трансфер: %1</translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation>Невозможно создать папку</translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation>Невозможно прочитать исходный файл: </translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation>Файл усечены во время чтения, возможность изменения данных</translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation>Первое переименование</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation>%name% - копия</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></source> - <extracomment> should not be translated</extracomment> - <translation><html><head/><body><p>Переменные: <span style=" font-weight:600;">%name%</span> по оригинальному названию файла</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation><html><head/><body><p>Переменные: <span style=" font-weight:600;">%name%</span> по оригинальному названию файла</p><p><span style=" font-weight:600;">%number%</span> за дополнительный номер</p></body></html></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation>%1 - копия</translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation>%1 - копия (%2)</translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation>Переименование правила</translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation>Не удается удалить папку</translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation>%1 - копия</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation>%1 - копия (%2)</translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation>Контрольные суммы не совпадают</translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation>Невозможно прочитать исходный файл: </translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation>Файл усечены во время чтения, возможность изменения данных</translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation>Двигатель вынуждены покинуть свои дома, вы не можете скопировать с ним</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation>Двигатель вынужден копии, вы не можете двигаться вместе с ним</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation>Режим был вынужден ранее, это внутренняя ошибка, пожалуйста, сообщите об этом</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation>Опции ошибке</translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation>Параметры двигателя не загружается, не может получить доступ к фильтрам</translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation>Ошибка в файле</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation>ошибка</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation>размер</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation>модифицированный</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation>имя файла</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation>Всегда делайте это действие</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation>Положить в нижней</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation>Повторить</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation>пропускать</translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation>отменить</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation>Ошибка в папку</translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation>имя папки</translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation>Файл существует</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>источник</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>назначение</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation>размер</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation>модифицированный</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation>имя файла</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation>Предложить новое имя</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation>Всегда делайте это действие</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation>переименовать</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation>переписывать</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation>пропускать</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation>отменить</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation>Заменить, если новее</translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation>Заменить, если не ту же дату модификации</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation>%1 - копия</translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation>%1 - копия (%2)</translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation>Эти файлы имеют тот же файл</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation>Источник и назначение такое же,</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation>размер</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation>модифицированный</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation>имя файла</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation>Предложить новое имя</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation>Всегда делайте это действие</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation>переименовать</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation>пропускать</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation>отменить</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation>%1 - копия</translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation>%1 - копия (%2)</translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation>Это папки той же папке,</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation>источник</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation>назначение</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation>Источник и назначение такое же,</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation>модифицированный</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation>имя папки</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation>Предложить новое имя</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation>Всегда делайте это действие</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation>переименовать</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation>слияние</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation>пропускать</translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation>отменить</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation>Папка уже существует</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation>%1 - копия</translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation>%1 - копия (%2)</translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation>Передача файлов прав</translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation>Держите дату файла</translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation>размер блока</translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation>KB</translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation>Авто начать передачу</translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation>Когда папка ошибка</translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation>просить</translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation>пропускать</translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation>слияние</translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation>переименовать</translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation>Убедитесь, что папка существует</translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation>Когда папка столкновения</translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation>Контрольная</translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation>Только после того, как ошибка</translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation>Игнорировать, если невозможно</translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation>У контрольной суммы</translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation>Включить OS буфер</translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation>Фильтры</translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation>Переименование правила</translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation>ОС буфер, только если меньше</translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation>%1 - копия</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation>%1 - копия (%2)</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation>Папка не существует</translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation>Папки не читается</translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/th/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts deleted file mode 100644 index 338cb72..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/tr/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts b/plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts deleted file mode 100644 index 9c2e5d6..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Languages/zh/translation.ts +++ /dev/null @@ -1,806 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.0"> -<context> - <name>AvancedQFile</name> - <message> - <location filename="../../AvancedQFile.cpp" line="28"/> - <location filename="../../AvancedQFile.cpp" line="59"/> - <location filename="../../AvancedQFile.cpp" line="90"/> - <source>Not supported on this platform</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="42"/> - <source>Last modified date is wrong</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../AvancedQFile.cpp" line="73"/> - <source>Last access date is wrong</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Factory</name> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../factory.cpp" line="369"/> - <location filename="../../factory.cpp" line="406"/> - <source>Options engine is not loaded, can'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'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's regex</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="106"/> - <location filename="../../Filters.cpp" line="144"/> - <source>Only on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="109"/> - <location filename="../../Filters.cpp" line="147"/> - <source>Only on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../Filters.cpp" line="115"/> - <location filename="../../Filters.cpp" line="153"/> - <location filename="../../Filters.cpp" line="215"/> - <location filename="../../Filters.cpp" line="254"/> - <source>Full match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ListThread</name> - <message> - <location filename="../../ListThread.cpp" line="1192"/> - <source>Unable do to move or copy item into wrong forced mode: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1199"/> - <source>Unable to save the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1215"/> - <source>Problem at the reading, or file size is null</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1222"/> - <source>Wrong header: "%1"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1231"/> - <source>The transfer list is in mixed mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1240"/> - <source>The transfer list is in copy mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1246"/> - <source>The transfer list is in move mode, but this instance is not in this mode</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1293"/> - <source>Some error have been found during the line parsing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ListThread.cpp" line="1299"/> - <source>Unable to open the transfer list: %1</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MkPath</name> - <message> - <location filename="../../MkPath.cpp" line="62"/> - <source>Unable to create the folder</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ReadThread</name> - <message> - <location filename="../../ReadThread.cpp" line="154"/> - <location filename="../../ReadThread.cpp" line="316"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../ReadThread.cpp" line="193"/> - <location filename="../../ReadThread.cpp" line="373"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RenamingRules</name> - <message> - <location filename="../../RenamingRules.ui" line="14"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="26"/> - <source>First renaming</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="32"/> - <source>%name% - copy</source> - <extracomment>%name% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.ui" line="39"/> - <source><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></source> - <extracomment>%name%, %number% should not be translated</extracomment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="39"/> - <location filename="../../RenamingRules.cpp" line="62"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RenamingRules.cpp" line="43"/> - <location filename="../../RenamingRules.cpp" line="73"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RmPath</name> - <message> - <location filename="../../RmPath.cpp" line="61"/> - <location filename="../../RmPath.cpp" line="75"/> - <source>Unable to remove the folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../RmPath.cpp" line="85"/> - <source>Unable to remove the file</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>TransferThread</name> - <message> - <location filename="../../TransferThread.cpp" line="312"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="322"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../TransferThread.cpp" line="627"/> - <source>The checksums not match</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>WriteThread</name> - <message> - <location filename="../../WriteThread.cpp" line="443"/> - <source>Unable to read the source file: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../WriteThread.cpp" line="481"/> - <source>File truncated during the read, possible data change</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>copyEngine</name> - <message> - <location filename="../../copyEngine.cpp" line="260"/> - <location filename="../../copyEngine.cpp" line="278"/> - <source>The engine is forced to move, you can't copy with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="289"/> - <location filename="../../copyEngine.cpp" line="307"/> - <source>The engine is forced to copy, you can't move with it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="521"/> - <source>The mode have been forced previously, it's internal error, please report it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../copyEngine.cpp" line="795"/> - <source>Options engine is not loaded, can't access to the filters</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileErrorDialog</name> - <message> - <location filename="../../fileErrorDialog.ui" line="14"/> - <source>Error on file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="20"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="56"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="73"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="90"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="136"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="156"/> - <source>Put to bottom</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="163"/> - <source>Retry</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="170"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.ui" line="177"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="29"/> - <source>Error on folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileErrorDialog.cpp" line="32"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileExistsDialog</name> - <message> - <location filename="../../fileExistsDialog.ui" line="14"/> - <source>The file exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="82"/> - <location filename="../../fileExistsDialog.ui" line="153"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="99"/> - <location filename="../../fileExistsDialog.ui" line="170"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="116"/> - <location filename="../../fileExistsDialog.ui" line="187"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="243"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="254"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="274"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="281"/> - <source>&Overwrite</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="291"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="298"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="307"/> - <source>Overwrite if newer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.ui" line="312"/> - <source>Overwrite if not same modification date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="102"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileExistsDialog.cpp" line="112"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>fileIsSameDialog</name> - <message> - <location filename="../../fileIsSameDialog.ui" line="14"/> - <source>This files are the same file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="20"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="47"/> - <source>Size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="64"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="81"/> - <source>File name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="137"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="148"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="168"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="175"/> - <source>&Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.ui" line="182"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="87"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../fileIsSameDialog.cpp" line="97"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>folderExistsDialog</name> - <message> - <location filename="../../folderExistsDialog.ui" line="14"/> - <source>This folders are the same folder</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="34"/> - <source>Source</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="50"/> - <source>Destination</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="62"/> - <source>The source and destination is same</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="89"/> - <location filename="../../folderExistsDialog.ui" line="140"/> - <source>Modified</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="106"/> - <location filename="../../folderExistsDialog.ui" line="150"/> - <source>Folder name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="200"/> - <source>Suggest new &name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="211"/> - <source>&Always do this action</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="218"/> - <source>&Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="225"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="232"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.ui" line="239"/> - <source>&Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="29"/> - <source>Folder already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="85"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../folderExistsDialog.cpp" line="95"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>options</name> - <message> - <location filename="../../options.ui" line="23"/> - <source>Transfer the file rights</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="33"/> - <source>Keep the file date</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="128"/> - <source>Checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="144"/> - <source>Only after error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="154"/> - <source>Ignore if impossible</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="171"/> - <source>Do checksum</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="181"/> - <source>Enable OS buffer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="191"/> - <source>OS buffer only if smaller than</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="214"/> - <source>Block size</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="234"/> - <source>Filters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="241"/> - <source>Renaming rules</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="255"/> - <source>Rsync (only in copy mode)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="43"/> - <location filename="../../options.ui" line="198"/> - <source>KB</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="56"/> - <source>Auto start the transfer</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="66"/> - <source>When folder error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="74"/> - <location filename="../../options.ui" line="95"/> - <source>Ask</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="79"/> - <location filename="../../options.ui" line="105"/> - <source>Skip</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="100"/> - <source>Merge</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="110"/> - <source>Rename</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="118"/> - <source>Check if destination folder exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../options.ui" line="87"/> - <source>When folder collision</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>scanFileOrFolder</name> - <message> - <location filename="../../scanFileOrFolder.cpp" line="219"/> - <location filename="../../scanFileOrFolder.cpp" line="283"/> - <source>%1 - copy</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="229"/> - <location filename="../../scanFileOrFolder.cpp" line="293"/> - <source>%1 - copy (%2)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="327"/> - <source>The folder not exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../scanFileOrFolder.cpp" line="329"/> - <source>The folder is not readable</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/plugins-alternative/CopyEngine/Rsync/ListThread.cpp b/plugins-alternative/CopyEngine/Rsync/ListThread.cpp deleted file mode 100755 index e49cea5..0000000 --- a/plugins-alternative/CopyEngine/Rsync/ListThread.cpp +++ /dev/null @@ -1,1720 +0,0 @@ -#include "ListThread.h" - -ListThread::ListThread(FacilityInterface * facilityInterface) -{ - qRegisterMetaType<DebugLevel>("DebugLevel"); - qRegisterMetaType<ItemOfCopyList>("ItemOfCopyList"); - qRegisterMetaType<QFileInfo>("QFileInfo"); - qRegisterMetaType<CopyMode>("CopyMode"); - qRegisterMetaType<QList<Filters_rules> >("QList<Filters_rules>"); - qRegisterMetaType<TransferStat>("TransferStat"); - - moveToThread(this); - start(HighPriority); - this->facilityInterface = facilityInterface; - putInPause = false; - sourceDrive = ""; - sourceDriveMultiple = false; - destinationDrive = ""; - destinationDriveMultiple = false; - stopIt = false; - bytesToTransfer = 0; - bytesTransfered = 0; - idIncrementNumber = 1; - actualRealByteTransfered = 0; - preOperationNumber = 0; - numberOfTranferRuning = 0; - numberOfTransferIntoToDoList = 0; - numberOfInodeOperation = 0; - maxSpeed = 0; - doRightTransfer = false; - rsync = false; - keepDate = false; - blockSize = 1024; - osBufferLimit = 512; - alwaysDoThisActionForFileExists = FileExists_NotSet; - doChecksum = false; - checksumIgnoreIfImpossible = true; - checksumOnlyOnError = true; - osBuffer = false; - osBufferLimited = false; - forcedMode = false; - - #if ! defined (Q_CC_GNU) - ui->keepDate->setEnabled(false); - ui->keepDate->setToolTip("Not supported with this compiler"); - #endif - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - connect(&timerUpdateDebugDialog,SIGNAL(timeout()),this,SLOT(timedUpdateDebugDialog())); - timerUpdateDebugDialog.start(ULTRACOPIER_PLUGIN_DEBUG_WINDOW_TIMER); - #endif - connect(this, SIGNAL(tryCancel()), this,SLOT(cancel()), Qt::QueuedConnection); - connect(this, SIGNAL(askNewTransferThread()), this,SLOT(createTransferThread()), Qt::QueuedConnection); - connect(&mkPathQueue, SIGNAL(firstFolderFinish()), this,SLOT(mkPathFirstFolderFinish()), Qt::QueuedConnection); - connect(&rmPathQueue, SIGNAL(firstFolderFinish()), this,SLOT(rmPathFirstFolderFinish()), Qt::QueuedConnection); - connect(&mkPathQueue, SIGNAL(errorOnFolder(QFileInfo,QString)), this,SIGNAL(mkPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection); - connect(&rmPathQueue, SIGNAL(errorOnFolder(QFileInfo,QString)), this,SIGNAL(rmPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection); - connect(this, SIGNAL(send_syncTransferList()), this,SLOT(syncTransferList_internal()), Qt::QueuedConnection); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - connect(&mkPathQueue, SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection); - connect(&rmPathQueue, SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection); - #endif // ULTRACOPIER_PLUGIN_DEBUG - - emit askNewTransferThread(); - mkpathTransfer.release(); -} - -ListThread::~ListThread() -{ - emit tryCancel(); - waitCancel.acquire(); - quit(); - wait(); -} - -//transfer is finished -void ListThread::transferInodeIsClosed() -{ - numberOfInodeOperation--; - temp_transfer_thread=qobject_cast<TransferThread *>(QObject::sender()); - if(temp_transfer_thread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!")); - return; - } - isFound=false; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - int countLocalParse=0; - #endif - if(temp_transfer_thread->getStat()!=TransferStat_Idle) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not idle!")); - return; - } - int_for_internal_loop=0; - loop_size=actionToDoListTransfer.size(); - while(int_for_internal_loop<loop_size) - { - if(actionToDoListTransfer.at(int_for_internal_loop).id==temp_transfer_thread->transferId) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("[%1] have finish, put at idle; for id: %2").arg(int_for_internal_loop).arg(temp_transfer_thread->transferId)); - returnActionOnCopyList newAction; - newAction.type=RemoveItem; - newAction.addAction.id=temp_transfer_thread->transferId; - newAction.userAction.position=int_for_internal_loop; - actionDone << newAction; - /// \todo check if item is at the right thread - actionToDoListTransfer.removeAt(int_for_internal_loop); - if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0) - updateTheStatus(); - - temp_transfer_thread->transferId=0; - temp_transfer_thread->transferSize=0; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - countLocalParse++; - #endif - isFound=true; - //emit newActionOnList(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"numberOfTranferRuning: "+QString::number(numberOfTranferRuning)); - if(actionToDoListTransfer.size()==0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"numberOfTranferRuning==0"); - actionToDoListInode << actionToDoListInode_afterTheTransfer; - actionToDoListInode_afterTheTransfer.clear(); - doNewActions_inode_manipulation(); - } - break; - } - int_for_internal_loop++; - } - if(!isFound) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("unable to found item into the todo list, id: %1, index: %2").arg(temp_transfer_thread->transferId).arg(int_for_loop)); - temp_transfer_thread->transferId=0; - temp_transfer_thread->transferSize=0; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("countLocalParse: %1, actionToDoList.size(): %2").arg(countLocalParse).arg(actionToDoListTransfer.size())); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - if(countLocalParse!=1) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("countLocalParse != 1")); - #endif - doNewActions_inode_manipulation(); -} - -//transfer is finished -void ListThread::transferIsFinished() -{ - temp_transfer_thread=qobject_cast<TransferThread *>(QObject::sender()); - if(temp_transfer_thread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!")); - return; - } - - //add the current size of file, to general size because it's finish - copiedSize=temp_transfer_thread->copiedSize(); - if(copiedSize>(qint64)temp_transfer_thread->transferSize) - { - oversize=copiedSize-temp_transfer_thread->transferSize; - bytesToTransfer+=oversize; - bytesTransfered+=oversize; - } - bytesTransfered+=temp_transfer_thread->transferSize; - -// emit newTransferStop(temp_transfer_thread->transferId); - numberOfTranferRuning--; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start transferIsFinished(), numberOfTranferRuning: "+QString::number(numberOfTranferRuning)); - doNewActions_start_transfer(); -} - -/** \brief put the current file at bottom in case of error -\note ONLY IN CASE OF ERROR */ -void ListThread::transferPutAtBottom() -{ - TransferThread *transfer=qobject_cast<TransferThread *>(QObject::sender()); - if(transfer==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!")); - return; - } - transfer->skip(); - bool isFound=false; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - int countLocalParse=0; - #endif - int indexAction=0; - while(indexAction<actionToDoListTransfer.size()) - { - if(actionToDoListTransfer.at(indexAction).id==transfer->transferId) - { - //push for interface at the end - returnActionOnCopyList newAction; - newAction.type=MoveItem; - newAction.addAction.id=transfer->transferId; - newAction.userAction.position=actionToDoListTransfer.size()-1; - actionDone << newAction; - //do the wait stat - actionToDoListTransfer[indexAction].isRunning=false; - //move at the end - actionToDoListTransfer.move(indexAction,actionToDoListTransfer.size()-1); - //reset the thread list stat - transfer->transferId=0; - transfer->transferSize=0; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - countLocalParse++; - #endif - isFound=true; - break; - } - indexAction++; - } - if(!isFound) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("unable to found item into the todo list, id: %1, index: %2").arg(transfer->transferId)); - transfer->transferId=0; - transfer->transferSize=0; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("countLocalParse: %1").arg(countLocalParse)); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - if(countLocalParse!=1) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("countLocalParse != 1")); - #endif -} - -//set the copy info and options before runing -void ListThread::setRightTransfer(const bool doRightTransfer) -{ - this->doRightTransfer=doRightTransfer; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->setRightTransfer(doRightTransfer); - index++; - } -} - -//set keep date -void ListThread::setKeepDate(const bool keepDate) -{ - this->keepDate=keepDate; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->setKeepDate(keepDate); - index++; - } -} - -//set block size in KB -void ListThread::setBlockSize(const int blockSize) -{ - this->blockSize=blockSize; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->setBlockSize(blockSize); - index++; - } -} - -//set auto start -void ListThread::setAutoStart(const bool autoStart) -{ - this->autoStart=autoStart; -} - -/// \brief set rsync -void ListThread::setRsync(const bool rsync) -{ - this->rsync=rsync; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->setRsync(rsync); - index++; - } - for(int i=0;i<scanFileOrFolderThreadsPool.size();i++) - scanFileOrFolderThreadsPool.at(i)->setRsync(rsync); -} - -//set check destination folder -void ListThread::setCheckDestinationFolderExists(const bool checkDestinationFolderExists) -{ - this->checkDestinationFolderExists=checkDestinationFolderExists; - for(int i=0;i<scanFileOrFolderThreadsPool.size();i++) - scanFileOrFolderThreadsPool.at(i)->setCheckDestinationFolderExists(checkDestinationFolderExists && alwaysDoThisActionForFolderExists!=FolderExists_Merge); -} - -void ListThread::fileTransfer(const QFileInfo &sourceFileInfo,const QFileInfo &destinationFileInfo,const CopyMode &mode) -{ - addToTransfer(sourceFileInfo,destinationFileInfo,mode); -} - -// -> add thread safe, by Qt::BlockingQueuedConnection -bool ListThread::haveSameSource(QStringList sources) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(sourceDriveMultiple) - return false; - if(sourceDrive.isEmpty()) - return true; - int index=0; - while(index<sources.size()) - { -// if(threadOfTheTransfer.getDrive(sources.at(index))!=sourceDrive) -// return false; - index++; - } - return true; -} - -// -> add thread safe, by Qt::BlockingQueuedConnection -bool ListThread::haveSameDestination(QString destination) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(destinationDriveMultiple) - return false; - if(destinationDrive.isEmpty()) - return true; - int index=0; - while(index<destination.size()) - { -// if(threadOfTheTransfer.getDrive(destination.at(index))!=destinationDrive) -// return false; - index++; - } - return true; -} - -scanFileOrFolder * ListThread::newScanThread(CopyMode mode) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start with: "+QString::number(mode)); - - //create new thread because is auto-detroyed - scanFileOrFolderThreadsPool << new scanFileOrFolder(mode); - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(finishedTheListing()), this,SLOT(scanThreadHaveFinish()), Qt::QueuedConnection); - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(fileTransfer(QFileInfo,QFileInfo,CopyMode)), this,SLOT(fileTransfer(QFileInfo,QFileInfo,CopyMode)), Qt::QueuedConnection); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int))); - #endif - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(newFolderListing(QString)), this,SIGNAL(newFolderListing(QString))); - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(addToRmPath(QString,int)), this,SLOT(addToRmPath(QString,int)), Qt::QueuedConnection); - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(addToRmForRsync(QString)), this,SLOT(addToRmForRsync(QString)), Qt::QueuedConnection); - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(addToMkPath(QString)), this,SLOT(addToMkPath(QString)), Qt::QueuedConnection); - - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(errorOnFolder(QFileInfo,QString)), this,SLOT(errorOnFolder(QFileInfo,QString)), Qt::QueuedConnection); - connect(scanFileOrFolderThreadsPool.last(),SIGNAL(folderAlreadyExists(QFileInfo,QFileInfo,bool)), this,SLOT(folderAlreadyExists(QFileInfo,QFileInfo,bool)), Qt::QueuedConnection); - - scanFileOrFolderThreadsPool.last()->setRsync(rsync); - scanFileOrFolderThreadsPool.last()->setFilters(include,exclude); - scanFileOrFolderThreadsPool.last()->setCheckDestinationFolderExists(checkDestinationFolderExists && alwaysDoThisActionForFolderExists!=FolderExists_Merge); - if(scanFileOrFolderThreadsPool.size()==1) - updateTheStatus(); - scanFileOrFolderThreadsPool.last()->setRenamingRules(firstRenamingRule,otherRenamingRule); - return scanFileOrFolderThreadsPool.last(); -} - -void ListThread::scanThreadHaveFinish(bool skipFirstRemove) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"listing thread have finish, skipFirstRemove: "+QString::number(skipFirstRemove)); - if(!skipFirstRemove) - { - scanFileOrFolder * senderThread = qobject_cast<scanFileOrFolder *>(QObject::sender()); - if(senderThread==NULL) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"sender pointer null (plugin copy engine)"); - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the next thread, scanFileOrFolderThreadsPool.size(): "+QString::number(scanFileOrFolderThreadsPool.size())); - delete senderThread; - scanFileOrFolderThreadsPool.removeOne(senderThread); - if(scanFileOrFolderThreadsPool.size()==0) - updateTheStatus(); - } - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the next thread, scanFileOrFolderThreadsPool.size(): "+QString::number(scanFileOrFolderThreadsPool.size())); - if(scanFileOrFolderThreadsPool.size()>0) - { - //then start the next listing threads - if(scanFileOrFolderThreadsPool.first()->isFinished()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"Start listing thread"); - scanFileOrFolderThreadsPool.first()->start(); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"The listing thread is already running"); - } - else - { - if(autoStart) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Auto start the copy"); - startGeneralTransfer(); - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Put the copy engine in pause"); - putInPause=true; - emit isInPause(true); - } - } -} - -void ListThread::startGeneralTransfer() -{ - doNewActions_inode_manipulation(); -} - -// -> add thread safe, by Qt::BlockingQueuedConnection -bool ListThread::newCopy(QStringList sources,QString destination) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+sources.join(";")+", destination: "+destination); - scanFileOrFolder * scanFileOrFolderThread = newScanThread(Copy); - if(scanFileOrFolderThread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to get new thread"); - return false; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the listing"); - scanFileOrFolderThread->addToList(sources,destination); - scanThreadHaveFinish(true); - return true; -} - -// -> add thread safe, by Qt::BlockingQueuedConnection -bool ListThread::newMove(QStringList sources,QString destination) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - scanFileOrFolder * scanFileOrFolderThread = newScanThread(Move); - if(scanFileOrFolderThread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to get new thread"); - return false; - } - scanFileOrFolderThread->addToList(sources,destination); - scanThreadHaveFinish(true); -/* int index=0; - while(index<sources.size() && !sourceDriveMultiple) - { - QString tempDrive=threadOfTheTransfer.getDrive(sources.at(index)); - if(sourceDrive=="") - sourceDrive=tempDrive; - if(tempDrive!=sourceDrive) - sourceDriveMultiple=true; - index++; - }*/ -/* QString tempDrive=threadOfTheTransfer.getDrive(destination); - if(!destinationDriveMultiple) - { - if(tempDrive=="") - destinationDrive=tempDrive; - if(tempDrive!=destinationDrive) - destinationDriveMultiple=true; - }*/ - return true; -} - -void ListThread::setDrive(QStringList drives) -{ - this->drives=drives; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->setDrive(drives); - index++; - } -} - -void ListThread::setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists) -{ - this->alwaysDoThisActionForFileExists=alwaysDoThisActionForFileExists; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists); - index++; - } -} - -/** \brief to sync the transfer list - * Used when the interface is changed, useful to minimize the memory size */ -void ListThread::syncTransferList() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit send_syncTransferList(); -} - -//set the folder local colision -void ListThread::setFolderColision(FolderExistsAction alwaysDoThisActionForFolderExists) -{ - this->alwaysDoThisActionForFolderExists=alwaysDoThisActionForFolderExists; -} - -bool ListThread::getReturnBoolToCopyEngine() -{ - return returnBoolToCopyEngine; -} - -QPair<quint64,quint64> ListThread::getReturnPairQuint64ToCopyEngine() -{ - return returnPairQuint64ToCopyEngine; -} - -ItemOfCopyList ListThread::getReturnItemOfCopyListToCopyEngine() -{ - return returnItemOfCopyListToCopyEngine; -} - -void ListThread::set_doChecksum(bool doChecksum) -{ - this->doChecksum=doChecksum; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->set_doChecksum(doChecksum); - index++; - } -} - -void ListThread::set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible) -{ - this->checksumIgnoreIfImpossible=checksumIgnoreIfImpossible; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible); - index++; - } -} - -void ListThread::set_checksumOnlyOnError(bool checksumOnlyOnError) -{ - this->checksumOnlyOnError=checksumOnlyOnError; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->set_checksumOnlyOnError(checksumOnlyOnError); - index++; - } -} - -void ListThread::set_osBuffer(bool osBuffer) -{ - this->osBuffer=osBuffer; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->set_osBuffer(osBuffer); - index++; - } -} - -void ListThread::set_osBufferLimited(bool osBufferLimited) -{ - this->osBufferLimited=osBufferLimited; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->set_osBufferLimited(osBufferLimited); - index++; - } -} - -void ListThread::realByteTransfered() -{ - quint64 totalRealByteTransfered=0; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - totalRealByteTransfered+=transferThreadList.at(index)->realByteTransfered(); - index++; - } - emit send_realBytesTransfered(totalRealByteTransfered); -} - -void ListThread::pause() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(putInPause) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Seam already in pause!"); - return; - } - putInPause=true; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->pause(); - index++; - } - emit isInPause(true); -} - -void ListThread::resume() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(!putInPause) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Seam already resumed!"); - return; - } - putInPause=false; - startGeneralTransfer(); - doNewActions_start_transfer(); - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->resume(); - index++; - } - emit isInPause(false); -} - -void ListThread::skip(const quint64 &id) -{ - skipInternal(id); -// emit newActionOnList(); -} - -bool ListThread::skipInternal(const quint64 &id) -{ - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - if(transferThreadList.at(index)->transferId==id) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("skip one transfer: %1").arg(id)); - transferThreadList.at(index)->skip(); - return true; - } - index++; - } - int_for_internal_loop=0; - loop_size=actionToDoListTransfer.size(); - while(int_for_internal_loop<loop_size) - { - if(actionToDoListTransfer.at(int_for_internal_loop).id==id) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("[%1] remove at not running, for id: %2").arg(int_for_internal_loop).arg(id)); - returnActionOnCopyList newAction; - newAction.type=RemoveItem; - newAction.addAction.id=id; - newAction.userAction.position=int_for_internal_loop; - actionDone << newAction; - actionToDoListTransfer.removeAt(int_for_internal_loop); - if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0) - updateTheStatus(); - return true; - } - int_for_internal_loop++; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("skip transfer not found: %1").arg(id)); - return false; -} - -void ListThread::cancel() -{ - if(stopIt) - { - waitCancel.release(); - return; - } - stopIt=true; - int index=0; - loop_size=transferThreadList.size(); - while(index<loop_size) - { - transferThreadList.at(index)->stop(); - delete transferThreadList.at(index);//->deleteLayer(); - transferThreadList[index]=NULL; - index++; - } - index=0; - loop_size=scanFileOrFolderThreadsPool.size(); - while(index<loop_size) - { - scanFileOrFolderThreadsPool.at(index)->stop(); - delete scanFileOrFolderThreadsPool.at(index);//->deleteLayer(); - scanFileOrFolderThreadsPool[index]=NULL; - index++; - } - quit(); - waitCancel.release(); - emit canBeDeleted(); -} - -//speed limitation -qint64 ListThread::getSpeedLimitation() -{ - return maxSpeed; -} - -bool ListThread::setSpeedLimitation(const qint64 &speedLimitation) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"maxSpeed: "+QString::number(speedLimitation)); - maxSpeed=speedLimitation; - int_for_loop=0; - loop_size=transferThreadList.size(); - while(int_for_loop<loop_size) - { - transferThreadList.at(int_for_loop)->setMaxSpeed(speedLimitation/ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER); - int_for_loop++; - } - return true; -} - -void ListThread::updateTheStatus() -{ - /*if(threadOfTheTransfer.haveContent()) - copy=true;*/ - updateTheStatus_listing=scanFileOrFolderThreadsPool.size()>0; - updateTheStatus_copying=actionToDoListTransfer.size()>0 || actionToDoListInode.size()>0 || actionToDoListInode_afterTheTransfer.size()>0; - if(updateTheStatus_copying && updateTheStatus_listing) - updateTheStatus_action_in_progress=CopyingAndListing; - else if(updateTheStatus_listing) - updateTheStatus_action_in_progress=Listing; - else if(updateTheStatus_copying) - updateTheStatus_action_in_progress=Copying; - else - updateTheStatus_action_in_progress=Idle; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"emit actionInProgess("+QString::number(updateTheStatus_action_in_progress)+")"); - emit actionInProgess(updateTheStatus_action_in_progress); - if(updateTheStatus_action_in_progress==Idle) - sendActionDone(); -} - -//set data local to the thread -void ListThread::setAlwaysFileExistsAction(FileExistsAction alwaysDoThisActionForFileExists) -{ - this->alwaysDoThisActionForFileExists=alwaysDoThisActionForFileExists; - int_for_loop=0; - loop_size=transferThreadList.size(); - while(int_for_loop<loop_size) - { - transferThreadList.at(int_for_loop)->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists); - int_for_loop++; - } -} - -//mk path to do -quint64 ListThread::addToMkPath(const QString& folder) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"folder: "+folder); - actionToDoInode temp; - temp.type = ActionType_MkPath; - temp.id = generateIdNumber(); - temp.folder.setFile(folder); - temp.isRunning = false; - actionToDoListInode << temp; - return temp.id; -} - -//add rm path to do -void ListThread::addToRmPath(const QString& folder,const int& inodeToRemove) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"folder: "+folder+",inodeToRemove: "+QString::number(inodeToRemove)); - actionToDoInode temp; - temp.type = ActionType_RmPath; - temp.id = generateIdNumber(); - temp.size = inodeToRemove; - temp.folder.setFile(folder); - temp.isRunning = false; - if(inodeToRemove==0) - actionToDoListInode << temp; - else - actionToDoListInode_afterTheTransfer << temp; -} - -//rsync rm -void ListThread::addToRmForRsync(const QString& inode) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"inode: "+inode); - actionToDoInode temp; - temp.type = ActionType_RmSync; - temp.id = generateIdNumber(); - temp.folder.setFile(inode); - temp.isRunning = false; - actionToDoListInode << temp; -} - -//send action done -void ListThread::sendActionDone() -{ - if(actionDone.size()>0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit newActionOnList(actionDone); - actionDone.clear(); - } -} - -//send progression -void ListThread::sendProgression() -{ - if(actionToDoListTransfer.size()==0) - return; - oversize=0; - currentProgression=0; - int_for_loop=0; - loop_size=transferThreadList.size(); - while(int_for_loop<loop_size) - { - temp_transfer_thread=transferThreadList.at(int_for_loop); - if(temp_transfer_thread->getStat()==TransferStat_Transfer || temp_transfer_thread->getStat()==TransferStat_Checksum) - { - copiedSize=temp_transfer_thread->copiedSize(); - - //for the general progression - currentProgression+=copiedSize; - - //the oversize (when the file is bigger after/during the copy then what was during the listing) - if(copiedSize>(qint64)temp_transfer_thread->transferSize) - localOverSize=copiedSize-temp_transfer_thread->transferSize; - else - localOverSize=0; - - //the current size copied - totalSize=temp_transfer_thread->transferSize+localOverSize; - if(temp_transfer_thread->getStat()==TransferStat_Checksum) - tempItem.current=temp_transfer_thread->realByteTransfered(); - else - tempItem.current=copiedSize; - tempItem.id=temp_transfer_thread->transferId; - tempItem.total=totalSize; - progressionList << tempItem; - - //add the oversize to the general progression - oversize+=localOverSize; - } - int_for_loop++; - } - emit pushFileProgression(progressionList); - progressionList.clear(); - emit pushGeneralProgression(bytesTransfered+currentProgression,bytesToTransfer+oversize); - realByteTransfered(); -} - -//send the progression, after full reset of the interface (then all is empty) -void ListThread::syncTransferList_internal() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit syncReady(); - actionDone.clear(); - //do list operation - TransferThread *transferThread; - loop_size=actionToDoListTransfer.size(); - loop_sub_size=transferThreadList.size(); - //this loop to have at max ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT*ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT, not ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT*transferThreadList.size() - for(int_for_loop=0; int_for_loop<loop_size; ++int_for_loop) { - const actionToDoTransfer &item=actionToDoListTransfer.at(int_for_loop); - returnActionOnCopyList newAction; - newAction.type = PreOperation; - newAction.addAction.id = item.id; - newAction.addAction.sourceFullPath = item.source.absoluteFilePath(); - newAction.addAction.sourceFileName = item.source.fileName(); - newAction.addAction.destinationFullPath = item.destination.absoluteFilePath(); - newAction.addAction.destinationFileName = item.destination.fileName(); - newAction.addAction.size = item.size; - newAction.addAction.mode = item.mode; - actionDone << newAction; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, size: %2, name: %3, size2: %4").arg(item.id).arg(item.size).arg(item.source.absoluteFilePath()).arg(newAction.addAction.size)); - if(item.isRunning) - { - for(int_for_internal_loop=0; int_for_internal_loop<loop_sub_size; ++int_for_internal_loop) { - transferThread=transferThreadList.at(int_for_internal_loop); - returnActionOnCopyList newAction; - newAction.type = PreOperation; - newAction.addAction.id = item.id; - newAction.addAction.sourceFullPath = item.source.absoluteFilePath(); - newAction.addAction.sourceFileName = item.source.fileName(); - newAction.addAction.destinationFullPath = item.destination.absoluteFilePath(); - newAction.addAction.destinationFileName = item.destination.fileName(); - newAction.addAction.size = item.size; - newAction.addAction.mode = item.mode; - actionDone << newAction; - if(transferThread->getStat()!=TransferStat_PreOperation) - { - returnActionOnCopyList newAction; - switch(transferThread->getStat()) - { - case TransferStat_Transfer: - newAction.type=Transfer; - break; - case TransferStat_PostTransfer: - newAction.type=PostOperation; - break; - default: - break; - } - newAction.addAction.id = item.id; - actionDone << newAction; - } - } - } - } -} - -//add file transfer to do -quint64 ListThread::addToTransfer(const QFileInfo& source,const QFileInfo& destination,const CopyMode& mode) -{ - //add to transfer list - numberOfTransferIntoToDoList++; - bytesToTransfer+= source.size(); - actionToDoTransfer temp; - temp.id = generateIdNumber(); - temp.size = source.size(); - temp.source = source; - temp.destination= destination; - temp.mode = mode; - temp.isRunning = false; - actionToDoListTransfer << temp; - //push the new transfer to interface - returnActionOnCopyList newAction; - newAction.type = AddingItem; - newAction.addAction.id = temp.id; - newAction.addAction.sourceFullPath = source.absoluteFilePath(); - newAction.addAction.sourceFileName = source.fileName(); - newAction.addAction.destinationFullPath = destination.absoluteFilePath(); - newAction.addAction.destinationFileName = destination.fileName(); - newAction.addAction.size = temp.size; - newAction.addAction.mode = mode; - actionDone << newAction; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("source: %1, destination: %2, add entry: %3, size: %4, size2: %5").arg(source.absoluteFilePath()).arg(destination.absoluteFilePath()).arg(temp.id).arg(temp.size).arg(newAction.addAction.size)); - return temp.id; -} - -//generate id number -quint64 ListThread::generateIdNumber() -{ - idIncrementNumber++; - if(idIncrementNumber>(((quint64)1024*1024)*1024*1024*2)) - idIncrementNumber=0; - return idIncrementNumber; -} - -//warning the first entry is accessible will copy -void ListThread::removeItems(const QList<int> &ids) -{ - for(int i=0;i<ids.size();i++) - skipInternal(ids.at(i)); -// emit newActionOnList(); -} - -//put on top -void ListThread::moveItemsOnTop(QList<int> ids) -{ - if(actionToDoListTransfer.size()<=1) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - //do list operation - int indexToMove=0; - loop_size=actionToDoListTransfer.size(); - for (int i=0; i<loop_size; ++i) { - if(ids.contains(actionToDoListTransfer.at(i).id)) - { - ids.removeOne(actionToDoListTransfer.at(i).id); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(indexToMove)); - returnActionOnCopyList newAction; - newAction.type=MoveItem; - newAction.addAction.id=actionToDoListTransfer.at(i).id; - newAction.userAction.moveAt=indexToMove; - newAction.userAction.position=i; - actionDone << newAction; - actionToDoListTransfer.move(i,indexToMove); - indexToMove++; - if(ids.size()==0) - { - //emit newActionOnList(); - return; - } - } - } -// emit newActionOnList(); -} - -//move up -void ListThread::moveItemsUp(QList<int> ids) -{ - if(actionToDoListTransfer.size()<=1) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - //do list operation - int lastGoodPositionExtern=0; - int lastGoodPositionReal=0; - bool haveGoodPosition=false; - bool haveChanged=false; - loop_size=actionToDoListTransfer.size(); - for (int i=0; i<loop_size; ++i) { - if(ids.contains(actionToDoListTransfer.at(i).id)) - { - if(haveGoodPosition) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(i-1)); - returnActionOnCopyList newAction; - newAction.type=MoveItem; - newAction.addAction.id=actionToDoListTransfer.at(i).id; - newAction.userAction.moveAt=lastGoodPositionExtern; - newAction.userAction.position=i; - actionDone << newAction; - actionToDoListTransfer.swap(i,lastGoodPositionReal); - haveChanged=true; - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Try move up false, item ")+QString::number(i)); - ids.removeOne(actionToDoListTransfer.at(i).id); - if(ids.size()==0) - { -/* if(haveChanged) - emit newActionOnList();*/ - return; - } - } - else - { - lastGoodPositionExtern++; - lastGoodPositionReal=i; - haveGoodPosition=true; - } - } - //emit newActionOnList(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -//move down -void ListThread::moveItemsDown(QList<int> ids) -{ - if(actionToDoListTransfer.size()<=1) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - //do list operation - int lastGoodPositionExtern=numberOfTransferIntoToDoList; - int lastGoodPositionReal=0; - bool haveGoodPosition=false; - bool haveChanged=false; - for (int i=actionToDoListTransfer.size()-1; i>=0; --i) { - if(ids.contains(actionToDoListTransfer.at(i).id)) - { - if(haveGoodPosition) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(i+1)); - returnActionOnCopyList newAction; - newAction.type=MoveItem; - newAction.addAction.id=actionToDoListTransfer.at(i).id; - newAction.userAction.moveAt=lastGoodPositionReal; - newAction.userAction.position=i; - actionDone << newAction; - actionToDoListTransfer.swap(i,lastGoodPositionReal); - haveChanged=true; - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Try move up false, item ")+QString::number(i)); - } - ids.removeOne(actionToDoListTransfer.at(i).id); - if(ids.size()==0) - { -/* if(haveChanged) - emit newActionOnList();*/ - return; - } - } - else - { - lastGoodPositionExtern--; - lastGoodPositionReal=i; - haveGoodPosition=true; - } - } - //emit newActionOnList(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -//put on bottom -void ListThread::moveItemsOnBottom(QList<int> ids) -{ - if(actionToDoListTransfer.size()<=1) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"list size is empty"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - //do list operation - int lastGoodPositionExtern=numberOfTransferIntoToDoList; - int lastGoodPositionReal=actionToDoListTransfer.size()-1; - for (int i=lastGoodPositionReal; i>=0; --i) { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Check action on item ")+QString::number(i)); - if(ids.contains(actionToDoListTransfer.at(i).id)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("move item ")+QString::number(i)+" to "+QString::number(lastGoodPositionReal)); - ids.removeOne(actionToDoListTransfer.at(i).id); - returnActionOnCopyList newAction; - newAction.type=MoveItem; - newAction.addAction.id=actionToDoListTransfer.at(i).id; - newAction.userAction.moveAt=lastGoodPositionExtern; - newAction.userAction.position=i; - actionDone << newAction; - actionToDoListTransfer.move(i,lastGoodPositionReal); - lastGoodPositionReal--; - lastGoodPositionExtern--; - if(ids.size()==0) - { -// emit newActionOnList(); - return; - } - } - } -// emit newActionOnList(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -/** \brief give the forced mode, to export/import transfer list */ -void ListThread::forceMode(const CopyMode &mode) -{ - if(mode==Copy) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to copy")); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to move")); - this->mode=mode; - forcedMode=true; -} - -void ListThread::exportTransferList(const QString &fileName) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - QFile transferFile(fileName); - if(transferFile.open(QIODevice::WriteOnly|QIODevice::Truncate)) - { - transferFile.write(QString("Ultracopier-0.3;Transfer-list;").toUtf8()); - if(!forcedMode) - transferFile.write(QString("Transfer;").toUtf8()); - else - { - if(mode==Copy) - transferFile.write(QString("Copy;").toUtf8()); - else - transferFile.write(QString("Move;").toUtf8()); - } - transferFile.write(QString("Ultracopier-0.3\n").toUtf8()); - bool haveError=false; - int size=actionToDoListTransfer.size(); - for (int index=0;index<size;++index) { - if(actionToDoListTransfer.at(index).mode==Copy) - { - if(!forcedMode || mode==Copy) - { - if(forcedMode) - transferFile.write(QString("%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8()); - else - transferFile.write(QString("Copy;%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8()); - } - else - haveError=true; - } - else if(actionToDoListTransfer.at(index).mode==Move) - { - if(!forcedMode || mode==Move) - { - if(forcedMode) - transferFile.write(QString("Move;%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8()); - else - transferFile.write(QString("%1;%2\n").arg(actionToDoListTransfer.at(index).source.absoluteFilePath()).arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()).toUtf8()); - } - else - haveError=true; - } - } - if(haveError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Unable do to move or copy item into wrong forced mode: %1").arg(transferFile.errorString())); - emit errorTransferList(tr("Unable do to move or copy item into wrong forced mode: %1").arg(transferFile.errorString())); - } - transferFile.close(); - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Unable to save the transfer list: %1").arg(transferFile.errorString())); - emit errorTransferList(tr("Unable to save the transfer list: %1").arg(transferFile.errorString())); - return; - } -} - -void ListThread::importTransferList(const QString &fileName) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - QFile transferFile(fileName); - if(transferFile.open(QIODevice::ReadOnly)) - { - QString content; - QByteArray data=transferFile.readLine(64); - if(data.size()<=0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Problem at the reading, or file size is null")); - emit errorTransferList(tr("Problem at the reading, or file size is null")); - return; - } - content=QString::fromUtf8(data); - if(content!="Ultracopier-0.3;Transfer-list;Transfer;Ultracopier-0.3\n" && content!="Ultracopier-0.3;Transfer-list;Copy;Ultracopier-0.3\n" && content!="Ultracopier-0.3;Transfer-list;Move;Ultracopier-0.3\n") - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong header: \"%1\"").arg(content)); - emit errorTransferList(tr("Wrong header: \"%1\"").arg(content)); - return; - } - bool transferListMixedMode=false; - if(content=="Ultracopier-0.3;Transfer-list;Transfer;Ultracopier-0.3\n") - { - if(forcedMode) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The transfer list is in mixed mode, but this instance is not in this mode")); - emit errorTransferList(tr("The transfer list is in mixed mode, but this instance is not in this mode")); - return; - } - else - transferListMixedMode=true; - } - if(content=="Ultracopier-0.3;Transfer-list;Copy;Ultracopier-0.3\n" && (forcedMode && mode==Move)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The transfer list is in copy mode, but this instance is not in this mode: forcedMode: %1, mode: %2").arg(forcedMode).arg(mode)); - emit errorTransferList(tr("The transfer list is in copy mode, but this instance is not in this mode")); - return; - } - if(content=="Ultracopier-0.3;Transfer-list;Move;Ultracopier-0.3\n" && (forcedMode && mode==Copy)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The transfer list is in move mode, but this instance is not in this mode: forcedMode: %1, mode: %2").arg(forcedMode).arg(mode)); - emit errorTransferList(tr("The transfer list is in move mode, but this instance is not in this mode")); - return; - } - bool errorFound=false; - QRegExp correctLine; - if(transferListMixedMode) - correctLine=QRegExp("^(Copy|Move);[^;]+;[^;]+\n$"); - else - correctLine=QRegExp("^[^;]+;[^;]+\n$"); - QStringList args; - CopyMode tempMode; - do - { - data=transferFile.readLine(65535*2); - if(data.size()>0) - { - content=QString::fromUtf8(data); - //do the import here - if(content.contains(correctLine)) - { - content.remove("\n"); - args=content.split(";"); - if(forcedMode) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("New data to import in forced mode: %2,%3").arg(args.at(0)).arg(args.at(1))); - addToTransfer(QFileInfo(args.at(0)),QFileInfo(args.at(1)),mode); - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("New data to import: %1,%2,%3").arg(args.at(0)).arg(args.at(1)).arg(args.at(2))); - if(args.at(0)=="Copy") - tempMode=Copy; - else - tempMode=Move; - addToTransfer(QFileInfo(args.at(1)),QFileInfo(args.at(2)),tempMode); - } - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong line syntax: %1").arg(content)); - errorFound=true; - } - } - } - while(data.size()>0); - transferFile.close(); - if(errorFound) - emit warningTransferList(tr("Some error have been found during the line parsing")); -// emit newActionOnList(); - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Unable to open the transfer list: %1").arg(transferFile.errorString())); - emit errorTransferList(tr("Unable to open the transfer list: %1").arg(transferFile.errorString())); - return; - } -} - -//do new actions -void ListThread::doNewActions_start_transfer() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("actionToDoListTransfer.size(): %1, numberOfTranferRuning: %2").arg(actionToDoListTransfer.size()).arg(numberOfTranferRuning)); - if(stopIt || putInPause) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - //lunch the transfer in WaitForTheTransfer - int_for_loop=0; - loop_size=transferThreadList.size(); - while(int_for_loop<loop_size && numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER) - { - if(transferThreadList.at(int_for_loop)->getStat()==TransferStat_WaitForTheTransfer) - { - transferThreadList.at(int_for_loop)->startTheTransfer(); - numberOfTranferRuning++; - } - int_for_loop++; - } - int_for_loop=0; - while(int_for_loop<loop_size && numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER) - { - if(transferThreadList.at(int_for_loop)->getStat()==TransferStat_PreOperation) - { - transferThreadList.at(int_for_loop)->startTheTransfer(); - numberOfTranferRuning++; - } - int_for_loop++; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"numberOfTranferRuning: "+QString::number(numberOfTranferRuning)); -} - -/** \brief lunch the pre-op or inode op - 1) locate the next next item to do into the both list - 1a) optimisation posible on the mkpath/rmpath - 2) determine what need be lunched - 3) lunch it, rerun the 2) - */ -void ListThread::doNewActions_inode_manipulation() -{ - //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("actionToDoList.size(): %1").arg(actionToDoList.size())); - if(stopIt || putInPause) - return; - //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - //lunch the pre-op or inode op - int_for_loop=0; - int_for_internal_loop=0; - number_rm_path_moved=0; - int_for_transfer_thread_search=0; - actionToDoListTransfer_count=actionToDoListTransfer.count(); - actionToDoListInode_count=actionToDoListInode.count(); - loop_sub_size_transfer_thread_search=transferThreadList.size(); - //search the next transfer action to do - while(int_for_loop<actionToDoListTransfer_count) - { - if(!actionToDoListTransfer[int_for_loop].isRunning) - { - //search the next inode action to do - while(int_for_internal_loop<actionToDoListInode_count) - { - if(!actionToDoListInode[int_for_internal_loop].isRunning) - { - if(actionToDoListTransfer[int_for_loop].id<actionToDoListInode[int_for_internal_loop].id) - { - //do the tranfer action in the next code - break; - } - else - { - //do the inode action - #include "ListThread_InodeAction.cpp" - } - } - int_for_internal_loop++; - } - actionToDoTransfer& currentActionToDoTransfer=actionToDoListTransfer[int_for_loop]; - //do the tranfer action - while(int_for_transfer_thread_search<loop_sub_size_transfer_thread_search) - { - /** - transferThreadList.at(int_for_transfer_thread_search)->transferId==0) /!\ important! - Because the other thread can have call doNewAction before than this thread have the finish event parsed! - I this case it lose all data - */ - currentTransferThread=transferThreadList[int_for_transfer_thread_search]; - if(currentTransferThread->getStat()==TransferStat_Idle && currentTransferThread->transferId==0) // /!\ important! - { - currentTransferThread->transferId=currentActionToDoTransfer.id; - currentTransferThread->transferSize=currentActionToDoTransfer.size; - currentTransferThread->setFiles( - currentActionToDoTransfer.source.absoluteFilePath(), - currentActionToDoTransfer.size, - currentActionToDoTransfer.destination.absoluteFilePath(), - currentActionToDoTransfer.mode - ); - currentActionToDoTransfer.isRunning=true; - - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("[%1] id: %2 is idle, use it for %3").arg(int_for_loop).arg(currentTransferThread->transferId).arg(currentActionToDoTransfer.destination.absoluteFilePath())); - - /// \note wrong position? Else write why it's here - returnActionOnCopyList newAction; - newAction.type = PreOperation; - newAction.addAction.id = currentActionToDoTransfer.id; - newAction.addAction.sourceFullPath = currentActionToDoTransfer.source.absoluteFilePath(); - newAction.addAction.sourceFileName = currentActionToDoTransfer.source.fileName(); - newAction.addAction.destinationFullPath = currentActionToDoTransfer.destination.absoluteFilePath(); - newAction.addAction.destinationFileName = currentActionToDoTransfer.destination.fileName(); - newAction.addAction.size = currentActionToDoTransfer.size; - newAction.addAction.mode = currentActionToDoTransfer.mode; - actionDone << newAction; - int_for_transfer_thread_search++; - break; - } - int_for_transfer_thread_search++; - } - if(int_for_internal_loop==loop_sub_size_transfer_thread_search) - { - /// \note Can be normal when all thread is not initialized - //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to found free thread to do the transfer"); - break; - } - numberOfInodeOperation++; - if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT) - return; - } - int_for_loop++; - } - //search the next inode action to do - while(int_for_internal_loop<actionToDoListInode_count) - { - if(!actionToDoListInode[int_for_internal_loop].isRunning) - { - //do the inode action - #include "ListThread_InodeAction.cpp" - } - int_for_internal_loop++; - } - //error checking - if((actionToDoListTransfer_count+actionToDoListInode_count)>ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("The index have been detected as out of max range: %1>%2").arg(actionToDoListTransfer_count+actionToDoListInode_count).arg(ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)); - return; - } -} - -//restart transfer if it can -void ListThread::restartTransferIfItCan() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - TransferThread *transfer=qobject_cast<TransferThread *>(QObject::sender()); - if(transfer==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,QString("transfer thread not located!")); - return; - } - if(numberOfTranferRuning<ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER && transfer->getStat()==TransferStat_WaitForTheTransfer) - { - transfer->startTheTransfer(); - numberOfTranferRuning++; - } - doNewActions_start_transfer(); -} - -/// \brief update the transfer stat -void ListThread::newTransferStat(TransferStat stat,quint64 id) -{ - returnActionOnCopyList newAction; - switch(stat) - { - case TransferStat_Idle: - return; - break; - case TransferStat_PreOperation: - return; - break; - case TransferStat_WaitForTheTransfer: - return; - break; - case TransferStat_Transfer: - newAction.type=Transfer; - break; - case TransferStat_PostTransfer: - case TransferStat_PostOperation: - newAction.type=PostOperation; - break; - case TransferStat_Checksum: - newAction.type=CustomOperation; - break; - default: - return; - break; - } - newAction.addAction.id = id; - actionDone << newAction; -} - -void ListThread::set_osBufferLimit(unsigned int osBufferLimit) -{ - this->osBufferLimit=osBufferLimit; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - transferThreadList.at(index)->set_osBufferLimit(osBufferLimit); - index++; - } -} - -void ListThread::set_setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("include.size(): %1, exclude.size(): %2").arg(include.size()).arg(exclude.size())); - this->include=include; - this->exclude=exclude; - int index=0; - while(index<scanFileOrFolderThreadsPool.size()) - { - scanFileOrFolderThreadsPool.at(index)->setFilters(include,exclude); - index++; - } -} - -void ListThread::set_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; - emit send_sendNewRenamingRules(firstRenamingRule,otherRenamingRule); -} - -void ListThread::mkPathFirstFolderFinish() -{ - int_for_loop=0; - loop_size=actionToDoListInode.size(); - while(int_for_loop<loop_size) - { - if(actionToDoListInode.at(int_for_loop).type==ActionType_MkPath) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("stop mkpath: %1").arg(actionToDoListInode.at(int_for_loop).folder.absoluteFilePath())); - actionToDoListInode.removeAt(int_for_loop); - if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0) - updateTheStatus(); - numberOfInodeOperation--; - doNewActions_inode_manipulation(); - return; - } - int_for_loop++; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to found item into the todo list"); -} - -void ListThread::rmPathFirstFolderFinish() -{ - int_for_loop=0; - loop_size=actionToDoListInode.size(); - while(int_for_loop<loop_size) - { - if(actionToDoListInode.at(int_for_loop).type==ActionType_RmPath || actionToDoListInode.at(int_for_loop).type==ActionType_RmSync) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("stop rmpath: %1").arg(actionToDoListInode.at(int_for_loop).folder.absoluteFilePath())); - actionToDoListInode.removeAt(int_for_loop); - if(actionToDoListTransfer.size()==0 && actionToDoListInode.size()==0 && actionToDoListInode_afterTheTransfer.size()==0) - updateTheStatus(); - numberOfInodeOperation--; - doNewActions_inode_manipulation(); - return; - } - int_for_loop++; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to found item into the todo list"); -} - -#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - -void ListThread::timedUpdateDebugDialog() -{ - QStringList newList; - int index=0; - loop_sub_size_transfer_thread_search=transferThreadList.size(); - while(index<loop_sub_size_transfer_thread_search) - { - QString stat; - switch(transferThreadList.at(index)->getStat()) - { - case TransferStat_Idle: - stat="Idle"; - break; - case TransferStat_PreOperation: - stat="PreOperation"; - break; - case TransferStat_WaitForTheTransfer: - stat="WaitForTheTransfer"; - break; - case TransferStat_Transfer: - stat="Transfer"; - break; - case TransferStat_PostOperation: - stat="PostOperation"; - break; - case TransferStat_PostTransfer: - stat="PostTransfer"; - break; - case TransferStat_Checksum: - stat="Checksum"; - break; - default: - stat=QString("??? (%1)").arg(transferThreadList.at(index)->getStat()); - break; - } - newList << QString("%1) (%3,%4) %2") - .arg(index) - .arg(stat) - .arg(transferThreadList.at(index)->readingLetter()) - .arg(transferThreadList.at(index)->writingLetter()); - index++; - } - QStringList newList2; - index=0; - loop_size=actionToDoListTransfer.size(); - while(index<loop_size) - { - newList2 << QString("%1 %2 %3") - .arg(actionToDoListTransfer.at(index).source.absoluteFilePath()) - .arg(actionToDoListTransfer.at(index).size) - .arg(actionToDoListTransfer.at(index).destination.absoluteFilePath()); - if(index>(actionToDoListTransfer.size()+2)) - { - newList2 << QString("..."); - break; - } - index++; - } - emit updateTheDebugInfo(newList,newList2,numberOfInodeOperation); -} - -#endif - -/// \note Can be call without queue because all call will be serialized -void ListThread::fileAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame) -{ - emit send_fileAlreadyExists(source,destination,isSame,qobject_cast<TransferThread *>(sender())); -} - -/// \note Can be call without queue because all call will be serialized -void ListThread::errorOnFile(const QFileInfo &fileInfo,const QString &errorString) -{ - emit send_errorOnFile(fileInfo,errorString,qobject_cast<TransferThread *>(sender())); -} - -/// \note Can be call without queue because all call will be serialized -void ListThread::folderAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame) -{ - emit send_folderAlreadyExists(source,destination,isSame,qobject_cast<scanFileOrFolder *>(sender())); -} - -/// \note Can be call without queue because all call will be serialized -/// \todo all this part -void ListThread::errorOnFolder(const QFileInfo &fileInfo,const QString &errorString) -{ - emit send_errorOnFolder(fileInfo,errorString,qobject_cast<scanFileOrFolder *>(sender())); -} - -//to run the thread -void ListThread::run() -{ - exec(); -} - -/// \to create transfer thread -void ListThread::createTransferThread() -{ - if(stopIt) - return; - transferThreadList << new TransferThread(); - TransferThread * last=transferThreadList.last(); - last->transferId=0; - last->transferSize=0; - last->setRightTransfer(doRightTransfer); - last->setKeepDate(keepDate); - last->setBlockSize(blockSize); - last->setDrive(drives); - last->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists); - last->setMaxSpeed(maxSpeed/ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER); - last->set_doChecksum(doChecksum); - last->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible); - last->set_checksumOnlyOnError(checksumOnlyOnError); - last->set_osBuffer(osBuffer); - last->set_osBufferLimited(osBufferLimited); - last->set_osBufferLimit(osBufferLimit); - last->setRsync(rsync); - - #ifdef ULTRACOPIER_PLUGIN_DEBUG - connect(last,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection); - #endif // ULTRACOPIER_PLUGIN_DEBUG - connect(last,SIGNAL(errorOnFile(QFileInfo,QString)), this,SLOT(errorOnFile(QFileInfo,QString)), Qt::QueuedConnection); - connect(last,SIGNAL(fileAlreadyExists(QFileInfo,QFileInfo,bool)), this,SLOT(fileAlreadyExists(QFileInfo,QFileInfo,bool)), Qt::QueuedConnection); - connect(last,SIGNAL(tryPutAtBottom()), this,SLOT(transferPutAtBottom()), Qt::QueuedConnection); - connect(last,SIGNAL(readStopped()), this,SLOT(transferIsFinished()), Qt::QueuedConnection); - connect(last,SIGNAL(preOperationStopped()), this,SLOT(doNewActions_start_transfer()), Qt::QueuedConnection); - connect(last,SIGNAL(postOperationStopped()), this,SLOT(transferInodeIsClosed()), Qt::QueuedConnection); - connect(last,SIGNAL(checkIfItCanBeResumed()), this,SLOT(restartTransferIfItCan()), Qt::QueuedConnection); - connect(last,SIGNAL(pushStat(TransferStat,quint64)), this,SLOT(newTransferStat(TransferStat,quint64)), Qt::QueuedConnection); - - connect(this,SIGNAL(send_sendNewRenamingRules(QString,QString)), last,SLOT(setRenamingRules(QString,QString)), Qt::QueuedConnection); - - last->start(); - last->setObjectName(QString("transfer %1").arg(transferThreadList.size()-1)); - last->setMkpathTransfer(&mkpathTransfer); - last->setRenamingRules(firstRenamingRule,otherRenamingRule); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - last->setId(transferThreadList.size()-1); - #endif - if(transferThreadList.size()>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT) - return; - if(stopIt) - return; - doNewActions_inode_manipulation(); - emit askNewTransferThread(); -} diff --git a/plugins-alternative/CopyEngine/Rsync/ListThread.h b/plugins-alternative/CopyEngine/Rsync/ListThread.h deleted file mode 100755 index ab4ad64..0000000 --- a/plugins-alternative/CopyEngine/Rsync/ListThread.h +++ /dev/null @@ -1,376 +0,0 @@ -/** \file ListThread.h -\brief Define the list thread, and management to the action to do -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifndef LISTTHREAD_H -#define LISTTHREAD_H - -#include <QThread> -#include <QObject> -#include <QList> -#include <QStringList> -#include <QFileInfo> -#include <QSemaphore> -#include <QTextStream> -#include <QFile> - -#include "../../../interface/PluginInterface_CopyEngine.h" -#include "scanFileOrFolder.h" -#include "TransferThread.h" -#include "MkPath.h" -#include "RmPath.h" -#include "Environment.h" - -/// \brief Define the list thread, and management to the action to do -class ListThread : public QThread -{ - Q_OBJECT -public: - explicit ListThread(FacilityInterface * facilityInterface); - ~ListThread(); - //duplication copy detection - /** \brief compare the current sources of the copy, with the passed arguments - * \param sources the sources list to compares with the current sources list - * \return true if have same sources, else false (or empty) */ - bool haveSameSource(QStringList sources); - /** \brief compare the current destination of the copy, with the passed arguments - * \param destination the destination to compares with the current destination - * \return true if have same destination, else false (or empty) */ - bool haveSameDestination(QString destination); - //external soft like file browser have send copy/move list to do - /** \brief send copy with destination - * \param sources the sources list to copy - * \param destination the destination to copy - * \return true if the copy have been accepted */ - bool newCopy(QStringList sources,QString destination); - /** \brief send move without destination, ask the destination - * \param sources the sources list to move - * \param destination the destination to move - * \return true if the move have been accepted */ - bool newMove(QStringList sources,QString destination); - /** \brief get the speed limitation - * < -1 if not able, 0 if disabled */ - qint64 getSpeedLimitation(); - /** \brief to set drives detected - * specific to this copy engine */ - void setDrive(QStringList drives); - /// \brief to set the collision action - void setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists); - /** \brief to sync the transfer list - * Used when the interface is changed, useful to minimize the memory size */ - void syncTransferList(); - /// \brief to store one action to do - struct actionToDoTransfer - { - quint64 id; - qint64 size;///< Used to set: used in case of transfer or remainingInode for drop folder - QFileInfo source;///< Used to set: source for transfer, folder to create, folder to drop - QFileInfo destination; - CopyMode mode; - bool isRunning;///< store if the action si running - //TransferThread * transfer; // -> see transferThreadList - }; - QList<actionToDoTransfer> actionToDoListTransfer; - /// \brief get action type - enum ActionType - { - ActionType_MkPath=1, - ActionType_RmPath=2, - ActionType_RmSync=3 - }; - /// \brief to store one action to do - struct actionToDoInode - { - ActionType type;///< \see ActionType - quint64 id; - qint64 size;///< Used to set: used in case of transfer or remainingInode for drop folder - QFileInfo folder;///< Used to set: source for transfer, folder to create, folder to drop - bool isRunning;///< store if the action si running - }; - QList<actionToDoInode> actionToDoListInode; - QList<actionToDoInode> actionToDoListInode_afterTheTransfer; - int numberOfInodeOperation; - //dir operation thread queue - MkPath mkPathQueue; - RmPath rmPathQueue; - //to get the return value from copyEngine - bool getReturnBoolToCopyEngine(); - QPair<quint64,quint64> getReturnPairQuint64ToCopyEngine(); - ItemOfCopyList getReturnItemOfCopyListToCopyEngine(); - - void set_doChecksum(bool doChecksum); - void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible); - void set_checksumOnlyOnError(bool checksumOnlyOnError); - void set_osBuffer(bool osBuffer); - void set_osBufferLimited(bool osBufferLimited); -public slots: - //action on the copy - /// \brief put the transfer in pause - void pause(); - /// \brief resume the transfer - void resume(); - /** \brief skip one transfer entry - * \param id id of the file to remove */ - void skip(const quint64 &id); - /** \brief skip as interanl one transfer entry - * \param id id of the file to remove */ - bool skipInternal(const quint64 &id); - /// \brief cancel all the transfer - void cancel(); - //edit the transfer list - /** \brief remove the selected item - * \param ids ids is the id list of the selected items */ - void removeItems(const QList<int> &ids); - /** \brief move on top of the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsOnTop(QList<int> ids); - /** \brief move up the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsUp(QList<int> ids); - /** \brief move down the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsDown(QList<int> ids); - /** \brief move on bottom of the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsOnBottom(QList<int> ids); - - /** \brief give the forced mode, to export/import transfer list */ - void forceMode(const CopyMode &mode); - /// \brief export the transfer list into a file - void exportTransferList(const QString &fileName); - /// \brief import the transfer list into a file - void importTransferList(const QString &fileName); - - /// \brief set the folder local colision - void setFolderColision(FolderExistsAction alwaysDoThisActionForFolderExists); - /** \brief to set the speed limitation - * -1 if not able, 0 if disabled */ - bool setSpeedLimitation(const qint64 &speedLimitation); - /// \brief set the copy info and options before runing - void setRightTransfer(const bool doRightTransfer); - /// \brief set keep date - void setKeepDate(const bool keepDate); - /// \brief set block size in KB - void setBlockSize(const int blockSize); - /// \brief set auto start - void setAutoStart(const bool autoStart); - /// \brief set rsync - void setRsync(const bool rsync); - /// \brief set check destination folder - void setCheckDestinationFolderExists(const bool checkDestinationFolderExists); - /// \brief set data local to the thread - void setAlwaysFileExistsAction(FileExistsAction alwaysDoThisActionForFileExists); - /// \brief do new actions, start transfer - void doNewActions_start_transfer(); - /** \brief lunch the pre-op or inode op - 1) locate the next next item to do into the both list - 1a) optimisation posible on the mkpath/rmpath - 2) determine what need be lunched - 3) lunch it, rerun the 2) - */ - void doNewActions_inode_manipulation(); - /// \brief restart transfer if it can - void restartTransferIfItCan(); - - /// \brief update the transfer stat - void newTransferStat(TransferStat stat,quint64 id); - - void set_osBufferLimit(unsigned int osBufferLimit); - void set_setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude); - void set_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule); - - //send action done - void sendActionDone(); - //send progression - void sendProgression(); -private: - QSemaphore mkpathTransfer; - QString sourceDrive; - bool sourceDriveMultiple; - bool stopIt; - QString destinationDrive; - bool destinationDriveMultiple; - QList<scanFileOrFolder *> scanFileOrFolderThreadsPool; - int numberOfTransferIntoToDoList; - QList<TransferThread *> transferThreadList; - scanFileOrFolder * newScanThread(CopyMode mode); - quint64 bytesToTransfer; - quint64 bytesTransfered; - bool autoStart; - bool rsync; - bool putInPause; - QList<returnActionOnCopyList> actionDone;///< to action to send to the interface - quint64 idIncrementNumber;///< to store the last id returned - qint64 actualRealByteTransfered; - int preOperationNumber; - int numberOfTranferRuning; - int maxSpeed;///< in KB/s, assume as 0KB/s as default like every where - FolderExistsAction alwaysDoThisActionForFolderExists; - bool checkDestinationFolderExists; - bool doChecksum; - bool checksumIgnoreIfImpossible; - bool checksumOnlyOnError; - bool osBuffer; - bool osBufferLimited; - unsigned int osBufferLimit; - QList<Filters_rules> include,exclude; - CopyMode mode; - bool forcedMode; - QString firstRenamingRule; - QString otherRenamingRule; - - //add file transfer to do - quint64 addToTransfer(const QFileInfo& source,const QFileInfo& destination,const CopyMode& mode); - //generate id number - quint64 generateIdNumber(); - //warning the first entry is accessible will copy - bool removeItems(quint64 id); - //put on top - bool moveOnTopItem(quint64 id); - //move up - bool moveUpItem(quint64 id); - //move down - bool moveDownItem(quint64 id); - //put on bottom - bool moveOnBottomItem(quint64 id); - //general transfer - void startGeneralTransfer(); - //debug windows if needed - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - QTimer timerUpdateDebugDialog; - #endif - FacilityInterface * facilityInterface; - //temp variable for not always alocate the memory - int int_for_loop,int_for_internal_loop,int_for_transfer_thread_search,loop_size,loop_sub_size,loop_sub_size_transfer_thread_search,number_rm_path_moved; - TransferThread *temp_transfer_thread; - bool isFound; - bool updateTheStatus_listing,updateTheStatus_copying; - EngineActionInProgress updateTheStatus_action_in_progress; - QSemaphore waitConstructor,waitCancel; - int actionToDoListTransfer_count,actionToDoListInode_count; - bool doTransfer,doInode; - qint64 oversize;//used as temp variable - qint64 currentProgression; - qint64 copiedSize,totalSize,localOverSize; - QList<ProgressionItem> progressionList; - TransferThread* currentTransferThread; - //memory variable for transfer thread creation - bool doRightTransfer; - bool keepDate; - int blockSize; - QStringList drives; - FileExistsAction alwaysDoThisActionForFileExists; - //to return value to the copyEngine - bool returnBoolToCopyEngine; - QPair<quint64,quint64> returnPairQuint64ToCopyEngine; - QList<ItemOfCopyList> returnListItemOfCopyListToCopyEngine; - ItemOfCopyList returnItemOfCopyListToCopyEngine; - ProgressionItem tempItem; - - void realByteTransfered(); -private slots: - void scanThreadHaveFinish(bool skipFirstRemove=false); - void updateTheStatus(); - void fileTransfer(const QFileInfo &sourceFileInfo,const QFileInfo &destinationFileInfo,const CopyMode &mode); - //mkpath event - void mkPathFirstFolderFinish(); - //rmpath event - void rmPathFirstFolderFinish(); - //transfer is finished - void transferIsFinished(); - /** \brief put the current file at bottom in case of error - \note ONLY IN CASE OF ERROR */ - void transferPutAtBottom(); - //transfer is finished - void transferInodeIsClosed(); - //debug windows if needed - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - void timedUpdateDebugDialog(); - #endif - //dialog message - /// \note Can be call without queue because all call will be serialized - void fileAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame); - /// \note Can be call without queue because all call will be serialized - void errorOnFile(const QFileInfo &fileInfo,const QString &errorString); - /// \note Can be call without queue because all call will be serialized - void folderAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame); - /// \note Can be call without queue because all call will be serialized - void errorOnFolder(const QFileInfo &fileInfo,const QString &errorString); - //to run the thread - void run(); - /// \to create transfer thread - void createTransferThread(); - //mk path to do - quint64 addToMkPath(const QString& folder); - //add rm path to do - void addToRmPath(const QString& folder,const int& inodeToRemove); - //rsync rm - void addToRmForRsync(const QString& inode); - //send the progression, after full reset of the interface (then all is empty) - void syncTransferList_internal(); -signals: - //send information about the copy - void actionInProgess(EngineActionInProgress); //should update interface information on this event - - void newActionOnList(const QList<returnActionOnCopyList> &);///very important, need be temporized to group the modification to do and not flood the interface - void syncReady(); - - /** \brief to get the progression for a specific file - * \param id the id of the transfer, id send during population the transfer list - * first = current transfered byte, second = byte to transfer */ - void pushFileProgression(const QList<ProgressionItem> &progressionList); - //get information about the copy - /** \brief to get the general progression - * first = current transfered byte, second = byte to transfer */ - void pushGeneralProgression(const quint64 &,const quint64 &); - - void newFolderListing(const QString &path); - void newCollisionAction(QString action); - void newErrorAction(QString action); - void isInPause(bool); - - //when can be deleted - void canBeDeleted(); - - //send error occurred - void error(QString path,quint64 size,QDateTime mtime,QString error); - //for the extra logging - void rmPath(QString path); - void mkPath(QString path); - /// \brief To debug source - #ifdef ULTRACOPIER_PLUGIN_DEBUG - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - void updateTheDebugInfo(QStringList,QStringList,int); - #endif - - //other signal - /// \note Can be call without queue because all call will be serialized - void send_fileAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,TransferThread * thread); - /// \note Can be call without queue because all call will be serialized - void send_errorOnFile(QFileInfo fileInfo,QString errorString,TransferThread * thread); - /// \note Can be call without queue because all call will be serialized - void send_folderAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,scanFileOrFolder * thread); - /// \note Can be call without queue because all call will be serialized - void send_errorOnFolder(QFileInfo fileInfo,QString errorString,scanFileOrFolder * thread); - //send the progression - void send_syncTransferList(); - //mkpath error event - void mkPathErrorOnFolder(QFileInfo fileInfo,QString errorString); - //rmpath error event - void rmPathErrorOnFolder(QFileInfo fileInfo,QString errorString); - //to close - void tryCancel(); - //to ask new transfer thread - void askNewTransferThread(); - - void warningTransferList(QString warning); - void errorTransferList(QString error); - void send_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule); - void send_realBytesTransfered(quint64); -}; - -#endif // LISTTHREAD_H diff --git a/plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp b/plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp deleted file mode 100644 index c495f60..0000000 --- a/plugins-alternative/CopyEngine/Rsync/ListThread_InodeAction.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/** \file ListThread_InodeAction.cpp -\brief To be included into ListThread.cpp, to optimize and prevent code duplication -\see ListThread.cpp -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifdef LISTTHREAD_H - -//do the inode action -actionToDoInode& currentActionToDoInode=actionToDoListInode[int_for_internal_loop]; -switch(currentActionToDoInode.type) -{ -case ActionType_MkPath: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("launch mkpath: %1").arg(currentActionToDoInode.folder.absoluteFilePath())); - mkPathQueue.addPath(currentActionToDoInode.folder.absoluteFilePath()); - currentActionToDoInode.isRunning=true; - numberOfInodeOperation++; - if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT) - return; -break; -case ActionType_RmSync: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("launch rm to sync: %1").arg(currentActionToDoInode.folder.absoluteFilePath())); - rmPathQueue.addPath(currentActionToDoInode.folder.absoluteFilePath(),true); - currentActionToDoInode.isRunning=true; - numberOfInodeOperation++; - if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT) - return; -break; -case ActionType_RmPath: -/* What is this code? - if((int_for_loop+number_rm_path_moved)>=(loop_size-1)) - { - if(numberOfTranferRuning) - break; - else - currentActionToDoInode.size=0; - }*/ - //then empty (no file), can try remove it - if(true)//currentActionToDoInode.size==0 - { - if(numberOfTranferRuning>0) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("skipped because already inode = 0 and transfer is running: %1").arg(currentActionToDoInode.folder.absoluteFilePath())); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("launch rmpath: %1").arg(currentActionToDoInode.folder.absoluteFilePath())); - rmPathQueue.addPath(currentActionToDoInode.folder.absoluteFilePath(),false); - currentActionToDoInode.isRunning=true; - numberOfInodeOperation++; - if(numberOfInodeOperation>=ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT) - return; - } - else //have not finish all the transfer into it, do it later - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"should never pass here"); - /*actionToDoListInode.move(int_for_internal_loop,actionToDoListInode_count-1); - currentActionToDoInode.id=generateIdNumber(); - number_rm_path_moved++; - currentActionToDoInode.size=0; - continue;*/ - } -break; -default: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Wrong type at inode action")); - return; -} - -#endif diff --git a/plugins-alternative/CopyEngine/Rsync/MkPath.cpp b/plugins-alternative/CopyEngine/Rsync/MkPath.cpp deleted file mode 100644 index dd71231..0000000 --- a/plugins-alternative/CopyEngine/Rsync/MkPath.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include "MkPath.h" - -MkPath::MkPath() -{ - stopIt=false; - waitAction=false; - setObjectName("MkPath"); - moveToThread(this); - start(); -} - -MkPath::~MkPath() -{ - stopIt=true; - quit(); - wait(); -} - -void MkPath::addPath(const QString &path) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path); - if(stopIt) - return; - emit internalStartAddPath(path); -} - -void MkPath::skip() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit internalStartSkip(); -} - -void MkPath::retry() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit internalStartRetry(); -} - -void MkPath::run() -{ - connect(this,SIGNAL(internalStartAddPath(QString)),this,SLOT(internalAddPath(QString)),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartDoThisPath()),this,SLOT(internalDoThisPath()),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartSkip()),this,SLOT(internalSkip()),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartRetry()),this,SLOT(internalRetry()),Qt::QueuedConnection); - exec(); -} - -void MkPath::internalDoThisPath() -{ - if(waitAction || pathList.isEmpty()) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+pathList.first()); - if(!dir.exists(pathList.first())) - if(!dir.mkpath(pathList.first())) - { - if(!dir.exists(pathList.first())) - { - if(stopIt) - return; - waitAction=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the folder: "+pathList.first()); - emit errorOnFolder(pathList.first(),tr("Unable to create the folder")); - return; - } - } - pathList.removeFirst(); - emit firstFolderFinish(); - checkIfCanDoTheNext(); -} - -void MkPath::internalAddPath(const QString &path) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path); - pathList << path; - if(!waitAction) - checkIfCanDoTheNext(); -} - -void MkPath::checkIfCanDoTheNext() -{ - if(!waitAction && !stopIt && pathList.size()>0) - emit internalStartDoThisPath(); -} - -void MkPath::internalSkip() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - waitAction=false; - pathList.removeFirst(); - emit firstFolderFinish(); - checkIfCanDoTheNext(); -} - -void MkPath::internalRetry() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - waitAction=false; - checkIfCanDoTheNext(); -} - diff --git a/plugins-alternative/CopyEngine/Rsync/MkPath.h b/plugins-alternative/CopyEngine/Rsync/MkPath.h deleted file mode 100644 index 5d00d60..0000000 --- a/plugins-alternative/CopyEngine/Rsync/MkPath.h +++ /dev/null @@ -1,56 +0,0 @@ -/** \file MkPath.h -\brief Make the path given as queued mkpath -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifndef MKPATH_H -#define MKPATH_H - -#include <QThread> -#include <QFileInfo> -#include <QString> -#include <QSemaphore> -#include <QStringList> -#include <QDir> - -#include "Environment.h" - -/// \brief Make the path given as queued mkpath -class MkPath : public QThread -{ - Q_OBJECT -public: - explicit MkPath(); - ~MkPath(); - /// \brief add path to make - void addPath(const QString &path); -signals: - void errorOnFolder(const QFileInfo &,const QString &); - void firstFolderFinish(); - void internalStartAddPath(const QString &path); - void internalStartDoThisPath(); - void internalStartSkip(); - void internalStartRetry(); - void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); -public slots: - /// \brief skip after creation error - void skip(); - /// \brief retry after creation error - void retry(); -private: - void run(); - bool waitAction; - bool stopIt; - bool skipIt; - QStringList pathList; - void checkIfCanDoTheNext(); - QDir dir; -private slots: - void internalDoThisPath(); - void internalAddPath(const QString &path); - void internalSkip(); - void internalRetry(); -}; - -#endif // MKPATH_H diff --git a/plugins-alternative/CopyEngine/Rsync/ReadThread.cpp b/plugins-alternative/CopyEngine/Rsync/ReadThread.cpp deleted file mode 100644 index 3c7bfc1..0000000 --- a/plugins-alternative/CopyEngine/Rsync/ReadThread.cpp +++ /dev/null @@ -1,597 +0,0 @@ -#include "ReadThread.h" - -ReadThread::ReadThread() -{ - start(); - moveToThread(this); - stopIt=false; - putInPause=false; - blockSize=1024*1024; - setObjectName("read"); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - isInReadLoop=false; - tryStartRead=false; - isOpen.release(); -} - -ReadThread::~ReadThread() -{ - stopIt=true; - disconnect(this); - waitNewClockForSpeed.release(); - isOpen.acquire(); - exit(); - wait(); -} - -void ReadThread::run() -{ - connect(this,SIGNAL(internalStartOpen()), this,SLOT(internalOpen()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartReopen()), this,SLOT(internalReopen()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartRead()), this,SLOT(internalRead()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartClose()), this,SLOT(internalClose()), Qt::QueuedConnection); - connect(this,SIGNAL(checkIfIsWait()), this,SLOT(isInWait()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartChecksum()), this,SLOT(checkSum()), Qt::QueuedConnection); - exec(); -} - -void ReadThread::open(const QString &name,const CopyMode &mode) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open source: "+name); - if(file.isOpen()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] previous file is already open: "+file.fileName()+", try open: "+this->name); - return; - } - if(isInReadLoop) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] previous file is already readding: "+file.fileName()+", try open: "+this->name); - return; - } - if(tryStartRead) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] previous file is already try read: "+file.fileName()+", try open: "+this->name); - return; - } - fakeMode=false; - this->name=name; - this->mode=mode; - emit internalStartOpen(); -} - -QString ReadThread::errorString() -{ - return errorString_internal; -} - -void ReadThread::stop() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop()"); - stopIt=true; - if(isOpen.available()>0) - return; - emit internalStartClose(); -} - -bool ReadThread::pause() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] try put read thread in pause"); - putInPause=true; - stopIt=true; - return isInReadLoop; -} - -void ReadThread::resume() -{ - if(putInPause) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - putInPause=false; - stopIt=false; - } - else - return; - if(tryStartRead) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] already in try start"); - return; - } - tryStartRead=true; - if(isInReadLoop) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] is in read loop"); - return; - } - if(!file.isOpen()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] file is not open"); - return; - } - emit internalStartRead(); -} - -bool ReadThread::seek(qint64 position) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with: "+QString::number(position)); - if(position>file.size()) - return false; - return file.seek(position); -} - -qint64 ReadThread::size() -{ - return file.size(); -} - -void ReadThread::postOperation() -{ - emit internalStartClose(); -} - -void ReadThread::checkSum() -{ - QByteArray blockArray; - QCryptographicHash hash(QCryptographicHash::Sha1); - isInReadLoop=true; - lastGoodPosition=0; - seek(0); - int sizeReaden=0; - do - { - //read one block - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Read; - #endif - blockArray=file.read(blockSize); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - - if(file.error()!=QFile::NoError) - { - errorString_internal=tr("Unable to read the source file: ")+file.errorString()+" ("+QString::number(file.error())+")"; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file.error()!=QFile::NoError: %1, error: %2").arg(QString::number(file.error())).arg(errorString_internal)); - emit error(); - isInReadLoop=false; - return; - } - sizeReaden=blockArray.size(); - if(sizeReaden>0) - { - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Checksum; - #endif - hash.addData(blockArray); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - - if(stopIt) - break; - - lastGoodPosition+=blockArray.size(); - - //wait for limitation speed if stop not query - if(maxSpeed>0) - { - numberOfBlockCopied++; - if(numberOfBlockCopied>=MultiForBigSpeed) - { - numberOfBlockCopied=0; - waitNewClockForSpeed.acquire(); - if(stopIt) - break; - } - } - } - } - while(sizeReaden>0 && !stopIt); - if(lastGoodPosition>file.size()) - { - errorString_internal=tr("File truncated during the read, possible data change"); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Source truncated during the read: %1 (%2)").arg(file.errorString()).arg(QString::number(file.error()))); - emit error(); - isInReadLoop=false; - return; - } - isInReadLoop=false; - if(stopIt) - { - if(putInPause) - emit isInPause(); - stopIt=false; - return; - } - emit checksumFinish(hash.result()); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop the read"); -} - -bool ReadThread::internalOpen(bool resetLastGoodPosition) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] internalOpen source: "+name); - stopIt=false; - putInPause=false; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=InodeOperation; - #endif - if(file.isOpen()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already open! source: "+name); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - return false; - } - file.setFileName(name); - QIODevice::OpenMode openMode=QIODevice::ReadOnly; - if(mode==Move) - openMode=QIODevice::ReadWrite; - seekToZero=false; - if(file.open(openMode)) - { - size_at_open=file.size(); - mtime_at_open=QFileInfo(file).lastModified(); - putInPause=false; - if(resetLastGoodPosition) - { - lastGoodPosition=0; - seek(0); - emit opened(); - } - else if(!seek(lastGoodPosition)) - { - errorString_internal=file.errorString(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable to seek after open: %1, error: %2").arg(name).arg(errorString_internal)); - emit error(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - return false; - } - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - isOpen.acquire(); - return true; - } - else - { - errorString_internal=file.errorString(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable to open: %1, error: %2").arg(name).arg(errorString_internal)); - emit error(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - return false; - } -} - -void ReadThread::internalRead() -{ - isInReadLoop=true; - tryStartRead=false; - if(stopIt) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] stopIt == true, then quit"); - internalClose(); - return; - } - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=InodeOperation; - #endif - int sizeReaden=0; - if(!file.isOpen()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] is not open!"); - return; - } - QByteArray blockArray; - //numberOfBlockCopied = 0; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start the copy"); - emit readIsStarted(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - if(stopIt) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] stopIt == true, then quit"); - internalClose(); - return; - } - do - { - //read one block - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Read; - #endif - blockArray=file.read(blockSize); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - - if(file.error()!=QFile::NoError) - { - errorString_internal=tr("Unable to read the source file: ")+file.errorString()+" ("+QString::number(file.error())+")"; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file.error()!=QFile::NoError: %1, error: %2").arg(QString::number(file.error())).arg(errorString_internal)); - emit error(); - isInReadLoop=false; - return; - } - sizeReaden=blockArray.size(); - if(sizeReaden>0) - { - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=WaitWritePipe; - #endif - if(!writeThread->write(blockArray)) - { - if(!stopIt) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] stopped because the write is stopped: "+QString::number(lastGoodPosition)); - stopIt=true; - } - } - - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - - if(stopIt) - break; - - lastGoodPosition+=blockArray.size(); - - //wait for limitation speed if stop not query - if(maxSpeed>0) - { - numberOfBlockCopied++; - if(numberOfBlockCopied>=MultiForBigSpeed) - { - numberOfBlockCopied=0; - waitNewClockForSpeed.acquire(); - if(stopIt) - break; - } - } - } - /* - if(lastGoodPosition>16*1024) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Test error in reading: %1 (%2)").arg(file.errorString()).arg(file.error())); - errorString_internal=QString("Test error in reading: %1 (%2)").arg(file.errorString()).arg(file.error()); - emit error(); - isInReadLoop=false; - return; - } - */ - } - while(sizeReaden>0 && !stopIt); - if(lastGoodPosition>file.size()) - { - errorString_internal=tr("File truncated during the read, possible data change"); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Source truncated during the read: %1 (%2)").arg(file.errorString()).arg(QString::number(file.error()))); - emit error(); - isInReadLoop=false; - return; - } - isInReadLoop=false; - if(stopIt) - { - if(putInPause) - emit isInPause(); - stopIt=false; - return; - } - emit readIsStopped();//will product by signal connection writeThread->endIsDetected(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop the read"); -} - -void ReadThread::startRead() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - if(tryStartRead) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] already in try start"); - return; - } - if(isInReadLoop) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped"); - else - { - tryStartRead=true; - emit internalStartRead(); - } -} - -void ReadThread::internalClose(bool callByTheDestructor) -{ - /// \note never send signal here, because it's called by the destructor - //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - if(!fakeMode) - file.close(); - if(!callByTheDestructor) - emit closed(); - - /// \note always the last of this function - if(!fakeMode) - isOpen.release(); -} - -/** \brief set block size -\param block the new block size in KB -\return Return true if succes */ -bool ReadThread::setBlockSize(const int blockSize) -{ - if(blockSize<1 || blockSize>16384) - { - this->blockSize=blockSize*1024; - //set the new max speed because the timer have changed - setMaxSpeed(maxSpeed); - return true; - } - else - return false; -} - -/*! \brief Set the max speed -\param tempMaxSpeed Set the max speed in KB/s, 0 for no limit */ -int ReadThread::setMaxSpeed(const int maxSpeed) -{ - if(this->maxSpeed==0 && maxSpeed==0 && waitNewClockForSpeed.available()>0) - waitNewClockForSpeed.tryAcquire(waitNewClockForSpeed.available()); - this->maxSpeed=maxSpeed; - if(this->maxSpeed>0) - { - int NewInterval,newMultiForBigSpeed=0; - do - { - newMultiForBigSpeed++; - NewInterval=(blockSize*newMultiForBigSpeed)/(this->maxSpeed); - } - while (NewInterval<ULTRACOPIER_PLUGIN_MINTIMERINTERVAL); - if(NewInterval>ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL) - { - NewInterval=ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL; - newMultiForBigSpeed=1; - blockSize=this->maxSpeed*NewInterval; - } - MultiForBigSpeed=newMultiForBigSpeed; - return NewInterval; - } - else - { - waitNewClockForSpeed.release(); - return 0; - } -} - -/// \brief For give timer every X ms -void ReadThread::timeOfTheBlockCopyFinished() -{ - if(waitNewClockForSpeed.available()<ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT) - waitNewClockForSpeed.release(); - //why not just use waitNewClockForSpeed.release() ? -} - -/// \brief do the fake open -void ReadThread::fakeOpen() -{ - fakeMode=true; - emit opened(); -} - -/// \brief do the fake writeIsStarted -void ReadThread::fakeReadIsStarted() -{ - emit readIsStarted(); -} - -/// \brief do the fake writeIsStopped -void ReadThread::fakeReadIsStopped() -{ - emit readIsStopped(); -} - -/// do the checksum -void ReadThread::startCheckSum() -{ - emit internalStartChecksum(); -} - -qint64 ReadThread::getLastGoodPosition() -{ - /*if(lastGoodPosition>file.size()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] Bug, the lastGoodPosition is greater than the file size!"); - return file.size(); - } - else*/ - return lastGoodPosition; -} - -//reopen after an error -void ReadThread::reopen() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - if(isInReadLoop) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] try reopen where read is not finish"); - return; - } - stopIt=true; - emit internalStartReopen(); -} - -bool ReadThread::internalReopen() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - stopIt=false; - file.close(); - if(size_at_open!=file.size() && mtime_at_open!=QFileInfo(file).lastModified()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] source file have changed since the last open, restart all"); - //fix this function like the close function - if(internalOpen(true)) - { - emit resumeAfterErrorByRestartAll(); - return true; - } - else - return false; - } - else - { - //fix this function like the close function - if(internalOpen(false)) - { - emit resumeAfterErrorByRestartAtTheLastPosition(); - return true; - } - else - return false; - } -} - -//set the write thread -void ReadThread::setWriteThread(WriteThread * writeThread) -{ - this->writeThread=writeThread; -} - -#ifdef ULTRACOPIER_PLUGIN_DEBUG -//to set the id -void ReadThread::setId(int id) -{ - this->id=id; -} -#endif - -void ReadThread::seekToZeroAndWait() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - stopIt=true; - seekToZero=true; - emit checkIfIsWait(); -} - -void ReadThread::isInWait() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - if(seekToZero) - { - seekToZero=false; - if(file.isOpen()) - seek(0); - else - internalOpen(true); - emit isSeekToZeroAndWait(); - } -} - -bool ReadThread::isReading() -{ - return isInReadLoop; -} - diff --git a/plugins-alternative/CopyEngine/Rsync/ReadThread.h b/plugins-alternative/CopyEngine/Rsync/ReadThread.h deleted file mode 100644 index 1d1eabc..0000000 --- a/plugins-alternative/CopyEngine/Rsync/ReadThread.h +++ /dev/null @@ -1,144 +0,0 @@ -/** \file ReadThread.h -\brief Thread changed to open/close and read the source file -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifndef READTHREAD_H -#define READTHREAD_H - -#include <QThread> -#include <QByteArray> -#include <QSemaphore> -#include <QTimer> -#include <QDateTime> -#include <QFileInfo> -#include <QCryptographicHash> - -#include "WriteThread.h" -#include "Environment.h" -#include "StructEnumDefinition_CopyEngine.h" -#include "AvancedQFile.h" - -/// \brief Thread changed to open/close and read the source file -class ReadThread : public QThread -{ - Q_OBJECT -public: - explicit ReadThread(); - ~ReadThread(); -protected: - void run(); -public: - /// \brief open with the name and copy mode - void open(const QString &name,const CopyMode &mode); - /// \brief return the error string - QString errorString(); - //QByteArray read(qint64 position,qint64 maxSize); - /// \brief stop the copy - void stop(); - /// \brief put the copy in pause - bool pause(); - /// \brief resume the copy - void resume(); - /// \brief get the size of the source file - qint64 size(); - /// \brief get the last good position - qint64 getLastGoodPosition(); - /// \brief start the reading of the source file - void startRead(); - /// \brief set the current max speed in KB/s - int setMaxSpeed(int maxSpeed); - /// \brief set block size in KB - bool setBlockSize(const int blockSize); - /// \brief reopen after an error - void reopen(); - /// \brief set the write thread - void setWriteThread(WriteThread * writeThread); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief to set the id - void setId(int id); - /// \brief stat - enum ReadStat - { - Idle=0, - InodeOperation=1, - Read=2, - WaitWritePipe=3, - Checksum=4 - }; - ReadStat stat; - #endif - /// \brief return if it's reading - bool isReading(); - /// \brief executed at regular interval to do a speed throling - void timeOfTheBlockCopyFinished(); - /// \brief do the fake open - void fakeOpen(); - /// \brief do the fake readIsStarted - void fakeReadIsStarted(); - /// \brief do the fake readIsStopped - void fakeReadIsStopped(); - /// do the checksum - void startCheckSum(); -public slots: - /// \brief to reset the copy, and put at the same state when it just open - void seekToZeroAndWait(); - void postOperation(); - /// do the checksum - void checkSum(); -signals: - void error(); - void isInPause(); - void opened(); - void readIsStarted(); - void readIsStopped(); - void closed(); - void isSeekToZeroAndWait(); - void checkIfIsWait(); - void resumeAfterErrorByRestartAll(); - void resumeAfterErrorByRestartAtTheLastPosition(); - void checksumFinish(const QByteArray&); - // internal signals - void internalStartOpen(); - void internalStartChecksum(); - void internalStartReopen(); - void internalStartRead(); - void internalStartClose(); - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - -private: - QString name; - QString errorString_internal; - AvancedQFile file; - volatile bool stopIt; - CopyMode mode; - qint64 lastGoodPosition; - volatile int blockSize; - volatile int maxSpeed; ///< The max speed in KB/s, 0 for no limit - QSemaphore waitNewClockForSpeed; - volatile int numberOfBlockCopied; ///< Multiple for count the number of block copied - volatile int multiplicatorForBigSpeed; ///< Multiple for count the number of block needed - volatile int MultiForBigSpeed; - WriteThread* writeThread; - int id; - QSemaphore isOpen; - volatile bool putInPause; - volatile bool isInReadLoop; - volatile bool seekToZero; - volatile bool tryStartRead; - qint64 size_at_open; - QDateTime mtime_at_open; - bool fakeMode; - //internal function - bool seek(qint64 position);/// \todo search if is use full -private slots: - bool internalOpen(bool resetLastGoodPosition=true); - bool internalReopen(); - void internalRead(); - void internalClose(bool callByTheDestructor=false); - void isInWait(); -}; - -#endif // READTHREAD_H diff --git a/plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp b/plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp deleted file mode 100644 index a09f66a..0000000 --- a/plugins-alternative/CopyEngine/Rsync/RenamingRules.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include "RenamingRules.h" -#include "ui_RenamingRules.h" - -#include <QMessageBox> - -RenamingRules::RenamingRules(QWidget *parent) : - QDialog(parent), - ui(new Ui::RenamingRules) -{ - ui->setupUi(this); - connectUI(); - setRenamingRules("",""); -} - -RenamingRules::~RenamingRules() -{ - delete ui; -} - -void RenamingRules::on_buttonBox_clicked(QAbstractButton *button) -{ - if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::RejectRole) - reject(); - if(ui->buttonBox->buttonRole(button)==QDialogButtonBox::ResetRole) - { - setRenamingRules("",""); - emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule); - } -} - -void RenamingRules::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - disconnectUI(); - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; - if(!firstRenamingRule.isEmpty()) - ui->firstRenamingRule->setText(firstRenamingRule); - else - ui->firstRenamingRule->setText(tr("%1 - copy").arg("%name%")); - if(!otherRenamingRule.isEmpty()) - ui->otherRenamingRule->setText(otherRenamingRule); - else - ui->otherRenamingRule->setText(tr("%1 - copy (%2)").arg("%name%").arg("%number%")); - connectUI(); -} - -void RenamingRules::connectUI() -{ - connect(ui->firstRenamingRule,SIGNAL(editingFinished()),this,SLOT(firstRenamingRule_haveChanged())); - connect(ui->otherRenamingRule,SIGNAL(editingFinished()),this,SLOT(otherRenamingRule_haveChanged())); -} - -void RenamingRules::disconnectUI() -{ - disconnect(ui->firstRenamingRule,SIGNAL(editingFinished()),this,SLOT(firstRenamingRule_haveChanged())); - disconnect(ui->otherRenamingRule,SIGNAL(editingFinished()),this,SLOT(otherRenamingRule_haveChanged())); -} - -void RenamingRules::firstRenamingRule_haveChanged() -{ - QString newValue=ui->firstRenamingRule->text(); - if(newValue==tr("%1 - copy").arg("%name%")) - newValue=""; - if(newValue==firstRenamingRule) - return; - firstRenamingRule=newValue; - emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule); -} - -void RenamingRules::otherRenamingRule_haveChanged() -{ - QString newValue=ui->otherRenamingRule->text(); - if(newValue==tr("%1 - copy (%2)").arg("%name%").arg("%number%")) - newValue=""; - if(newValue==otherRenamingRule) - return; - otherRenamingRule=newValue; - emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule); -} - -void RenamingRules::newLanguageLoaded() -{ - ui->retranslateUi(this); - setRenamingRules(firstRenamingRule,otherRenamingRule); -} diff --git a/plugins-alternative/CopyEngine/Rsync/RenamingRules.h b/plugins-alternative/CopyEngine/Rsync/RenamingRules.h deleted file mode 100644 index 2fd9580..0000000 --- a/plugins-alternative/CopyEngine/Rsync/RenamingRules.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef RENAMINGRULES_H -#define RENAMINGRULES_H - -#include <QDialog> -#include <QAbstractButton> - -namespace Ui { -class RenamingRules; -} - -/** Define rules for renaming */ -class RenamingRules : public QDialog -{ - Q_OBJECT -public: - explicit RenamingRules(QWidget *parent = 0); - ~RenamingRules(); - void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule); - void newLanguageLoaded(); -private: - Ui::RenamingRules *ui; - void connectUI(); - void disconnectUI(); - QString firstRenamingRule; - QString otherRenamingRule; -private slots: - void on_buttonBox_clicked(QAbstractButton *button); - void firstRenamingRule_haveChanged(); - void otherRenamingRule_haveChanged(); -signals: - void sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule); -}; - -#endif // RENAMINGRULES_H diff --git a/plugins-alternative/CopyEngine/Rsync/RenamingRules.ui b/plugins-alternative/CopyEngine/Rsync/RenamingRules.ui deleted file mode 100644 index 9e84f4b..0000000 --- a/plugins-alternative/CopyEngine/Rsync/RenamingRules.ui +++ /dev/null @@ -1,129 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>RenamingRules</class> - <widget class="QDialog" name="RenamingRules"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>303</width> - <height>213</height> - </rect> - </property> - <property name="windowTitle"> - <string>Renaming rules</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <property name="spacing"> - <number>2</number> - </property> - <property name="margin"> - <number>2</number> - </property> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>First renaming</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLineEdit" name="firstRenamingRule"> - <property name="placeholderText"> - <string extracomment="%name% should not be translated">%name% - copy</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string extracomment=" should not be translated"><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p></body></html></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"><html><head/><body><p>Variables: <span style=" font-weight:600;">%name%</span> for the original file name</p><p><span style=" font-weight:600;">%number%</span> for the extra number</p></body></html></string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>1</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Close|QDialogButtonBox::RestoreDefaults</set> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>RenamingRules</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>248</x> - <y>254</y> - </hint> - <hint type="destinationlabel"> - <x>157</x> - <y>274</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>RenamingRules</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>316</x> - <y>260</y> - </hint> - <hint type="destinationlabel"> - <x>286</x> - <y>274</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/RmPath.cpp b/plugins-alternative/CopyEngine/Rsync/RmPath.cpp deleted file mode 100644 index 636b5ba..0000000 --- a/plugins-alternative/CopyEngine/Rsync/RmPath.cpp +++ /dev/null @@ -1,179 +0,0 @@ -#include "RmPath.h" - -RmPath::RmPath() -{ - stopIt=false; - waitAction=false; - setObjectName("RmPath"); - moveToThread(this); - start(); -} - -RmPath::~RmPath() -{ - stopIt=true; - quit(); - wait(); -} - -void RmPath::addPath(const QString &path,const bool &toSync) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path); - if(stopIt) - return; - emit internalStartAddPath(path,toSync); -} - -void RmPath::skip() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit internalStartSkip(); -} - -void RmPath::retry() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit internalStartRetry(); -} - -void RmPath::run() -{ - connect(this,SIGNAL(internalStartAddPath(QString,bool)),this,SLOT(internalAddPath(QString,bool)),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartDoThisPath()),this,SLOT(internalDoThisPath()),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartSkip()),this,SLOT(internalSkip()),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartRetry()),this,SLOT(internalRetry()),Qt::QueuedConnection); - exec(); -} - -void RmPath::internalDoThisPath() -{ - if(waitAction || pathList.isEmpty()) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+pathList.first()); - if(!toSyncList.first()) - { - if(!rmpath(pathList.first(),false)) - { - if(stopIt) - return; - waitAction=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the folder: "+pathList.first()); - emit errorOnFolder(pathList.first(),tr("Unable to remove the folder")); - return; - } - } - else - { - if(QFileInfo(pathList.first()).isDir()) - { - if(!rmpath(pathList.first(),true)) - { - if(stopIt) - return; - waitAction=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the folder: "+pathList.first()); - emit errorOnFolder(pathList.first(),tr("Unable to remove the folder")); - return; - } - } - else if(!rmfile(pathList.first())) - { - if(stopIt) - return; - waitAction=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unable to remove the file: "+pathList.first()); - emit errorOnFolder(pathList.first(),tr("Unable to remove the file")); - return; - } - } - pathList.removeFirst(); - toSyncList.removeFirst(); - emit firstFolderFinish(); - checkIfCanDoTheNext(); -} - -bool RmPath::rmfile(QString filePath) -{ - QFile file(filePath); - if(!file.remove()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to remove the file: "+file.fileName()+", error: "+file.errorString()); - return false; - } - else - return true; -} - -/** remplace QDir::rmpath() because it return false if the folder not exists - and seam bug with parent folder */ -bool RmPath::rmpath(const QDir &dir,const bool &toSync) -{ - if(!dir.exists()) - return true; - bool allHaveWork=true; - QFileInfoList list = dir.entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst); - for (int i = 0; i < list.size(); ++i) - { - QFileInfo fileInfo(list.at(i)); - if(!fileInfo.isDir()) - { - if(toSync) - { - if(!rmfile(fileInfo.absoluteFilePath())) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to remove a file: "+fileInfo.fileName()); - allHaveWork=false; - } - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"found a file: "+fileInfo.fileName()); - allHaveWork=false; - } - } - else - { - //return the fonction for scan the new folder - if(!rmpath(dir.absolutePath()+'/'+fileInfo.fileName()+'/',toSync)) - allHaveWork=false; - } - } - if(!allHaveWork) - return false; - allHaveWork=dir.rmdir(dir.absolutePath()); - if(!allHaveWork) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"unable to remove the folder: "+dir.absolutePath()); - return allHaveWork; -} - -void RmPath::internalAddPath(const QString &path,const bool &toSync) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start: "+path); - pathList << path; - toSyncList << toSync; - if(!waitAction) - checkIfCanDoTheNext(); -} - -void RmPath::checkIfCanDoTheNext() -{ - if(!waitAction && !stopIt && pathList.size()>0) - emit internalStartDoThisPath(); -} - -void RmPath::internalSkip() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - waitAction=false; - pathList.removeFirst(); - emit firstFolderFinish(); - checkIfCanDoTheNext(); -} - -void RmPath::internalRetry() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - waitAction=false; - checkIfCanDoTheNext(); -} - diff --git a/plugins-alternative/CopyEngine/Rsync/RmPath.h b/plugins-alternative/CopyEngine/Rsync/RmPath.h deleted file mode 100644 index c3cd77b..0000000 --- a/plugins-alternative/CopyEngine/Rsync/RmPath.h +++ /dev/null @@ -1,58 +0,0 @@ -/** \file RmPath.h -\brief Remove the path given as queued rmpath -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifndef RMPATH_H -#define RMPATH_H - -#include <QThread> -#include <QFileInfo> -#include <QString> -#include <QSemaphore> -#include <QStringList> -#include <QDir> - -#include "Environment.h" - -/// \brief Remove the path given as queued rmpath -class RmPath : public QThread -{ - Q_OBJECT -public: - explicit RmPath(); - ~RmPath(); - /// \brief add new path to remove - void addPath(const QString &path,const bool &toSync); -signals: - void errorOnFolder(const QFileInfo &,const QString &); - void firstFolderFinish(); - void internalStartAddPath(const QString &path,const bool &toSync); - void internalStartDoThisPath(); - void internalStartSkip(); - void internalStartRetry(); - void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); -public slots: - void skip(); - void retry(); -private: - void run(); - bool waitAction; - bool stopIt; - bool skipIt; - QStringList pathList; - QList<bool> toSyncList; - void checkIfCanDoTheNext(); - QDir dir; - bool rmpath(const QDir &dir,const bool &toSync); - bool rmfile(QString filePath); -private slots: - void internalDoThisPath(); - void internalAddPath(const QString &path,const bool &toSync); - void internalSkip(); - void internalRetry(); -}; - - -#endif // RMPATH_H diff --git a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h b/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h deleted file mode 100644 index 90af91b..0000000 --- a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition_CopyEngine.h +++ /dev/null @@ -1,90 +0,0 @@ -/** \file StructEnumDefinition_CopyEngine.h -\brief Define the structure and enumeration used in the copy engine -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QString> -#include <QRegExp> - -#ifndef STRUCTDEF_COPYENGINE_H -#define STRUCTDEF_COPYENGINE_H - -/// \brief Define action if file exists -enum FileExistsAction -{ - FileExists_NotSet, - FileExists_Cancel, - FileExists_Skip, - FileExists_Overwrite, - FileExists_OverwriteIfNewer, - FileExists_OverwriteIfNotSameModificationDate, - FileExists_Rename -}; - -/// \brief Define action if file error -enum FileErrorAction -{ - FileError_NotSet, - FileError_Cancel, - FileError_Skip, - FileError_Retry, - FileError_PutToEndOfTheList -}; - -/// \brief to have the transfer status -enum TransferStat -{ - TransferStat_Idle=0, - TransferStat_PreOperation=1, - TransferStat_WaitForTheTransfer=2, - TransferStat_Transfer=3, - TransferStat_Checksum=4, - TransferStat_PostTransfer=5, - TransferStat_PostOperation=6 -}; - -/// \brief Define overwrite mode -/*enum OverwriteMode -{ - OverwriteMode_None, - OverwriteMode_Overwrite, - OverwriteMode_OverwriteIfNewer, - OverwriteMode_OverwriteIfNotSameModificationDate -};*/ - -/// \brief Define action if file exists -enum FolderExistsAction -{ - FolderExists_NotSet, - FolderExists_Cancel, - FolderExists_Merge, - FolderExists_Skip, - FolderExists_Rename -}; - -enum SearchType -{ - SearchType_rawText, - SearchType_simpleRegex, - SearchType_perlRegex, -}; - -enum ApplyOn -{ - ApplyOn_file, - ApplyOn_fileAndFolder, - ApplyOn_folder, -}; - -/** to store into different way the filter rules to be exported */ -struct Filters_rules -{ - QString search_text; - SearchType search_type; - ApplyOn apply_on; - bool need_match_all; - QRegExp regex; -}; - -#endif // STRUCTDEF_COPYENGINE_H diff --git a/plugins-alternative/CopyEngine/Rsync/TransferThread.cpp b/plugins-alternative/CopyEngine/Rsync/TransferThread.cpp deleted file mode 100644 index 5557a1e..0000000 --- a/plugins-alternative/CopyEngine/Rsync/TransferThread.cpp +++ /dev/null @@ -1,1252 +0,0 @@ -//presume bug linked as multple paralelle inode to resume after "overwrite" -//then do overwrite node function to not re-set the file name - -#include "TransferThread.h" - -#ifdef Q_CC_GNU -//this next header is needed to change file time/date under gcc -#include <utime.h> -#include <time.h> -#include <unistd.h> -#include <sys/stat.h> -#endif - -#ifndef Q_OS_UNIX -#include <windows.h> -#endif - -TransferThread::TransferThread() -{ - start(); - moveToThread(this); - needSkip = false; - transfer_stat = TransferStat_Idle; - stopIt = false; - fileExistsAction = FileExists_NotSet; - alwaysDoFileExistsAction= FileExists_NotSet; - readError = false; - writeError = false; - rsync = false; - this->mkpathTransfer = mkpathTransfer; - readThread.setWriteThread(&writeThread); - - connect(&clockForTheCopySpeed, SIGNAL(timeout()), this, SLOT(timeOfTheBlockCopyFinished())); - maxTime=QDateTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1)); -} - -TransferThread::~TransferThread() -{ - exit(); - disconnect(&readThread); - disconnect(&writeThread); - disconnect(this); - wait(); -} - -void TransferThread::run() -{ - //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start: "+QString::number((qint64)QThread::currentThreadId())); - transfer_stat = TransferStat_Idle; - stopIt = false; - fileExistsAction = FileExists_NotSet; - alwaysDoFileExistsAction= FileExists_NotSet; - //the error push - connect(&readThread,SIGNAL(error()), this, SLOT(getReadError()), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(error()), this, SLOT(getWriteError()), Qt::QueuedConnection); - //the thread change operation - connect(this,SIGNAL(internalStartPreOperation()), this, SLOT(preOperation()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartPostOperation()), this, SLOT(postOperation()), Qt::QueuedConnection); - //the state change operation - //connect(&readThread,SIGNAL(readIsStopped()), &readThread, SLOT(postOperation()), Qt::QueuedConnection);//commented to do the checksum - connect(&readThread,SIGNAL(opened()), this, SLOT(readIsReady()), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(opened()), this, SLOT(writeIsReady()), Qt::QueuedConnection); - connect(&readThread,SIGNAL(readIsStopped()), this, SLOT(readIsStopped()), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(writeIsStopped()), this, SLOT(writeIsStopped()), Qt::QueuedConnection); - connect(&readThread,SIGNAL(readIsStopped()), &writeThread, SLOT(endIsDetected()), Qt::QueuedConnection); - //connect(&writeThread,SIGNAL(writeIsStopped()), &writeThread, SLOT(postOperation()), Qt::QueuedConnection);//commented to do the checksum - connect(&readThread,SIGNAL(closed()), this, SLOT(readIsClosed()), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(closed()), this, SLOT(writeIsClosed()), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(reopened()), this, SLOT(writeThreadIsReopened()), Qt::QueuedConnection); - connect(&readThread,SIGNAL(checksumFinish(QByteArray)), this, SLOT(readChecksumFinish(QByteArray)), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(checksumFinish(QByteArray)),this, SLOT(writeChecksumFinish(QByteArray)), Qt::QueuedConnection); - //error management - connect(&readThread,SIGNAL(isSeekToZeroAndWait()), this, SLOT(readThreadIsSeekToZeroAndWait()), Qt::QueuedConnection); - connect(&readThread,SIGNAL(resumeAfterErrorByRestartAtTheLastPosition()), this, SLOT(readThreadResumeAfterError()), Qt::QueuedConnection); - connect(&readThread,SIGNAL(resumeAfterErrorByRestartAll()), &writeThread, SLOT(flushAndSeekToZero()), Qt::QueuedConnection); - connect(&writeThread,SIGNAL(flushedAndSeekedToZero()), this, SLOT(readThreadResumeAfterError()), Qt::QueuedConnection); - connect(this,SIGNAL(internalTryStartTheTransfer()), this, SLOT(internalStartTheTransfer()), Qt::QueuedConnection); - - #ifdef ULTRACOPIER_PLUGIN_DEBUG - connect(&readThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),Qt::QueuedConnection); - connect(&writeThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),Qt::QueuedConnection); - #endif - - exec(); -} - -TransferStat TransferThread::getStat() -{ - return transfer_stat; -} - -void TransferThread::startTheTransfer() -{ - emit internalTryStartTheTransfer(); -} - -void TransferThread::internalStartTheTransfer() -{ - if(transfer_stat==TransferStat_Idle) - { - if(mode!=Move) - { - /// \bug can pass here because in case of direct move on same media, it return to idle stat directly - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at idle"); - } - return; - } - if(transfer_stat==TransferStat_PostOperation) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at PostOperation"); - return; - } - if(transfer_stat==TransferStat_Transfer) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] can't start transfert at Transfer"); - return; - } - if(canStartTransfer) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] canStartTransfer is already set to true"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] check how start the transfer"); - canStartTransfer=true; - if(readIsReadyVariable && writeIsReadyVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start directly the transfer"); - ifCanStartTransfer(); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start the transfer as delayed"); -} - -void TransferThread::setFiles(const QString &source,const qint64 &size,const QString &destination,const CopyMode &mode) -{ - if(transfer_stat!=TransferStat_Idle) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination); - return; - } - //to prevent multiple file alocation into ListThread::doNewActions_inode_manipulation() - transfer_stat = TransferStat_PreOperation; - //emit pushStat(stat,transferId); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start, source: "+source+", destination: "+destination); - this->source = source; - this->destination = destination; - this->mode = mode; - this->size = size; - fileExistsAction = FileExists_NotSet; - canStartTransfer = false; - sended_state_preOperationStopped= false; - canBeMovedDirectlyVariable = false; - fileContentError = false; - resetExtraVariable(); - emit internalStartPreOperation(); -} - -void TransferThread::setFileExistsAction(const FileExistsAction &action) -{ - if(transfer_stat!=TransferStat_PreOperation) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] action: "+QString::number(action)); - if(action!=FileExists_Rename) - fileExistsAction = action; - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] rename at the wrong part, source: "+source+", destination: "+destination); - if(action==FileExists_Skip) - { - skip(); - return; - } - resetExtraVariable(); - emit internalStartPreOperation(); -} - -void TransferThread::setFileRename(const QString &nameForRename) -{ - if(transfer_stat!=TransferStat_PreOperation) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] nameForRename: "+nameForRename); - destinationInfo.setFile(destination); - destination=destinationInfo.absolutePath(); - destination+=QDir::separator()+nameForRename; - destinationInfo.setFile(destination); - fileExistsAction = FileExists_NotSet; - resetExtraVariable(); - emit internalStartPreOperation(); -} - -void TransferThread::setAlwaysFileExistsAction(const FileExistsAction &action) -{ - //ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] action to do always: "+QString::number(action)); - alwaysDoFileExistsAction=action; -} - -void TransferThread::resetExtraVariable() -{ - sended_state_readStopped = false; - sended_state_writeStopped = false; - writeError = false; - readError = false; - readIsReadyVariable = false; - writeIsReadyVariable = false; - readIsFinishVariable = false; - writeIsFinishVariable = false; - readIsClosedVariable = false; - writeIsClosedVariable = false; - needSkip = false; - retry = false; - readIsOpenVariable = false; - writeIsOpenVariable = false; -} - -void TransferThread::preOperation() -{ - if(transfer_stat!=TransferStat_PreOperation) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] already used, source: "+source+", destination: "+destination); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - needRemove=false; - sourceInfo.setFile(source); - destinationInfo.setFile(destination); - if(isSame()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] is same"+source); - return; - } - if(destinationExists()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] destination exists: "+source); - return; - } - if(canBeMovedDirectly()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] need moved directly: "+source); - canBeMovedDirectlyVariable=true; - readThread.fakeOpen(); - writeThread.fakeOpen(); - return; - } - tryOpen(); -} - -void TransferThread::tryOpen() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start source and destination: "+source+" and "+destination); - if(!readIsOpenVariable) - { - readError=false; - readThread.open(source,mode); - } - if(!writeIsOpenVariable) - { - writeError=false; - writeThread.open(destination,size,osBuffer && (!osBufferLimited || (osBufferLimited && size<osBufferLimit))); - } -} - -bool TransferThread::isSame() -{ - //check if source and destination is not the same - if(sourceInfo==destinationInfo) - { - emit fileAlreadyExists(sourceInfo,destinationInfo,true); - return true; - } - return false; -} - -bool TransferThread::destinationExists() -{ - //check if destination exists - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] overwrite: "+QString::number(fileExistsAction)+", always action: "+QString::number(alwaysDoFileExistsAction)); - if(alwaysDoFileExistsAction==FileExists_Overwrite || rsync || readError || writeError) - return false; - if(destinationInfo.exists()) - { - if(fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_Skip) - { - transfer_stat=TransferStat_Idle; - emit postOperationStopped(); - return true; - } - if(alwaysDoFileExistsAction==FileExists_Rename) - { - QString absolutePath=destinationInfo.absolutePath(); - QString fileName=destinationInfo.fileName(); - QString suffix=""; - QString newFileName; - //resolv the suffix - if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$"))) - { - suffix=fileName; - suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2"); - fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1"); - } - //resolv the new name - int num=1; - do - { - if(num==1) - { - if(firstRenamingRule=="") - newFileName=tr("%1 - copy").arg(fileName); - else - { - newFileName=firstRenamingRule; - newFileName.replace("%name%",fileName); - } - } - else - { - if(otherRenamingRule=="") - newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num); - else - { - newFileName=otherRenamingRule; - newFileName.replace("%name%",fileName); - newFileName.replace("%number%",QString::number(num)); - } - } - destination=absolutePath+QDir::separator()+newFileName+suffix; - destinationInfo.setFile(destination); - num++; - } - while(destinationInfo.exists()); - return false; - } - if(fileExistsAction==FileExists_OverwriteIfNewer || (fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_OverwriteIfNewer)) - { - if(destinationInfo.lastModified()<sourceInfo.lastModified()) - return false; - else - { - transfer_stat=TransferStat_Idle; - emit postOperationStopped(); - return true; - } - } - if(fileExistsAction==FileExists_OverwriteIfNotSameModificationDate || (fileExistsAction==FileExists_NotSet && alwaysDoFileExistsAction==FileExists_OverwriteIfNotSameModificationDate)) - { - if(destinationInfo.lastModified()!=sourceInfo.lastModified()) - return false; - else - { - transfer_stat=TransferStat_Idle; - emit postOperationStopped(); - return true; - } - } - if(fileExistsAction==FileExists_NotSet) - { - emit fileAlreadyExists(sourceInfo,destinationInfo,false); - return true; - } - } - return false; -} - -void TransferThread::tryMoveDirectly() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start the system move"); - - //move if on same mount point - QFile sourceFile(sourceInfo.absoluteFilePath()); - QFile destinationFile(destinationInfo.absoluteFilePath()); - if(destinationFile.exists() && !destinationFile.remove()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+destinationFile.fileName()+", error: "+destinationFile.errorString()); - emit errorOnFile(destinationInfo,destinationFile.errorString()); - return; - } - QDir dir(destinationInfo.absolutePath()); - { - mkpathTransfer->acquire(); - if(!dir.exists()) - dir.mkpath(destinationInfo.absolutePath()); - mkpathTransfer->release(); - } - if(!sourceFile.rename(destinationFile.fileName())) - { - if(sourceFile.exists()) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file not not exists %1: %2, error: %3").arg(sourceFile.fileName()).arg(destinationFile.fileName()).arg(sourceFile.errorString())); - else if(!dir.exists()) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("destination folder not exists %1: %2, error: %3").arg(sourceFile.fileName()).arg(destinationFile.fileName()).arg(sourceFile.errorString())); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("unable to do real move %1: %2, error: %3").arg(sourceFile.fileName()).arg(destinationFile.fileName()).arg(sourceFile.errorString())); - emit errorOnFile(sourceFile,sourceFile.errorString()); - return; - } - readThread.fakeReadIsStarted(); - writeThread.fakeWriteIsStarted(); - readThread.fakeReadIsStopped(); - writeThread.fakeWriteIsStopped(); -} - -bool TransferThread::canBeMovedDirectly() -{ - //move if on same mount point - #if defined (Q_OS_LINUX) || defined (Q_OS_WIN32) - if(mode!=Move) - return false; - if(mountSysPoint.size()==0) - return false; - if(getDrive(destinationInfo.fileName())==getDrive(sourceInfo.fileName())) - return true; - #endif - return false; -} - -void TransferThread::readIsReady() -{ - if(readIsReadyVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - readIsReadyVariable=true; - readIsOpenVariable=true; - readIsClosedVariable=false; - ifCanStartTransfer(); -} - -void TransferThread::ifCanStartTransfer() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] readIsReadyVariable: "+QString::number(readIsReadyVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)); - if(readIsReadyVariable && writeIsReadyVariable) - { - transfer_stat=TransferStat_WaitForTheTransfer; - sended_state_readStopped = false; - sended_state_writeStopped = false; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stat=WaitForTheTransfer"); - if(!sended_state_preOperationStopped) - { - sended_state_preOperationStopped=true; - emit preOperationStopped(); - } - if(canStartTransfer) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stat=Transfer"); - transfer_stat=TransferStat_Transfer; - if(!canBeMovedDirectlyVariable) - { - needRemove=true; - readThread.startRead(); - } - else - tryMoveDirectly(); - emit pushStat(transfer_stat,transferId); - } - //else - //emit pushStat(stat,transferId); - } -} - -void TransferThread::writeIsReady() -{ - if(writeIsReadyVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - writeIsReadyVariable=true; - writeIsOpenVariable=true; - writeIsClosedVariable=false; - ifCanStartTransfer(); -} - - -//set the copy info and options before runing -void TransferThread::setRightTransfer(const bool doRightTransfer) -{ - this->doRightTransfer=doRightTransfer; -} - -//set keep date -void TransferThread::setKeepDate(const bool keepDate) -{ - this->keepDate=keepDate; -} - -//set the current max speed in KB/s -void TransferThread::setMaxSpeed(int maxSpeed) -{ - int interval=readThread.setMaxSpeed(maxSpeed); - writeThread.setMaxSpeed(maxSpeed); - if(maxSpeed>0) - { - clockForTheCopySpeed.setInterval(interval); - if(!clockForTheCopySpeed.isActive())//seam useless !this->isFinished() - clockForTheCopySpeed.start(); - } - else - { - if(clockForTheCopySpeed.isActive()) - clockForTheCopySpeed.stop(); - } -} - -//set block size in KB -bool TransferThread::setBlockSize(const unsigned int blockSize) -{ - this->blockSize=blockSize; - return readThread.setBlockSize(blockSize) && writeThread.setBlockSize(blockSize); -} - -//pause the copy -void TransferThread::pause() -{ - if(transfer_stat==TransferStat_Idle) - return; - readThread.pause(); -} - -//resume the copy -void TransferThread::resume() -{ - if(transfer_stat==TransferStat_Idle) - return; - readThread.resume(); -} - -//stop the current copy -void TransferThread::stop() -{ - stopIt=true; - if(transfer_stat==TransferStat_Idle) - return; - readThread.stop(); - writeThread.stop(); -} - -void TransferThread::readIsFinish() -{ - if(readIsFinishVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - readIsFinishVariable=true; - canStartTransfer=false; - //check here if need start checksuming or not - real_doChecksum=doChecksum && (!checksumOnlyOnError || fileContentError); - if(real_doChecksum) - { - readIsFinishVariable=false; - transfer_stat=TransferStat_Checksum; - sourceChecksum=QByteArray(); - destinationChecksum=QByteArray(); - readThread.startCheckSum(); - } - else - { - transfer_stat=TransferStat_PostTransfer; - readThread.postOperation(); - } - emit pushStat(transfer_stat,transferId); -} - -void TransferThread::writeIsFinish() -{ - if(writeIsFinishVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - writeIsFinishVariable=true; - //check here if need start checksuming or not - if(real_doChecksum) - { - writeIsFinishVariable=false; - transfer_stat=TransferStat_Checksum; - writeThread.startCheckSum(); - } - else - writeThread.postOperation(); -} - -void TransferThread::readChecksumFinish(const QByteArray& checksum) -{ - sourceChecksum=checksum; - compareChecksum(); -} - -void TransferThread::writeChecksumFinish(const QByteArray& checksum) -{ - destinationChecksum=checksum; - compareChecksum(); -} - -void TransferThread::compareChecksum() -{ - if(sourceChecksum.size()==0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] the checksum of source is missing"); - return; - } - if(destinationChecksum.size()==0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] the checksum of destination is missing"); - return; - } - if(sourceChecksum==destinationChecksum) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] the checksum match"); - readThread.postOperation(); - writeThread.postOperation(); - transfer_stat=TransferStat_PostTransfer; - emit pushStat(transfer_stat,transferId); - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] the checksum not match"); - //emit error here, and wait to resume - emit errorOnFile(destinationInfo,tr("The checksums not match")); - } -} - -void TransferThread::readIsClosed() -{ - if(readIsClosedVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - readIsClosedVariable=true; - checkIfAllIsClosed(); -} - -void TransferThread::writeIsClosed() -{ - if(writeIsClosedVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] double event dropped"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - writeIsClosedVariable=true; - checkIfAllIsClosed(); -} - -bool TransferThread::checkIfAllIsClosed() -{ - if((readError || writeError) && !needSkip) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] resolve error before progress"); - return false; - } - if((!readIsReadyVariable || readIsClosedVariable) && (!writeIsReadyVariable || writeIsClosedVariable)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit internalStartPostOperation() to do the real post operation"); - transfer_stat=TransferStat_PostOperation; - //emit pushStat(stat,transferId); - emit internalStartPostOperation(); - return true; - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] "+QString("wait self close: readIsReadyVariable: %1, readIsClosedVariable: %2, writeIsReadyVariable: %3, writeIsClosedVariable: %4") - .arg(readIsReadyVariable) - .arg(readIsClosedVariable) - .arg(writeIsReadyVariable) - .arg(writeIsClosedVariable) - ); - return false; - } -} - -/// \todo found way to retry that's -/// \todo the rights copy -void TransferThread::postOperation() -{ - if(transfer_stat!=TransferStat_PostOperation) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] need be in transfer, source: "+source+", destination: "+destination+", stat:"+QString::number(transfer_stat)); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - //all except closing - if((readError || writeError) && !needSkip)//normally useless by checkIfAllIsFinish() - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] resume after error"); - return; - } - - if(!needSkip) - { - if(!doFilePostOperation()) - return; - - //remove source in moving mode - if(mode==Move && !canBeMovedDirectlyVariable) - { - if(QFile::exists(destination)) - { - QFile sourceFile(source); - if(!sourceFile.remove()) - { - emit errorOnFile(sourceInfo,sourceFile.errorString()); - return; - } - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] try remove source but destination not exists!"); - } - } - else//do difference skip a file and skip this error case - { - if(needRemove && QFile::exists(destination)) - { - QFile destinationFile(destination); - if(!destinationFile.remove()) - { - //emit errorOnFile(sourceInfo,destinationFile.errorString()); - //return; - } - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] try remove destination but not exists!"); - } - transfer_stat=TransferStat_Idle; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit postOperationStopped()"); - emit postOperationStopped(); -} - -bool TransferThread::doFilePostOperation() -{ - //do operation needed by copy - if(!canBeMovedDirectlyVariable) - { - //set the time if no write thread used - if(keepDate) - changeFileDateTime(destination,source);//can't do that's after move because after move the source not exist - /* - ignore it, because need correct management, mainly with move - if(!) - { - emit errorOnFile(destinationInfo,tr("Unable to change the date"));//destination.errorString() - return false; - }*/ - } - - if(stopIt) - return false; - - return true; -} - -////////////////////////////////////////////////////////////////// -/////////////////////// Error management ///////////////////////// -////////////////////////////////////////////////////////////////// - -void TransferThread::getWriteError() -{ - if(writeError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already in write error!"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - fileContentError = true; - writeError = true; - writeIsReadyVariable = false; - writeError_source_seeked = false; - writeError_destination_reopened = false; - emit errorOnFile(destinationInfo,writeThread.errorString()); -} - -void TransferThread::getReadError() -{ - if(readError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already in read error!"); - return; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - fileContentError = true; - readError = true; - writeIsReadyVariable = false; - readIsReadyVariable = false; - emit errorOnFile(sourceInfo,readThread.errorString()); -} - -//retry after error -void TransferThread::retryAfterError() -{ - //opening error - if(transfer_stat==TransferStat_PreOperation) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] is not idle, source: "+source+", destination: "+destination+", stat: "+QString::number(transfer_stat)); - tryOpen(); - return; - } - //data streaming error - if(transfer_stat!=TransferStat_PostOperation && transfer_stat!=TransferStat_Transfer && transfer_stat!=TransferStat_Checksum) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"["+QString::number(id)+"] is not idle, source: "+source+", destination: "+destination+", stat: "+QString::number(transfer_stat)); - return; - } - if(canBeMovedDirectlyVariable) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] retry the system move"); - tryMoveDirectly(); - return; - } - if(transfer_stat==TransferStat_Checksum) - { - if(writeError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the write error"); - writeThread.reopen(); - } - else if(readError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the read error"); - readThread.reopen(); - } - else //only checksum difference - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] retry all the transfer"); - canStartTransfer=true; - ifCanStartTransfer(); - } - return; - } - if(writeError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the write error"); - readThread.seekToZeroAndWait(); - writeThread.reopen(); - } - else if(readError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start and resume the read error"); - readThread.reopen(); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unknow error resume"); -} - -void TransferThread::writeThreadIsReopened() -{ - if(writeError_destination_reopened) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped"); - return; - } - writeError_destination_reopened=true; - if(transfer_stat==TransferStat_Checksum) - { - writeThread.startCheckSum(); - return; - } - if(writeError_source_seeked && writeError_destination_reopened) - resumeTransferAfterWriteError(); -} - -void TransferThread::readThreadIsSeekToZeroAndWait() -{ - if(writeError_source_seeked) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped"); - return; - } - writeError_source_seeked=true; - if(writeError_source_seeked && writeError_destination_reopened) - resumeTransferAfterWriteError(); -} - -void TransferThread::resumeTransferAfterWriteError() -{ - writeError=false; -/******************************** - if(canStartTransfer) - readThread.startRead(); -useless, because the open destination event -will restart the transfer as normal -*********************************/ -/********************************* -if(!canStartTransfer) - stat=WaitForTheTransfer; -useless because already do at open event -**********************************/ - //if is in wait - if(!canStartTransfer) - emit checkIfItCanBeResumed(); -} - -void TransferThread::readThreadResumeAfterError() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - readError=false; - writeIsReady(); - readIsReady(); -} - -////////////////////////////////////////////////////////////////// -///////////////////////// Normal event /////////////////////////// -////////////////////////////////////////////////////////////////// - -void TransferThread::readIsStopped() -{ - if(!sended_state_readStopped) - { - sended_state_readStopped=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit readIsStopped()"); - emit readStopped(); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] drop dual read stopped"); - readIsFinish(); -} - -void TransferThread::writeIsStopped() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - if(!sended_state_writeStopped) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit writeStopped()"); - sended_state_writeStopped=true; - emit writeStopped(); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] double event dropped"); - writeIsFinish(); -} - -void TransferThread::timeOfTheBlockCopyFinished() -{ - readThread.timeOfTheBlockCopyFinished(); -} - -//get drive of an file or folder -QString TransferThread::getDrive(QString fileOrFolder) -{ - for (int i = 0; i < mountSysPoint.size(); ++i) { - if(fileOrFolder.startsWith(mountSysPoint.at(i))) - return mountSysPoint.at(i); - } - //if unable to locate the right mount point - return ""; -} - -//set drive list, used in getDrive() -void TransferThread::setDrive(QStringList drives) -{ - mountSysPoint=drives; -} - -//fonction to edit the file date time -bool TransferThread::changeFileDateTime(const QString &source,const QString &destination) -{ - /* - if(maxTime>=sourceInfo.lastModified()) - return; - */ - /** Why not do it with Qt? Because it not support setModificationTime(), and get the time with Qt, that's mean use local time where in C is UTC time */ - #ifdef Q_OS_UNIX - #ifdef Q_OS_LINUX - struct stat info; - stat(source.toLatin1().data(),&info); - time_t ctime=info.st_ctim.tv_sec; - time_t actime=info.st_atim.tv_sec; - time_t modtime=info.st_mtim.tv_sec; - //this function avalaible on unix and mingw - utimbuf butime; - butime.actime=actime; - butime.modtime=modtime; - //creation time not exists into unix world - Q_UNUSED(ctime) - return utime(destination.toLatin1().data(),&butime)==0; - #else //mainly for mac - QFileInfo fileInfo(destination); - time_t ctime=fileInfo.created().toTime_t(); - time_t actime=fileInfo.lastRead().toTime_t(); - time_t modtime=fileInfo.lastModified().toTime_t(); - //this function avalaible on unix and mingw - utimbuf butime; - butime.actime=actime; - butime.modtime=modtime; - //creation time not exists into unix world - Q_UNUSED(ctime) - return utime(destination.toLatin1().data(),&butime)==0; - #endif - #else - #ifdef Q_OS_WIN32 - #ifdef ULTRACOPIER_PLUGIN_SET_TIME_UNIX_WAY - struct __stat64 info; - _stat64(source.toLatin1().data(),&info); - time_t ctime=info.st_ctime; - time_t actime=info.st_atime; - time_t modtime=info.st_mtime; - //this function avalaible on unix and mingw - utimbuf butime; - butime.actime=actime; - butime.modtime=modtime; - //creation time not exists into unix world - Q_UNUSED(ctime) - return utime(destination.toLatin1().data(),&butime)==0; - #else - wchar_t filePath[65535]; - source.toWCharArray(filePath); - HANDLE hFileSouce = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - destination.toWCharArray(filePath); - HANDLE hFileDestination = CreateFile(filePath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); - if(hFileSouce == INVALID_HANDLE_VALUE) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open failed to read"); - return false; - } - if(hFileDestination == INVALID_HANDLE_VALUE) - { - CloseHandle(hFileSouce); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open failed to write"); - return false; - } - FILETIME ftCreate, ftAccess, ftWrite; - if(!GetFileTime(hFileSouce, &ftCreate, &ftAccess, &ftWrite)) - { - CloseHandle(hFileSouce); - CloseHandle(hFileDestination); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unable to get the file time"); - return false; - } - if(!SetFileTime(hFileDestination, &ftCreate, &ftAccess, &ftWrite)) - { - CloseHandle(hFileSouce); - CloseHandle(hFileDestination); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unable to set the file time"); - return false; - } - CloseHandle(hFileSouce); - CloseHandle(hFileDestination); - return true; - #endif - #else - return false; - #endif - #endif - return false; -} - -//skip the copy -void TransferThread::skip() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start with stat: "+QString::number(transfer_stat)); - switch(transfer_stat) - { - case TransferStat_PreOperation: - case TransferStat_WaitForTheTransfer: - needSkip=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] case WaitForTheTransfer or PreOperation, readIsReadyVariable: "+QString::number(readIsReadyVariable)+", readIsClosedVariable: "+QString::number(readIsClosedVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)+", writeIsClosedVariable: "+QString::number(writeIsClosedVariable)); - //check if all is source and destination is closed - if(!checkIfAllIsClosed()) - { - if(readIsReadyVariable && !readIsClosedVariable) - readThread.stop(); - if(writeIsReadyVariable && !writeIsClosedVariable) - writeThread.stop(); - } - break; - case TransferStat_Transfer: - needSkip=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] case Transfer, readIsReadyVariable: "+QString::number(readIsReadyVariable)+", readIsClosedVariable: "+QString::number(readIsClosedVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)+", writeIsClosedVariable: "+QString::number(writeIsClosedVariable)); - if(!checkIfAllIsClosed()) - { - if(readIsReadyVariable && !readIsClosedVariable) - readThread.stop(); - if(writeIsReadyVariable && !writeIsClosedVariable) - writeThread.stop(); - } - break; - case TransferStat_Checksum: - needSkip=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] case Transfer, readIsReadyVariable: "+QString::number(readIsReadyVariable)+", readIsClosedVariable: "+QString::number(readIsClosedVariable)+", writeIsReadyVariable: "+QString::number(writeIsReadyVariable)+", writeIsClosedVariable: "+QString::number(writeIsClosedVariable)); - if(!checkIfAllIsClosed()) - { - if(readIsReadyVariable && !readIsClosedVariable) - readThread.stop(); - if(writeIsReadyVariable && !writeIsClosedVariable) - writeThread.stop(); - } - break; - case TransferStat_PostOperation: - //do nothing because here is closing... - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] is already in post op"); - break; - default: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] can skip in this state!"); - return; - } -} - -//return info about the copied size -qint64 TransferThread::copiedSize() -{ - switch(transfer_stat) - { - case TransferStat_Transfer: - case TransferStat_PostOperation: - return readThread.getLastGoodPosition(); - case TransferStat_Checksum: - return transferSize; - default: - return 0; - } -} - -//retry after error -void TransferThread::putAtBottom() -{ - emit tryPutAtBottom(); -} - -/// \brief set rsync -void TransferThread::setRsync(const bool rsync) -{ - this->rsync=rsync; -} - -void TransferThread::set_osBufferLimit(unsigned int osBufferLimit) -{ - this->osBufferLimit=osBufferLimit; -} - -#ifdef ULTRACOPIER_PLUGIN_DEBUG -//to set the id -void TransferThread::setId(int id) -{ - this->id=id; - readThread.setId(id); - writeThread.setId(id); -} - -QChar TransferThread::readingLetter() -{ - switch(readThread.stat) - { - case ReadThread::Idle: - return '_'; - break; - case ReadThread::InodeOperation: - return 'I'; - break; - case ReadThread::Read: - return 'R'; - break; - case ReadThread::WaitWritePipe: - return 'W'; - break; - case ReadThread::Checksum: - return 'S'; - break; - default: - return '?'; - } -} - -QChar TransferThread::writingLetter() -{ - switch(writeThread.stat) - { - case WriteThread::Idle: - return '_'; - break; - case WriteThread::InodeOperation: - return 'I'; - break; - case WriteThread::Write: - return 'W'; - break; - case WriteThread::Close: - return 'C'; - break; - case WriteThread::Read: - return 'R'; - break; - case WriteThread::Checksum: - return 'S'; - break; - default: - return '?'; - } -} - -#endif - -void TransferThread::setMkpathTransfer(QSemaphore *mkpathTransfer) -{ - this->mkpathTransfer=mkpathTransfer; - writeThread.setMkpathTransfer(mkpathTransfer); -} - -void TransferThread::set_doChecksum(bool doChecksum) -{ - this->doChecksum=doChecksum; -} - -void TransferThread::set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible) -{ - this->checksumIgnoreIfImpossible=checksumIgnoreIfImpossible; -} - -void TransferThread::set_checksumOnlyOnError(bool checksumOnlyOnError) -{ - this->checksumOnlyOnError=checksumOnlyOnError; -} - -void TransferThread::set_osBuffer(bool osBuffer) -{ - this->osBuffer=osBuffer; -} - -void TransferThread::set_osBufferLimited(bool osBufferLimited) -{ - this->osBufferLimited=osBufferLimited; -} - -//not copied size, because that's count to the checksum, ... -quint64 TransferThread::realByteTransfered() -{ - switch(transfer_stat) - { - case TransferStat_Transfer: - case TransferStat_PostOperation: - case TransferStat_Checksum: - return readThread.getLastGoodPosition(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] transferSize: "+QString::number(transferSize)); - return transferSize; - default: - return 0; - } -} - -void TransferThread::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; -} diff --git a/plugins-alternative/CopyEngine/Rsync/TransferThread.h b/plugins-alternative/CopyEngine/Rsync/TransferThread.h deleted file mode 100644 index 3ee6d35..0000000 --- a/plugins-alternative/CopyEngine/Rsync/TransferThread.h +++ /dev/null @@ -1,221 +0,0 @@ -/** \file TransferThread.h -\brief Thread changed to manage the inode operation, the signals, canceling, pre and post operations -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifndef TRANSFERTHREAD_H -#define TRANSFERTHREAD_H - -#include <QThread> -#include <QFileInfo> -#include <QString> -#include <QList> -#include <QStringList> -#include <QDateTime> -#include <QDir> - -#include "ReadThread.h" -#include "WriteThread.h" -#include "Environment.h" -#include "StructEnumDefinition_CopyEngine.h" - -/// \brief Thread changed to manage the inode operation, the signals, canceling, pre and post operations -class TransferThread : public QThread -{ - Q_OBJECT -public: - explicit TransferThread(); - ~TransferThread(); - /// \brief get transfer stat - TransferStat getStat(); - /// \brief get drive of an file or folder - QString getDrive(QString fileOrFolder); - /// \brief set drive list, used in getDrive() - void setDrive(QStringList drives); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief to set the id - void setId(int id); - /// \brief get the reading letter - QChar readingLetter(); - /// \brief get the writing letter - QChar writingLetter(); - #endif - /// \brief to have semaphore, and try create just one by one - void setMkpathTransfer(QSemaphore *mkpathTransfer); - /// \brief to store the transfer id - quint64 transferId; - /// \brief to store the transfer size - quint64 transferSize; - - void set_doChecksum(bool doChecksum); - void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible); - void set_checksumOnlyOnError(bool checksumOnlyOnError); - void set_osBuffer(bool osBuffer); - void set_osBufferLimited(bool osBufferLimited); - - //not copied size, because that's count to the checksum, ... - quint64 realByteTransfered(); -protected: - void run(); -signals: - //to send state - void preOperationStopped(); - void checkIfItCanBeResumed(); - //void transferStarted();//not sended (and not used then) - void readStopped(); - void writeStopped(); - void postOperationStopped(); - //get dialog - void fileAlreadyExists(QFileInfo,QFileInfo,bool isSame); - void errorOnFile(QFileInfo,QString); - //internal signal - void internalStartPostOperation(); - void internalStartPreOperation(); - void internalStartResumeAfterErrorAndSeek(); - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - void tryPutAtBottom(); - //force into the right thread - void internalTryStartTheTransfer(); - /// \brief update the transfer stat - void pushStat(TransferStat,quint64); -public slots: - /// \brief to start the transfer of data - void startTheTransfer(); - /// \brief to set files to transfer - void setFiles(const QString &source,const qint64 &size,const QString &destination,const CopyMode &mode); - /// \brief to set file exists action to do - void setFileExistsAction(const FileExistsAction &action); - /// \brief to set the new name of the destination - void setFileRename(const QString &nameForRename); - /// \brief to start the transfer of data - void setAlwaysFileExistsAction(const FileExistsAction &action); - /// \brief set the copy info and options before runing - void setRightTransfer(const bool doRightTransfer); - /// \brief set keep date - void setKeepDate(const bool keepDate); - /// \brief set the current max speed in KB/s - void setMaxSpeed(int maxSpeed); - /// \brief set block size in KB - bool setBlockSize(const unsigned int blockSize); - /// \brief pause the copy - void pause(); - /// \brief resume the copy - void resume(); - /// \brief stop the copy - void stop(); - /// \brief skip the copy - void skip(); - /// \brief retry after error - void retryAfterError(); - /// \brief return info about the copied size - qint64 copiedSize(); - /// \brief put the current file at bottom - void putAtBottom(); - /// \brief set rsync - void setRsync(const bool rsync); - - void set_osBufferLimit(unsigned int osBufferLimit); - void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule); -private slots: - void preOperation(); - void readIsReady(); - void writeIsReady(); - void readIsFinish(); - void writeIsFinish(); - void readIsClosed(); - void writeIsClosed(); - void postOperation(); - void getWriteError(); - void getReadError(); - void readChecksumFinish(const QByteArray&); - void writeChecksumFinish(const QByteArray&); - void compareChecksum(); - //void syncAfterErrorAndReadFinish(); - void readThreadIsSeekToZeroAndWait(); - void writeThreadIsReopened(); - void readThreadResumeAfterError(); - //to filter the emition of signal - void readIsStopped(); - void writeIsStopped(); - //speed limitation - void timeOfTheBlockCopyFinished(); - //force into the right thread - void internalStartTheTransfer(); -private: - enum MoveReturn - { - MoveReturn_skip=0, - MoveReturn_moved=1, - MoveReturn_error=2 - }; - TransferStat transfer_stat; - ReadThread readThread; - WriteThread writeThread; - QString source; - QString destination; - CopyMode mode; - QTimer clockForTheCopySpeed; ///< For the speed throttling - bool doRightTransfer; - bool keepDate; - bool readIsReadyVariable; - bool writeIsReadyVariable; - bool readIsOpenVariable; - bool writeIsOpenVariable; - bool readIsFinishVariable; - bool writeIsFinishVariable; - bool readIsClosedVariable; - bool writeIsClosedVariable; - bool canBeMovedDirectlyVariable; - bool rsync; - QByteArray sourceChecksum,destinationChecksum; - volatile bool stopIt; - volatile bool canStartTransfer; - int blockSize; - bool retry; - QFileInfo sourceInfo; - QFileInfo destinationInfo; - QStringList mountSysPoint; - qint64 size; - FileExistsAction fileExistsAction; - FileExistsAction alwaysDoFileExistsAction; - bool needSkip,needRemove; - QDateTime maxTime; - int id; - QSemaphore *mkpathTransfer; - bool doChecksum,real_doChecksum; - bool checksumIgnoreIfImpossible; - bool checksumOnlyOnError; - bool osBuffer; - bool osBufferLimited; - unsigned int osBufferLimit; - QString firstRenamingRule; - QString otherRenamingRule; - //error management - bool writeError,writeError_source_seeked,writeError_destination_reopened; - bool readError; - bool fileContentError; - //different pre-operation - bool isSame(); - bool destinationExists(); - bool canBeMovedDirectly(); - void tryMoveDirectly(); - void ifCanStartTransfer(); - //fonction to edit the file date time - bool changeFileDateTime(const QString &source,const QString &destination); - void resetExtraVariable(); - //error management function - void resumeTransferAfterWriteError(); - //to send state - bool sended_state_preOperationStopped; - bool sended_state_readStopped; - bool sended_state_writeStopped; - //different post-operation - bool checkIfAllIsClosed(); - bool doFilePostOperation(); - //different pre-operation - void tryOpen(); -}; - -#endif // TRANSFERTHREAD_H diff --git a/plugins-alternative/CopyEngine/Rsync/Variable.h b/plugins-alternative/CopyEngine/Rsync/Variable.h deleted file mode 100644 index f39b8a6..0000000 --- a/plugins-alternative/CopyEngine/Rsync/Variable.h +++ /dev/null @@ -1,35 +0,0 @@ -/** \file Variable.h
-\brief Define the environment variable
-\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#ifndef VARIABLE_H
-#define VARIABLE_H
-
-//Un-comment this next line to put ultracopier plugin in debug mode
-#define ULTRACOPIER_PLUGIN_DEBUG
-#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW
-#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW_TIMER 150
-
-#define ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK 64
-#define ULTRACOPIER_PLUGIN_MINTIMERINTERVAL 50
-#define ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL 100
-#define ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT 2
-#define ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT 64
-#define ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER 1
-#define ULTRACOPIER_PLUGIN_MINIMALYEAR 1990
-
-//if set, check the inode type at scanFileOrFolder, deprecated into the new algorithm and not used
-#define ULTRACOPIER_PLUGIN_CHECKLISTTYPE
-
-/** \brief Need be greater than 2, but greater than 20 to be efficient */
-#define ULTRACOPIER_PLUGIN_TIME_UPDATE_TRASNFER_LIST 40
-#define ULTRACOPIER_PLUGIN_TIME_UPDATE_PROGRESSION 200
-
-//#define ULTRACOPIER_PLUGIN_SET_TIME_UNIX_WAY
-
-#endif // VARIABLE_H
-
-
-
diff --git a/plugins-alternative/CopyEngine/Rsync/WriteThread.cpp b/plugins-alternative/CopyEngine/Rsync/WriteThread.cpp deleted file mode 100644 index 448e8dc..0000000 --- a/plugins-alternative/CopyEngine/Rsync/WriteThread.cpp +++ /dev/null @@ -1,508 +0,0 @@ -#include "WriteThread.h" - -#include <QDir> - -WriteThread::WriteThread() -{ - stopIt=false; - isOpen.release(); - start(); - moveToThread(this); - setObjectName("write"); - this->mkpathTransfer = mkpathTransfer; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - CurentCopiedSize=0; - buffer=false; - putInPause=false; - needRemoveTheFile=false; - blockSize=1024*1024; -} - -WriteThread::~WriteThread() -{ - stopIt=true; - needRemoveTheFile=true; - freeBlock.release(); - // useless because stopIt will close all thread, but if thread not runing run it - //endIsDetected(); - emit internalStartClose(); - isOpen.acquire(); - disconnect(this); - quit(); - wait(); -} - -void WriteThread::run() -{ - connect(this,SIGNAL(internalStartOpen()), this,SLOT(internalOpen()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartReopen()), this,SLOT(internalReopen()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartWrite()), this,SLOT(internalWrite()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartClose()), this,SLOT(internalClose()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartEndOfFile()), this,SLOT(internalEndOfFile()), Qt::QueuedConnection); - connect(this,SIGNAL(internalStartFlushAndSeekToZero()), this,SLOT(internalFlushAndSeekToZero()),Qt::QueuedConnection); - connect(this,SIGNAL(internalStartChecksum()), this,SLOT(checkSum()), Qt::QueuedConnection); - exec(); -} - -bool WriteThread::internalOpen() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] internalOpen destination: "+name); - if(stopIt) - return false; - if(file.isOpen()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] already open! destination: "+file.fileName()); - return false; - } - //set to LISTBLOCKSIZE - while(freeBlock.available()<ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK) - freeBlock.release(); - if(freeBlock.available()>ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK) - freeBlock.acquire(freeBlock.available()-ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK); - stopIt=false; - CurentCopiedSize=0; - endDetected=false; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=InodeOperation; - #endif - file.setFileName(name); - //mkpath check if exists and return true if already exists - QFileInfo destinationInfo(file); - QDir destinationFolder; - { - mkpathTransfer->acquire(); - if(!destinationFolder.exists(destinationInfo.absolutePath())) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] "+QString("Try create the path: %1") - .arg(destinationInfo.absolutePath())); - if(!destinationFolder.mkpath(destinationInfo.absolutePath())) - { - if(!destinationFolder.exists(destinationInfo.absolutePath())) - { - /// \todo do real folder error here - errorString_internal="mkpath error on destination"; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable create the folder: %1, error: %2") - .arg(destinationInfo.absolutePath()) - .arg(errorString_internal)); - emit error(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - return false; - } - } - } - mkpathTransfer->release(); - } - if(stopIt) - return false; - //try open it - QIODevice::OpenMode flags=QIODevice::ReadWrite; - if(!buffer) - flags|=QIODevice::Unbuffered; - if(file.open(flags)) - { - if(stopIt) - return false; - file.seek(0); - if(stopIt) - return false; - file.resize(startSize); - if(stopIt) - return false; - emit opened(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - isOpen.acquire(); - needRemoveTheFile=false; - return true; - } - else - { - if(stopIt) - return false; - errorString_internal=file.errorString(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Unable to open: %1, error: %2").arg(name).arg(errorString_internal)); - emit error(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - return false; - } -} - -void WriteThread::open(const QString &name,const quint64 &startSize,const bool &buffer) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] open destination: "+name); - if(stopIt) - return; - fakeMode=false; - this->name=name; - this->startSize=startSize; - this->buffer=buffer; - endDetected=false; - emit internalStartOpen(); -} - -void WriteThread::endIsDetected() -{ - if(endDetected) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] double event dropped"); - return; - } - endDetected=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - emit internalStartEndOfFile(); -} - -QString WriteThread::errorString() -{ - return errorString_internal; -} - -bool WriteThread::write(const QByteArray &data) -{ - if(stopIt) - return false; - freeBlock.acquire(); - if(stopIt) - return false; - { - QMutexLocker lock_mutex(&accessList); - theBlockList.append(data); - } - emit internalStartWrite(); - return true; -} - -void WriteThread::stop() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop()"); - needRemoveTheFile=true; - stopIt=true; - if(isOpen.available()>0) - return; - freeBlock.release(); - // useless because stopIt will close all thread, but if thread not runing run it - endIsDetected(); - //for the stop for skip: void TransferThread::skip() - emit internalStartClose(); -} - -void WriteThread::flushBuffer() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - freeBlock.release(); - freeBlock.acquire(); - { - QMutexLocker lock_mutex(&accessList); - theBlockList.clear(); - } -} - -void WriteThread::internalEndOfFile() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] writeIsStopped"); - emit writeIsStopped(); -} - -void WriteThread::internalWrite() -{ - if(stopIt) - return; - //read one block - if(theBlockList.size()<=0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] End detected of the file"); - return; - } - else - { - QMutexLocker lock_mutex(&accessList); - blockArray=theBlockList.first(); - theBlockList.removeFirst(); - } - //write one block - freeBlock.release(); - - if(stopIt) - return; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Write; - #endif - bytesWriten=file.write(blockArray); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - //mutex for stream this data - if(CurentCopiedSize==0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] emit writeIsStarted()"); - emit writeIsStarted(); - } - CurentCopiedSize+=bytesWriten; - if(stopIt) - return; - if(file.error()!=QFile::NoError) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Error in writing: %1 (%2)").arg(file.errorString()).arg(file.error())); - errorString_internal=QString("Error in writing: %1 (%2)").arg(file.errorString()).arg(file.error()); - stopIt=true; - emit error(); - return; - } - if(bytesWriten!=blockArray.size()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Error in writing, bytesWriten: %1, blockArray.size(): %2").arg(bytesWriten).arg(blockArray.size())); - errorString_internal=QString("Error in writing, bytesWriten: %1, blockArray.size(): %2").arg(bytesWriten).arg(blockArray.size()); - stopIt=true; - emit error(); - return; - } - lastGoodPosition+=bytesWriten; -} - -void WriteThread::postOperation() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - emit internalStartClose(); -} - -void WriteThread::internalClose(bool emitSignal) -{ - /// \note never send signal here, because it's called by the destructor - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Close; - #endif - if(!fakeMode && file.isOpen()) - { - if(!needRemoveTheFile) - { - if(startSize!=CurentCopiedSize) - file.resize(CurentCopiedSize); - } - file.close(); - if(needRemoveTheFile) - { - if(file.remove()) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] unable to remove the destination file"); - } - needRemoveTheFile=false; - } - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - if(emitSignal) - emit closed(); - - /// \note always the last of this function - if(!fakeMode) - isOpen.release(); -} - -void WriteThread::internalReopen() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - internalClose(false); - flushBuffer(); - stopIt=false; - CurentCopiedSize=0; - if(internalOpen()) - emit reopened(); -} - -void WriteThread::reopen() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] start"); - stopIt=true; - endDetected=false; - emit internalStartReopen(); -} - -#ifdef ULTRACOPIER_PLUGIN_DEBUG -//to set the id -void WriteThread::setId(int id) -{ - this->id=id; -} -#endif - -/// \brief do the fake open -void WriteThread::fakeOpen() -{ - fakeMode=true; - emit opened(); -} - -/// \brief do the fake writeIsStarted -void WriteThread::fakeWriteIsStarted() -{ - emit writeIsStarted(); -} - -/// \brief do the fake writeIsStopped -void WriteThread::fakeWriteIsStopped() -{ - emit writeIsStopped(); -} - -/// do the checksum -void WriteThread::startCheckSum() -{ - emit internalStartChecksum(); -} - -/** \brief set block size -\param block the new block size in KB -\return Return true if succes */ -bool WriteThread::setBlockSize(const int blockSize) -{ - if(blockSize<1 || blockSize>16384) - { - this->blockSize=blockSize*1024; - //set the new max speed because the timer have changed - setMaxSpeed(maxSpeed); - return true; - } - else - return false; -} - -/*! \brief Set the max speed -\param tempMaxSpeed Set the max speed in KB/s, 0 for no limit */ -int WriteThread::setMaxSpeed(const int maxSpeed) -{ - if(this->maxSpeed==0 && maxSpeed==0 && waitNewClockForSpeed.available()>0) - waitNewClockForSpeed.tryAcquire(waitNewClockForSpeed.available()); - this->maxSpeed=maxSpeed; - if(this->maxSpeed>0) - { - int NewInterval,newMultiForBigSpeed=0; - do - { - newMultiForBigSpeed++; - NewInterval=(blockSize*newMultiForBigSpeed)/(this->maxSpeed); - } - while (NewInterval<ULTRACOPIER_PLUGIN_MINTIMERINTERVAL); - if(NewInterval>ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL) - { - NewInterval=ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL; - newMultiForBigSpeed=1; - blockSize=this->maxSpeed*NewInterval; - } - MultiForBigSpeed=newMultiForBigSpeed; - return NewInterval; - } - else - { - waitNewClockForSpeed.release(); - return 0; - } -} - -/// \brief For give timer every X ms -void WriteThread::timeOfTheBlockCopyFinished() -{ - if(waitNewClockForSpeed.available()<ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT) - waitNewClockForSpeed.release(); - //why not just use waitNewClockForSpeed.release() ? -} - -void WriteThread::flushAndSeekToZero() -{ - stopIt=true; - emit internalStartFlushAndSeekToZero(); -} - - -void WriteThread::checkSum() -{ - //QByteArray blockArray; - QCryptographicHash hash(QCryptographicHash::Sha1); - endDetected=false; - lastGoodPosition=0; - file.seek(0); - int sizeReaden=0; - do - { - //read one block - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Read; - #endif - blockArray=file.read(blockSize); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - - if(file.error()!=QFile::NoError) - { - errorString_internal=tr("Unable to read the source file: ")+file.errorString()+" ("+QString::number(file.error())+")"; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("file.error()!=QFile::NoError: %1, error: %2").arg(QString::number(file.error())).arg(errorString_internal)); - emit error(); - return; - } - sizeReaden=blockArray.size(); - if(sizeReaden>0) - { - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Checksum; - #endif - hash.addData(blockArray); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - stat=Idle; - #endif - - if(stopIt) - break; - - lastGoodPosition+=blockArray.size(); - - //wait for limitation speed if stop not query - if(maxSpeed>0) - { - numberOfBlockCopied++; - if(numberOfBlockCopied>=MultiForBigSpeed) - { - numberOfBlockCopied=0; - waitNewClockForSpeed.acquire(); - if(stopIt) - break; - } - } - } - } - while(sizeReaden>0 && !stopIt); - if(lastGoodPosition>file.size()) - { - errorString_internal=tr("File truncated during the read, possible data change"); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"["+QString::number(id)+"] "+QString("Source truncated during the read: %1 (%2)").arg(file.errorString()).arg(QString::number(file.error()))); - emit error(); - return; - } - if(stopIt) - { -/* if(putInPause) - emit isInPause();*/ - stopIt=false; - return; - } - emit checksumFinish(hash.result()); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"["+QString::number(id)+"] stop the read"); -} - -void WriteThread::internalFlushAndSeekToZero() -{ - flushBuffer(); - file.seek(0); - stopIt=false; - emit flushedAndSeekedToZero(); -} - -void WriteThread::setMkpathTransfer(QSemaphore *mkpathTransfer) -{ - this->mkpathTransfer=mkpathTransfer; -} diff --git a/plugins-alternative/CopyEngine/Rsync/WriteThread.h b/plugins-alternative/CopyEngine/Rsync/WriteThread.h deleted file mode 100644 index 3683c27..0000000 --- a/plugins-alternative/CopyEngine/Rsync/WriteThread.h +++ /dev/null @@ -1,138 +0,0 @@ -/** \file WriteThread.h -\brief Thread changed to open/close and write the destination file -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#ifndef WRITETHREAD_H -#define WRITETHREAD_H - -#include <QThread> -#include <QByteArray> -#include <QString> -#include <QMutex> -#include <QSemaphore> -#include <QCryptographicHash> - -#include "Environment.h" -#include "StructEnumDefinition_CopyEngine.h" -#include "AvancedQFile.h" - -/// \brief Thread changed to open/close and write the destination file -class WriteThread : public QThread -{ - Q_OBJECT -public: - explicit WriteThread(); - ~WriteThread(); - /// \brief to have semaphore to do mkpath one by one - void setMkpathTransfer(QSemaphore *mkpathTransfer); -protected: - void run(); -public: - /// \brief open the destination to open it - void open(const QString &name,const quint64 &startSize,const bool &buffer); - /// \brief to return the error string - QString errorString(); - /// \brief to stop all - void stop(); - /// \brief to write data - bool write(const QByteArray &data); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief to set the id - void setId(int id); - /// \brief get the write stat - enum WriteStat - { - Idle=0, - InodeOperation=1, - Write=2, - Close=3, - Read=5, - Checksum=6 - }; - WriteStat stat; - #endif - /// \brief do the fake open - void fakeOpen(); - /// \brief do the fake writeIsStarted - void fakeWriteIsStarted(); - /// \brief do the fake writeIsStopped - void fakeWriteIsStopped(); - /// do the checksum - void startCheckSum(); - /// \brief set the current max speed in KB/s - int setMaxSpeed(int maxSpeed); - /// \brief For give timer every X ms - void timeOfTheBlockCopyFinished(); - /// \brief set block size in KB - bool setBlockSize(const int blockSize); -public slots: - /// \brief start the operation - void postOperation(); - /// \brief flush buffer - void flushBuffer(); - /// \brief set the end is detected - void endIsDetected(); - /// \brief reopen the file - void reopen(); - /// \brief flush and seek to zero - void flushAndSeekToZero(); - /// do the checksum - void checkSum(); -signals: - void error(); - void opened(); - void reopened(); - void writeIsStarted(); - void writeIsStopped(); - void flushedAndSeekedToZero(); - void closed(); - void checksumFinish(const QByteArray&); - //internal signals - void internalStartOpen(); - void internalStartChecksum(); - void internalStartReopen(); - void internalStartWrite(); - void internalStartClose(); - void internalStartEndOfFile(); - void internalStartFlushAndSeekToZero(); - /// \brief To debug source - void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); -private: - QString name; - QString errorString_internal; - AvancedQFile file; - volatile bool stopIt; - volatile int blockSize; - volatile int maxSpeed; ///< The max speed in KB/s, 0 for no limit - QMutex accessList; ///< For use the list - QSemaphore waitNewClockForSpeed; - volatile int numberOfBlockCopied; ///< Multiple for count the number of block copied - volatile int multiplicatorForBigSpeed; ///< Multiple for count the number of block needed - volatile int MultiForBigSpeed; - QSemaphore freeBlock; - QSemaphore isOpen; - volatile bool putInPause; - QList<QByteArray> theBlockList; ///< Store the block list - quint64 CurentCopiedSize; - QByteArray blockArray; ///< temp data for block writing, the data - qint64 bytesWriten; ///< temp data for block writing, the bytes writen - qint64 lastGoodPosition; - int id; - bool endDetected; - quint64 startSize; - QSemaphore *mkpathTransfer; - bool fakeMode; - bool buffer; - bool needRemoveTheFile; -private slots: - bool internalOpen(); - void internalWrite(); - void internalClose(bool emitSignal=true); - void internalReopen(); - void internalEndOfFile(); - void internalFlushAndSeekToZero(); -}; - -#endif // WRITETHREAD_H diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp b/plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp deleted file mode 100644 index 7ec07c2..0000000 --- a/plugins-alternative/CopyEngine/Rsync/copyEngine-collision-and-error.cpp +++ /dev/null @@ -1,565 +0,0 @@ -/** \file copyEngine.cpp -\brief Define the copy engine -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QtCore> -#include <QFileDialog> -#include <QMessageBox> - -#include "copyEngine.h" -#include "folderExistsDialog.h" - -/// \note Can be call without queue because all call will be serialized -void copyEngine::fileAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,TransferThread * thread,bool isCalledByShowOneNewDialog) -{ - if(stopIt) - return; - if(thread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread"); - return; - } - //load the action - if(isSame) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file is same: "+source.absoluteFilePath()); - tempFileExistsAction=alwaysDoThisActionForFileExists; - if(tempFileExistsAction==FileExists_Overwrite || tempFileExistsAction==FileExists_OverwriteIfNewer || tempFileExistsAction==FileExists_OverwriteIfNotSameModificationDate) - tempFileExistsAction=FileExists_NotSet; - switch(tempFileExistsAction) - { - case FileExists_Skip: - case FileExists_Rename: - thread->setFileExistsAction(tempFileExistsAction); - break; - default: - if(dialogIsOpen) - { - alreadyExistsQueueItem newItem; - newItem.source=source; - newItem.destination=destination; - newItem.isSame=isSame; - newItem.transfer=thread; - newItem.scan=NULL; - alreadyExistsQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - fileIsSameDialog dialog(interface,source,firstRenamingRule,otherRenamingRule); - emit isInPause(true); - dialog.exec();/// \bug crash when external close - FileExistsAction newAction=dialog.getAction(); - emit isInPause(false); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FileExists_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileExists) - { - alwaysDoThisActionForFileExists=newAction; - listThread->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists); - switch(newAction) - { - default: - case FileExists_Skip: - emit newCollisionAction("skip"); - break; - case FileExists_Rename: - emit newCollisionAction("rename"); - break; - } - } - if(dialog.getAlways() || newAction!=FileExists_Rename) - thread->setFileExistsAction(newAction); - else - thread->setFileRename(dialog.getNewName()); - dialogIsOpen=false; - if(!isCalledByShowOneNewDialog) - emit queryOneNewDialog(); - return; - break; - } - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file already exists: "+source.absoluteFilePath()+", destination: "+destination.absoluteFilePath()); - tempFileExistsAction=alwaysDoThisActionForFileExists; - switch(tempFileExistsAction) - { - case FileExists_Skip: - case FileExists_Rename: - case FileExists_Overwrite: - case FileExists_OverwriteIfNewer: - case FileExists_OverwriteIfNotSameModificationDate: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"always do this action: "+QString::number(tempFileExistsAction)); - thread->setFileExistsAction(tempFileExistsAction); - break; - default: - if(dialogIsOpen) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("dialog open, put in queue: %1 %2") - .arg(source.absoluteFilePath()) - .arg(destination.absoluteFilePath()) - ); - alreadyExistsQueueItem newItem; - newItem.source=source; - newItem.destination=destination; - newItem.isSame=isSame; - newItem.transfer=thread; - newItem.scan=NULL; - alreadyExistsQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - fileExistsDialog dialog(interface,source,destination,firstRenamingRule,otherRenamingRule); - emit isInPause(true); - dialog.exec();/// \bug crash when external close - FileExistsAction newAction=dialog.getAction(); - emit isInPause(false); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FileExists_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileExists) - { - alwaysDoThisActionForFileExists=newAction; - listThread->setAlwaysFileExistsAction(alwaysDoThisActionForFileExists); - switch(newAction) - { - default: - case FileExists_Skip: - emit newCollisionAction("skip"); - break; - case FileExists_Rename: - emit newCollisionAction("rename"); - break; - case FileExists_Overwrite: - emit newCollisionAction("overwrite"); - break; - case FileExists_OverwriteIfNewer: - emit newCollisionAction("overwriteIfNewer"); - break; - case FileExists_OverwriteIfNotSameModificationDate: - emit newCollisionAction("overwriteIfNotSameModificationDate"); - break; - } - } - if(dialog.getAlways() || newAction!=FileExists_Rename) - thread->setFileExistsAction(newAction); - else - thread->setFileRename(dialog.getNewName()); - dialogIsOpen=false; - if(!isCalledByShowOneNewDialog) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"emit queryOneNewDialog()"); - emit queryOneNewDialog(); - } - return; - break; - } - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -/// \note Can be call without queue because all call will be serialized -void copyEngine::errorOnFile(QFileInfo fileInfo,QString errorString,TransferThread * thread,bool isCalledByShowOneNewDialog) -{ - if(stopIt) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+fileInfo.absoluteFilePath()+", error: "+errorString); - if(thread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread"); - return; - } - //load the action - tempFileErrorAction=alwaysDoThisActionForFileError; - switch(tempFileErrorAction) - { - case FileError_Skip: - thread->skip(); - return; - case FileError_Retry: - thread->retryAfterError(); - return; - case FileError_PutToEndOfTheList: - /// \todo do the read transfer locator and put at the end - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"todo list item not found"); - return; - default: - if(dialogIsOpen) - { - errorQueueItem newItem; - newItem.errorString=errorString; - newItem.inode=fileInfo; - newItem.mkPath=false; - newItem.rmPath=false; - newItem.scan=NULL; - newItem.transfer=thread; - errorQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - emit error(fileInfo.absoluteFilePath(),fileInfo.size(),fileInfo.lastModified(),errorString); - fileErrorDialog dialog(interface,fileInfo,errorString); - emit isInPause(true); - dialog.exec();/// \bug crash when external close - FileErrorAction newAction=dialog.getAction(); - emit isInPause(false); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FileError_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError) - { - alwaysDoThisActionForFileError=newAction; - switch(newAction) - { - default: - case FileError_Skip: - emit newErrorAction("skip"); - break; - case FileError_PutToEndOfTheList: - emit newErrorAction("putToEndOfTheList"); - break; - } - } - switch(newAction) - { - case FileError_Skip: - thread->skip(); - break; - case FileError_Retry: - thread->retryAfterError(); - break; - case FileError_PutToEndOfTheList: - thread->putAtBottom(); - /// \todo do the read transfer locator and put at the end - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"todo"); - break; - default: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"file error action wrong"); - break; - } - dialogIsOpen=false; - if(!isCalledByShowOneNewDialog) - emit queryOneNewDialog(); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"isCalledByShowOneNewDialog==true then not show other dial"); - return; - break; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -/// \note Can be call without queue because all call will be serialized -void copyEngine::folderAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog) -{ - if(stopIt) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"folder already exists: "+source.absoluteFilePath()+", destination: "+destination.absoluteFilePath()); - if(thread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread"); - return; - } - //load the always action - tempFolderExistsAction=alwaysDoThisActionForFolderExists; - switch(tempFolderExistsAction) - { - case FolderExists_Skip: - case FolderExists_Rename: - case FolderExists_Merge: - thread->setFolderExistsAction(tempFolderExistsAction); - break; - default: - if(dialogIsOpen) - { - alreadyExistsQueueItem newItem; - newItem.source=source; - newItem.destination=destination; - newItem.isSame=isSame; - newItem.transfer=NULL; - newItem.scan=thread; - alreadyExistsQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - folderExistsDialog dialog(interface,source,isSame,destination,firstRenamingRule,otherRenamingRule); - dialog.exec();/// \bug crash when external close - FolderExistsAction newAction=dialog.getAction(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FolderExists_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFolderExists) - setComboBoxFolderColision(newAction); - if(!dialog.getAlways() && newAction==FolderExists_Rename) - thread->setFolderExistsAction(newAction,dialog.getNewName()); - else - thread->setFolderExistsAction(newAction); - dialogIsOpen=false; - if(!isCalledByShowOneNewDialog) - emit queryOneNewDialog(); - return; - break; - } -} - -/// \note Can be call without queue because all call will be serialized -/// \todo all this part -void copyEngine::errorOnFolder(QFileInfo fileInfo,QString errorString,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog) -{ - if(stopIt) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+fileInfo.absoluteFilePath()+", error: "+errorString); - if(thread==NULL) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to locate the thread"); - return; - } - //load the always action - tempFileErrorAction=alwaysDoThisActionForFolderError; - switch(tempFileErrorAction) - { - case FileError_Skip: - case FileError_Retry: - case FileError_PutToEndOfTheList: - thread->setFolderErrorAction(tempFileErrorAction); - break; - default: - if(dialogIsOpen) - { - errorQueueItem newItem; - newItem.errorString=errorString; - newItem.inode=fileInfo; - newItem.mkPath=false; - newItem.rmPath=false; - newItem.scan=thread; - newItem.transfer=NULL; - errorQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - emit error(fileInfo.absoluteFilePath(),fileInfo.size(),fileInfo.lastModified(),errorString); - fileErrorDialog dialog(interface,fileInfo,errorString); - dialog.exec();/// \bug crash when external close - FileErrorAction newAction=dialog.getAction(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FileError_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError) - setComboBoxFolderError(newAction); - dialogIsOpen=false; - thread->setFolderErrorAction(newAction); - if(!isCalledByShowOneNewDialog) - emit queryOneNewDialog(); - return; - break; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -// ----------------------------------------------------- - -//mkpath event -void copyEngine::mkPathErrorOnFolder(QFileInfo folder,QString errorString,bool isCalledByShowOneNewDialog) -{ - if(stopIt) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+folder.absoluteFilePath()+", error: "+errorString); - //load the always action - tempFileErrorAction=alwaysDoThisActionForFolderError; - error_index=0; - switch(tempFileErrorAction) - { - case FileError_Skip: - listThread->mkPathQueue.skip(); - return; - case FileError_Retry: - listThread->mkPathQueue.retry(); - return; - default: - if(dialogIsOpen) - { - errorQueueItem newItem; - newItem.errorString=errorString; - newItem.inode=folder; - newItem.mkPath=true; - newItem.rmPath=false; - newItem.scan=NULL; - newItem.transfer=NULL; - errorQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - emit error(folder.absoluteFilePath(),folder.size(),folder.lastModified(),errorString); - fileErrorDialog dialog(interface,folder,errorString,false); - dialog.exec();/// \bug crash when external close - FileErrorAction newAction=dialog.getAction(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FileError_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError) - { - setComboBoxFolderError(newAction); - alwaysDoThisActionForFolderError=newAction; - } - dialogIsOpen=false; - switch(newAction) - { - case FileError_Skip: - listThread->mkPathQueue.skip(); - break; - case FileError_Retry: - listThread->mkPathQueue.retry(); - break; - default: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unknow switch case: "+QString::number(newAction)); - break; - } - if(!isCalledByShowOneNewDialog) - emit queryOneNewDialog(); - return; - break; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -//rmpath event -void copyEngine::rmPathErrorOnFolder(QFileInfo folder,QString errorString,bool isCalledByShowOneNewDialog) -{ - if(stopIt) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"file have error: "+folder.absoluteFilePath()+", error: "+errorString); - //load the always action - tempFileErrorAction=alwaysDoThisActionForFolderError; - error_index=0; - switch(tempFileErrorAction) - { - case FileError_Skip: - listThread->rmPathQueue.skip(); - return; - case FileError_Retry: - listThread->rmPathQueue.retry(); - return; - default: - if(dialogIsOpen) - { - errorQueueItem newItem; - newItem.errorString=errorString; - newItem.inode=folder; - newItem.mkPath=false; - newItem.rmPath=true; - newItem.scan=NULL; - newItem.transfer=NULL; - errorQueue << newItem; - return; - } - dialogIsOpen=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"show dialog"); - emit error(folder.absoluteFilePath(),folder.size(),folder.lastModified(),errorString); - fileErrorDialog dialog(interface,folder,errorString,false); - dialog.exec();/// \bug crash when external close - FileErrorAction newAction=dialog.getAction(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"close dialog: "+QString::number(newAction)); - if(newAction==FileError_Cancel) - { - emit cancelAll(); - return; - } - if(dialog.getAlways() && newAction!=alwaysDoThisActionForFileError) - { - setComboBoxFolderError(newAction); - alwaysDoThisActionForFolderError=newAction; - } - dialogIsOpen=false; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"do the action"); - switch(newAction) - { - case FileError_Skip: - listThread->rmPathQueue.skip(); - break; - case FileError_Retry: - listThread->rmPathQueue.retry(); - break; - default: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"Unknow switch case: "+QString::number(newAction)); - break; - } - if(!isCalledByShowOneNewDialog) - emit queryOneNewDialog(); - return; - break; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"stop"); -} - -//show one new dialog if needed -void copyEngine::showOneNewDialog() -{ - if(stopIt) - return; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"alreadyExistsQueue.size(): "+QString::number(alreadyExistsQueue.size())); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"errorQueue.size(): "+QString::number(errorQueue.size())); - loop_size=alreadyExistsQueue.size(); - while(loop_size>0) - { - if(alreadyExistsQueue.first().transfer!=NULL) - { - fileAlreadyExists(alreadyExistsQueue.first().source, - alreadyExistsQueue.first().destination, - alreadyExistsQueue.first().isSame, - alreadyExistsQueue.first().transfer, - true); - } - else if(alreadyExistsQueue.first().scan!=NULL) - folderAlreadyExists(alreadyExistsQueue.first().source, - alreadyExistsQueue.first().destination, - alreadyExistsQueue.first().isSame, - alreadyExistsQueue.first().scan, - true); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"bug, no thread actived"); - alreadyExistsQueue.removeFirst(); - loop_size--; - } - loop_size=errorQueue.size(); - while(errorQueue.size()>0) - { - if(errorQueue.first().transfer!=NULL) - errorOnFile(errorQueue.first().inode,errorQueue.first().errorString,errorQueue.first().transfer,true); - else if(errorQueue.first().scan!=NULL) - errorOnFolder(errorQueue.first().inode,errorQueue.first().errorString,errorQueue.first().scan,true); - else if(errorQueue.first().mkPath) - mkPathErrorOnFolder(errorQueue.first().inode,errorQueue.first().errorString,true); - else if(errorQueue.first().rmPath) - rmPathErrorOnFolder(errorQueue.first().inode,errorQueue.first().errorString,true); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"bug, no thread actived"); - errorQueue.removeFirst(); - loop_size--; - } -} diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine.cpp b/plugins-alternative/CopyEngine/Rsync/copyEngine.cpp deleted file mode 100755 index 1c17f8a..0000000 --- a/plugins-alternative/CopyEngine/Rsync/copyEngine.cpp +++ /dev/null @@ -1,819 +0,0 @@ -/** \file copyEngine.cpp -\brief Define the copy engine -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QtCore> -#include <QFileDialog> -#include <QMessageBox> - -#include "copyEngine.h" -#include "folderExistsDialog.h" -#include "../../../interface/PluginInterface_CopyEngine.h" - -copyEngine::copyEngine(FacilityInterface * facilityEngine) : - ui(new Ui::options()) -{ - listThread=new ListThread(facilityEngine); - this->facilityEngine=facilityEngine; - filters=NULL; - renamingRules=NULL; - qRegisterMetaType<TransferThread *>("TransferThread *"); - qRegisterMetaType<scanFileOrFolder *>("scanFileOrFolder *"); - qRegisterMetaType<EngineActionInProgress>("EngineActionInProgress"); - qRegisterMetaType<DebugLevel>("DebugLevel"); - qRegisterMetaType<FileExistsAction>("FileExistsAction"); - qRegisterMetaType<FolderExistsAction>("FolderExistsAction"); - qRegisterMetaType<QList<Filters_rules> >("QList<Filters_rules>"); - qRegisterMetaType<QList<int> >("QList<int>"); - qRegisterMetaType<CopyMode>("CopyMode"); - qRegisterMetaType<QList<returnActionOnCopyList> >("QList<returnActionOnCopyList>"); - qRegisterMetaType<QList<ProgressionItem> >("QList<ProgressionItem>"); - - interface = NULL; - tempWidget = NULL; - uiIsInstalled = false; - dialogIsOpen = false; - maxSpeed = 0; - alwaysDoThisActionForFileExists = FileExists_NotSet; - alwaysDoThisActionForFileError = FileError_NotSet; - checkDestinationFolderExists = false; - stopIt = false; - size_for_speed = 0; - forcedMode = false; - - //implement the SingleShot in this class - //timerActionDone.setSingleShot(true); - timerActionDone.setInterval(ULTRACOPIER_PLUGIN_TIME_UPDATE_TRASNFER_LIST); - //timerProgression.setSingleShot(true); - timerProgression.setInterval(ULTRACOPIER_PLUGIN_TIME_UPDATE_PROGRESSION); - -} - -copyEngine::~copyEngine() -{ - /*if(filters!=NULL) - delete filters; - if(renamingRules!=NULL) - delete renamingRules; - destroyed by the widget parent, here the interface - */ - stopIt=true; - delete listThread; - delete ui; -} - -void copyEngine::connectTheSignalsSlots() -{ - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - debugDialogWindow.show(); - #endif - if(!connect(listThread,SIGNAL(actionInProgess(EngineActionInProgress)), this,SIGNAL(actionInProgess(EngineActionInProgress)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect actionInProgess()"); - if(!connect(listThread,SIGNAL(actionInProgess(EngineActionInProgress)), this,SLOT(newActionInProgess(EngineActionInProgress)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect actionInProgess() to slot"); - if(!connect(listThread,SIGNAL(newFolderListing(QString)), this,SIGNAL(newFolderListing(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newFolderListing()"); - if(!connect(listThread,SIGNAL(newCollisionAction(QString)), this,SIGNAL(newCollisionAction(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newCollisionAction()"); - if(!connect(listThread,SIGNAL(newErrorAction(QString)), this,SIGNAL(newErrorAction(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newErrorAction()"); - if(!connect(listThread,SIGNAL(isInPause(bool)), this,SIGNAL(isInPause(bool)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect isInPause()"); - if(!connect(listThread,SIGNAL(error(QString,quint64,QDateTime,QString)), this,SIGNAL(error(QString,quint64,QDateTime,QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect error()"); - if(!connect(listThread,SIGNAL(rmPath(QString)), this,SIGNAL(rmPath(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect rmPath()"); - if(!connect(listThread,SIGNAL(mkPath(QString)), this,SIGNAL(mkPath(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect mkPath()"); - if(!connect(listThread,SIGNAL(newActionOnList(QList<returnActionOnCopyList>)), this,SIGNAL(newActionOnList(QList<returnActionOnCopyList>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect newActionOnList()"); - if(!connect(listThread,SIGNAL(pushFileProgression(QList<ProgressionItem>)), this,SIGNAL(pushFileProgression(QList<ProgressionItem>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect pushFileProgression()"); - if(!connect(listThread,SIGNAL(pushGeneralProgression(quint64,quint64)), this,SIGNAL(pushGeneralProgression(quint64,quint64)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect pushGeneralProgression()"); - if(!connect(listThread,SIGNAL(syncReady()), this,SIGNAL(syncReady()), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect syncReady()"); - if(!connect(listThread,SIGNAL(canBeDeleted()), this,SIGNAL(canBeDeleted()), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect canBeDeleted()"); - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - if(!connect(listThread,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect debugInformation()"); - #endif - - if(!connect(listThread,SIGNAL(send_fileAlreadyExists(QFileInfo,QFileInfo,bool,TransferThread *)), this,SLOT(fileAlreadyExists(QFileInfo,QFileInfo,bool,TransferThread *)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_fileAlreadyExists()"); - if(!connect(listThread,SIGNAL(send_errorOnFile(QFileInfo,QString,TransferThread *)), this,SLOT(errorOnFile(QFileInfo,QString,TransferThread *)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_errorOnFile()"); - if(!connect(listThread,SIGNAL(send_folderAlreadyExists(QFileInfo,QFileInfo,bool,scanFileOrFolder *)), this,SLOT(folderAlreadyExists(QFileInfo,QFileInfo,bool,scanFileOrFolder *)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_folderAlreadyExists()"); - if(!connect(listThread,SIGNAL(send_errorOnFolder(QFileInfo,QString,scanFileOrFolder *)), this,SLOT(errorOnFolder(QFileInfo,QString,scanFileOrFolder *)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_errorOnFolder()"); - if(!connect(listThread,SIGNAL(updateTheDebugInfo(QStringList,QStringList,int)), this,SLOT(updateTheDebugInfo(QStringList,QStringList,int)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect updateTheDebugInfo()"); - if(!connect(listThread,SIGNAL(errorTransferList(QString)), this,SLOT(errorTransferList(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect errorTransferList()"); - if(!connect(listThread,SIGNAL(warningTransferList(QString)), this,SLOT(warningTransferList(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect warningTransferList()"); - if(!connect(listThread,SIGNAL(mkPathErrorOnFolder(QFileInfo,QString)), this,SLOT(mkPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect mkPathErrorOnFolder()"); - if(!connect(listThread,SIGNAL(rmPathErrorOnFolder(QFileInfo,QString)), this,SLOT(rmPathErrorOnFolder(QFileInfo,QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect rmPathErrorOnFolder()"); - if(!connect(listThread,SIGNAL(send_realBytesTransfered(quint64)), this,SLOT(get_realBytesTransfered(quint64)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_realBytesTransfered()"); - - if(!connect(this,SIGNAL(tryCancel()), listThread,SIGNAL(tryCancel()), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect tryCancel()"); - if(!connect(this,SIGNAL(signal_pause()), listThread,SLOT(pause()), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_pause()"); - if(!connect(this,SIGNAL(signal_resume()), listThread,SLOT(resume()), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_resume()"); - if(!connect(this,SIGNAL(signal_skip(quint64)), listThread,SLOT(skip(quint64)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_skip()"); - if(!connect(this,SIGNAL(signal_setCollisionAction(FileExistsAction)), listThread,SLOT(setAlwaysFileExistsAction(FileExistsAction)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_setCollisionAction()"); - if(!connect(this,SIGNAL(signal_setFolderColision(FolderExistsAction)), listThread,SLOT(setFolderColision(FolderExistsAction)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_setFolderColision()"); - if(!connect(this,SIGNAL(signal_removeItems(QList<int>)), listThread,SLOT(removeItems(QList<int>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_removeItems()"); - if(!connect(this,SIGNAL(signal_moveItemsOnTop(QList<int>)), listThread,SLOT(moveItemsOnTop(QList<int>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsOnTop()"); - if(!connect(this,SIGNAL(signal_moveItemsUp(QList<int>)), listThread,SLOT(moveItemsUp(QList<int>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsUp()"); - if(!connect(this,SIGNAL(signal_moveItemsDown(QList<int>)), listThread,SLOT(moveItemsDown(QList<int>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsDown()"); - if(!connect(this,SIGNAL(signal_moveItemsOnBottom(QList<int>)), listThread,SLOT(moveItemsOnBottom(QList<int>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_moveItemsOnBottom()"); - if(!connect(this,SIGNAL(signal_exportTransferList(QString)), listThread,SLOT(exportTransferList(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_exportTransferList()"); - if(!connect(this,SIGNAL(signal_importTransferList(QString)), listThread,SLOT(importTransferList(QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_importTransferList()"); - if(!connect(this,SIGNAL(signal_forceMode(CopyMode)), listThread,SLOT(forceMode(CopyMode)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect signal_forceMode()"); - if(!connect(this,SIGNAL(send_osBufferLimit(uint)), listThread,SLOT(set_osBufferLimit(uint)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_osBufferLimit()"); - if(!connect(this,SIGNAL(send_setFilters(QList<Filters_rules>,QList<Filters_rules>)),listThread,SLOT(set_setFilters(QList<Filters_rules>,QList<Filters_rules>)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_setFilters()"); - if(!connect(this,SIGNAL(send_sendNewRenamingRules(QString,QString)),listThread,SLOT(set_sendNewRenamingRules(QString,QString)), Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect send_sendNewRenamingRules()"); - if(!connect(&timerActionDone,SIGNAL(timeout()), listThread,SLOT(sendActionDone()))) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect timerActionDone"); - if(!connect(&timerProgression,SIGNAL(timeout()), listThread,SLOT(sendProgression()))) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect timerProgression"); - - if(!connect(this,SIGNAL(queryOneNewDialog()),SLOT(showOneNewDialog()),Qt::QueuedConnection)) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect queryOneNewDialog()"); -} - -#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW -void copyEngine::updateTheDebugInfo(QStringList newList,QStringList newList2,int numberOfInodeOperation) -{ - debugDialogWindow.setTransferThreadList(newList); - debugDialogWindow.setTransferList(newList2); - debugDialogWindow.setInodeUsage(numberOfInodeOperation); -} -#endif - -//to send the options panel -bool copyEngine::getOptionsEngine(QWidget * tempWidget) -{ - this->tempWidget=tempWidget; - connect(tempWidget, SIGNAL(destroyed()), this, SLOT(resetTempWidget())); - ui->setupUi(tempWidget); - //conect the ui widget -/* connect(ui->doRightTransfer, SIGNAL(toggled(bool)), &threadOfTheTransfer, SLOT(setRightTransfer(bool))); - connect(ui->keepDate, SIGNAL(toggled(bool)), &threadOfTheTransfer, SLOT(setKeepDate(bool))); - connect(ui->blockSize, SIGNAL(valueChanged(int)), &threadOfTheTransfer, SLOT(setBlockSize(int)));*/ - connect(ui->autoStart, SIGNAL(toggled(bool)), this, SLOT(setAutoStart(bool))); - connect(ui->rsync, SIGNAL(toggled(bool)), this, SLOT(setRsync(bool))); - connect(ui->checkBoxDestinationFolderExists, SIGNAL(toggled(bool)), this, SLOT(setCheckDestinationFolderExists(bool))); - uiIsInstalled=true; - setRightTransfer(doRightTransfer); - setKeepDate(keepDate); - setSpeedLimitation(maxSpeed); - setBlockSize(blockSize); - setAutoStart(autoStart); - setRsync(rsync); - setCheckDestinationFolderExists(checkDestinationFolderExists); - set_doChecksum(doChecksum); - set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible); - set_checksumOnlyOnError(checksumOnlyOnError); - set_osBuffer(osBuffer); - set_osBufferLimited(osBufferLimited); - set_osBufferLimit(osBufferLimit); - return true; -} - -//to have interface widget to do modal dialog -void copyEngine::setInterfacePointer(QWidget * interface) -{ - this->interface=interface; - filters=new Filters(tempWidget); - renamingRules=new RenamingRules(tempWidget); - - if(uiIsInstalled) - { - connect(ui->doRightTransfer, SIGNAL(toggled(bool)), this,SLOT(setRightTransfer(bool))); - connect(ui->keepDate, SIGNAL(toggled(bool)), this,SLOT(setKeepDate(bool))); - connect(ui->blockSize, SIGNAL(valueChanged(int)), this,SLOT(setBlockSize(int))); - connect(ui->autoStart, SIGNAL(toggled(bool)), this,SLOT(setAutoStart(bool))); - connect(ui->rsync, SIGNAL(toggled(bool)), this,SLOT(setRsync(bool))); - connect(ui->doChecksum, SIGNAL(toggled(bool)), this,SLOT(doChecksum_toggled(bool))); - connect(ui->checksumIgnoreIfImpossible, SIGNAL(toggled(bool)), this,SLOT(checksumIgnoreIfImpossible_toggled(bool))); - connect(ui->checksumOnlyOnError, SIGNAL(toggled(bool)), this,SLOT(checksumOnlyOnError_toggled(bool))); - connect(ui->osBuffer, SIGNAL(toggled(bool)), this,SLOT(osBuffer_toggled(bool))); - connect(ui->osBufferLimited, SIGNAL(toggled(bool)), this,SLOT(osBufferLimited_toggled(bool))); - connect(ui->osBufferLimit, SIGNAL(editingFinished()), this,SLOT(osBufferLimit_editingFinished())); - - connect(filters,SIGNAL(sendNewFilters(QStringList,QStringList,QStringList,QStringList)),this,SLOT(sendNewFilters())); - connect(ui->filters,SIGNAL(clicked()),this,SLOT(showFilterDialog())); - - if(!connect(renamingRules,SIGNAL(sendNewRenamingRules(QString,QString)),this,SLOT(sendNewRenamingRules(QString,QString)))) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect sendNewRenamingRules()"); - if(!connect(ui->renamingRules,SIGNAL(clicked()),this,SLOT(showRenamingRules()))) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to connect renamingRules.clicked()"); - } - - filters->setFilters(includeStrings,includeOptions,excludeStrings,excludeOptions); - set_setFilters(includeStrings,includeOptions,excludeStrings,excludeOptions); - - renamingRules->setRenamingRules(firstRenamingRule,otherRenamingRule); - emit send_sendNewRenamingRules(firstRenamingRule,otherRenamingRule); -} - -bool copyEngine::haveSameSource(const QStringList &sources) -{ - return listThread->haveSameSource(sources); -} - -bool copyEngine::haveSameDestination(const QString &destination) -{ - return listThread->haveSameDestination(destination); -} - -bool copyEngine::newCopy(const QStringList &sources) -{ - if(forcedMode && mode!=Copy) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to move, you can't copy with it"); - QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to move, you can't copy with it")); - return false; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - QString destination = QFileDialog::getExistingDirectory(interface,facilityEngine->translateText("Select destination directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - if(destination.isEmpty() || destination.isNull() || destination=="") - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Canceled by the user"); - return false; - } - return listThread->newCopy(sources,destination); -} - -bool copyEngine::newCopy(const QStringList &sources,const QString &destination) -{ - if(forcedMode && mode!=Copy) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to move, you can't copy with it"); - QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to move, you can't copy with it")); - return false; - } - return listThread->newCopy(sources,destination); -} - -bool copyEngine::newMove(const QStringList &sources) -{ - if(forcedMode && mode!=Move) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to copy, you can't move with it"); - QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to copy, you can't move with it")); - return false; - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - QString destination = QFileDialog::getExistingDirectory(interface,facilityEngine->translateText("Select destination directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - if(destination.isEmpty() || destination.isNull() || destination=="") - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Canceled by the user"); - return false; - } - return listThread->newMove(sources,destination); -} - -bool copyEngine::newMove(const QStringList &sources,const QString &destination) -{ - if(forcedMode && mode!=Move) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"The engine is forced to copy, you can't move with it"); - QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The engine is forced to copy, you can't move with it")); - return false; - } - return listThread->newMove(sources,destination); -} - -void copyEngine::newTransferList(const QString &file) -{ - emit signal_importTransferList(file); -} - -//because direct access to list thread into the main thread can't be do -quint64 copyEngine::realByteTransfered() -{ - return size_for_speed; -} - -//speed limitation -qint64 copyEngine::getSpeedLimitation() -{ - return listThread->getSpeedLimitation(); -} - -//get collision action -QList<QPair<QString,QString> > copyEngine::getCollisionAction() -{ - QPair<QString,QString> tempItem; - QList<QPair<QString,QString> > list; - tempItem.first=facilityEngine->translateText("Ask");tempItem.second="ask";list << tempItem; - tempItem.first=facilityEngine->translateText("Skip");tempItem.second="skip";list << tempItem; - tempItem.first=facilityEngine->translateText("Overwrite");tempItem.second="overwrite";list << tempItem; - tempItem.first=facilityEngine->translateText("Overwrite if newer");tempItem.second="overwriteIfNewer";list << tempItem; - tempItem.first=facilityEngine->translateText("Overwrite if the last modification dates are different");tempItem.second="overwriteIfNotSameModificationDate";list << tempItem; - tempItem.first=facilityEngine->translateText("Rename");tempItem.second="rename";list << tempItem; - return list; -} - -QList<QPair<QString,QString> > copyEngine::getErrorAction() -{ - QPair<QString,QString> tempItem; - QList<QPair<QString,QString> > list; - tempItem.first=facilityEngine->translateText("Ask");tempItem.second="ask";list << tempItem; - tempItem.first=facilityEngine->translateText("Skip");tempItem.second="skip";list << tempItem; - tempItem.first=facilityEngine->translateText("Put to end of the list");tempItem.second="putToEndOfTheList";list << tempItem; - return list; -} - -void copyEngine::setDrive(const QStringList &drives) -{ - listThread->setDrive(drives); -} - -/** \brief to sync the transfer list - * Used when the interface is changed, useful to minimize the memory size */ -void copyEngine::syncTransferList() -{ - listThread->syncTransferList(); -} - -void copyEngine::set_doChecksum(bool doChecksum) -{ - listThread->set_doChecksum(doChecksum); - if(uiIsInstalled) - ui->doChecksum->setChecked(doChecksum); - this->doChecksum=doChecksum; -} - -void copyEngine::set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible) -{ - listThread->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible); - if(uiIsInstalled) - ui->checksumIgnoreIfImpossible->setChecked(checksumIgnoreIfImpossible); - this->checksumIgnoreIfImpossible=checksumIgnoreIfImpossible; -} - -void copyEngine::set_checksumOnlyOnError(bool checksumOnlyOnError) -{ - listThread->set_checksumOnlyOnError(checksumOnlyOnError); - if(uiIsInstalled) - ui->checksumOnlyOnError->setChecked(checksumOnlyOnError); - this->checksumOnlyOnError=checksumOnlyOnError; -} - -void copyEngine::set_osBuffer(bool osBuffer) -{ - listThread->set_osBuffer(osBuffer); - if(uiIsInstalled) - ui->osBuffer->setChecked(osBuffer); - this->osBuffer=osBuffer; -} - -void copyEngine::set_osBufferLimited(bool osBufferLimited) -{ - listThread->set_osBufferLimited(osBufferLimited); - if(uiIsInstalled) - ui->osBufferLimited->setChecked(osBufferLimited); - this->osBufferLimited=osBufferLimited; -} - -void copyEngine::set_osBufferLimit(unsigned int osBufferLimit) -{ - emit send_osBufferLimit(osBufferLimit); - if(uiIsInstalled) - ui->osBufferLimit->setValue(osBufferLimit); - this->osBufferLimit=osBufferLimit; -} - -void copyEngine::set_setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions) -{ - if(filters!=NULL) - { - filters->setFilters(includeStrings,includeOptions,excludeStrings,excludeOptions); - emit send_setFilters(filters->getInclude(),filters->getExclude()); - } - this->includeStrings=includeStrings; - this->includeOptions=includeOptions; - this->excludeStrings=excludeStrings; - this->excludeOptions=excludeOptions; -} - -void copyEngine::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - sendNewRenamingRules(firstRenamingRule,otherRenamingRule); -} - -bool copyEngine::userAddFolder(const CopyMode &mode) -{ - QString source = QFileDialog::getExistingDirectory(interface,facilityEngine->translateText("Select source directory"),"",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - if(source.isEmpty() || source.isNull() || source=="") - return false; - if(mode==Copy) - return newCopy(QStringList() << source); - else - return newMove(QStringList() << source); -} - -bool copyEngine::userAddFile(const CopyMode &mode) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - QStringList sources = QFileDialog::getOpenFileNames( - interface, - facilityEngine->translateText("Select one or more files to open"), - "", - facilityEngine->translateText("All files")+" (*)"); - if(sources.isEmpty()) - return false; - if(mode==Copy) - return newCopy(sources); - else - return newMove(sources); -} - -void copyEngine::pause() -{ - emit signal_pause(); -} - -void copyEngine::resume() -{ - emit signal_resume(); -} - -void copyEngine::skip(const quint64 &id) -{ - emit signal_skip(id); -} - -void copyEngine::cancel() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - stopIt=true; - timerProgression.stop(); - timerActionDone.stop(); - emit tryCancel(); -} - -void copyEngine::removeItems(const QList<int> &ids) -{ - emit signal_removeItems(ids); -} - -void copyEngine::moveItemsOnTop(const QList<int> &ids) -{ - emit signal_moveItemsOnTop(ids); -} - -void copyEngine::moveItemsUp(const QList<int> &ids) -{ - emit signal_moveItemsUp(ids); -} - -void copyEngine::moveItemsDown(const QList<int> &ids) -{ - emit signal_moveItemsDown(ids); -} - -void copyEngine::moveItemsOnBottom(const QList<int> &ids) -{ - emit signal_moveItemsOnBottom(ids); -} - -/** \brief give the forced mode, to export/import transfer list */ -void copyEngine::forceMode(const CopyMode &mode) -{ - if(mode==Move) - { - listThread->setRsync(false); - rsync=false; - } - if(uiIsInstalled) - ui->rsync->setEnabled(mode==Copy); - if(forcedMode) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("Mode forced previously")); - QMessageBox::critical(NULL,facilityEngine->translateText("Internal error"),tr("The mode have been forced previously, it's internal error, please report it")); - return; - } - if(mode==Copy) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to copy")); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("Force mode to move")); - this->mode=mode; - forcedMode=true; - emit signal_forceMode(mode); -} - -void copyEngine::exportTransferList() -{ - QString fileName = QFileDialog::getSaveFileName(NULL,facilityEngine->translateText("Save transfer list"),"transfer-list.lst",facilityEngine->translateText("Transfer list")+" (*.lst)"); - if(fileName.isEmpty()) - return; - emit signal_exportTransferList(fileName); -} - -void copyEngine::importTransferList() -{ - QString fileName = QFileDialog::getOpenFileName(NULL,facilityEngine->translateText("Open transfer list"),"transfer-list.lst",facilityEngine->translateText("Transfer list")+" (*.lst)"); - if(fileName.isEmpty()) - return; - emit signal_importTransferList(fileName); -} - -void copyEngine::warningTransferList(const QString &warning) -{ - QMessageBox::warning(interface,facilityEngine->translateText("Error"),warning); -} - -void copyEngine::errorTransferList(const QString &error) -{ - QMessageBox::critical(interface,facilityEngine->translateText("Error"),error); -} - -bool copyEngine::setSpeedLimitation(const qint64 &speedLimitation) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"maxSpeed: "+QString::number(speedLimitation)); - maxSpeed=speedLimitation; - return listThread->setSpeedLimitation(speedLimitation); -} - -void copyEngine::setCollisionAction(const QString &action) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"action: "+action); - if(action=="skip") - alwaysDoThisActionForFileExists=FileExists_Skip; - else if(action=="overwrite") - alwaysDoThisActionForFileExists=FileExists_Overwrite; - else if(action=="overwriteIfNewer") - alwaysDoThisActionForFileExists=FileExists_OverwriteIfNewer; - else if(action=="overwriteIfNotSameModificationDate") - alwaysDoThisActionForFileExists=FileExists_OverwriteIfNotSameModificationDate; - else if(action=="rename") - alwaysDoThisActionForFileExists=FileExists_Rename; - else - alwaysDoThisActionForFileExists=FileExists_NotSet; - emit signal_setCollisionAction(alwaysDoThisActionForFileExists); -} - -void copyEngine::setErrorAction(const QString &action) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"action: "+action); - if(action=="skip") - alwaysDoThisActionForFileError=FileError_Skip; - else if(action=="putToEndOfTheList") - alwaysDoThisActionForFileError=FileError_PutToEndOfTheList; - else - alwaysDoThisActionForFileError=FileError_NotSet; -} - -void copyEngine::setRightTransfer(const bool doRightTransfer) -{ - this->doRightTransfer=doRightTransfer; - if(uiIsInstalled) - ui->doRightTransfer->setChecked(doRightTransfer); - listThread->setRightTransfer(doRightTransfer); -} - -//set keep date -void copyEngine::setKeepDate(const bool keepDate) -{ - this->keepDate=keepDate; - if(uiIsInstalled) - ui->keepDate->setChecked(keepDate); - listThread->setKeepDate(keepDate); -} - -//set block size in KB -void copyEngine::setBlockSize(const int blockSize) -{ - this->blockSize=blockSize; - if(uiIsInstalled) - ui->blockSize->setValue(blockSize); - listThread->setBlockSize(blockSize); -} - -//set auto start -void copyEngine::setAutoStart(const bool autoStart) -{ - this->autoStart=autoStart; - if(uiIsInstalled) - ui->autoStart->setChecked(autoStart); - listThread->setAutoStart(autoStart); -} - -/// \brief set rsync -void copyEngine::setRsync(const bool rsync) -{ - this->rsync=rsync; - if(uiIsInstalled) - { - ui->rsync->setChecked(rsync); - ui->rsync->setEnabled(forcedMode && mode==Copy); - ui->label_rsync->setEnabled(forcedMode && mode==Copy); - } - listThread->setRsync(rsync); -} - -//set check destination folder -void copyEngine::setCheckDestinationFolderExists(const bool checkDestinationFolderExists) -{ - this->checkDestinationFolderExists=checkDestinationFolderExists; - if(uiIsInstalled) - ui->checkBoxDestinationFolderExists->setChecked(checkDestinationFolderExists); - listThread->setCheckDestinationFolderExists(checkDestinationFolderExists); -} - -//reset widget -void copyEngine::resetTempWidget() -{ - tempWidget=NULL; -} - -void copyEngine::on_comboBoxFolderColision_currentIndexChanged(int index) -{ - switch(index) - { - case 0: - setComboBoxFolderColision(FolderExists_NotSet,false); - break; - case 1: - setComboBoxFolderColision(FolderExists_Merge,false); - break; - case 2: - setComboBoxFolderColision(FolderExists_Skip,false); - break; - case 3: - setComboBoxFolderColision(FolderExists_Rename,false); - break; - } -} - -void copyEngine::on_comboBoxFolderError_currentIndexChanged(int index) -{ - switch(index) - { - case 0: - setComboBoxFolderError(FileError_NotSet,false); - break; - case 1: - setComboBoxFolderError(FileError_Skip,false); - break; - } -} - -//set the translate -void copyEngine::newLanguageLoaded() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, retranslate the widget options"); - if(tempWidget!=NULL) - ui->retranslateUi(tempWidget); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"ui not loaded!"); -} - -void copyEngine::setComboBoxFolderColision(FolderExistsAction action,bool changeComboBox) -{ - alwaysDoThisActionForFolderExists=action; - emit signal_setFolderColision(alwaysDoThisActionForFolderExists); - if(!changeComboBox || !uiIsInstalled) - return; - switch(action) - { - case FolderExists_Merge: - ui->comboBoxFolderColision->setCurrentIndex(1); - break; - case FolderExists_Skip: - ui->comboBoxFolderColision->setCurrentIndex(2); - break; - case FolderExists_Rename: - ui->comboBoxFolderColision->setCurrentIndex(3); - break; - default: - ui->comboBoxFolderColision->setCurrentIndex(0); - break; - } -} - -void copyEngine::setComboBoxFolderError(FileErrorAction action,bool changeComboBox) -{ - alwaysDoThisActionForFileError=action; - if(!changeComboBox || !uiIsInstalled) - return; - switch(action) - { - case FileError_Skip: - ui->comboBoxFolderError->setCurrentIndex(1); - break; - default: - ui->comboBoxFolderError->setCurrentIndex(0); - break; - } -} - -void copyEngine::doChecksum_toggled(bool doChecksum) -{ - listThread->set_doChecksum(doChecksum); -} - -void copyEngine::checksumOnlyOnError_toggled(bool checksumOnlyOnError) -{ - listThread->set_checksumOnlyOnError(checksumOnlyOnError); -} - -void copyEngine::checksumIgnoreIfImpossible_toggled(bool checksumIgnoreIfImpossible) -{ - listThread->set_checksumIgnoreIfImpossible(checksumIgnoreIfImpossible); -} - -void copyEngine::osBuffer_toggled(bool osBuffer) -{ - listThread->set_osBuffer(osBuffer); - ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked()); -} - -void copyEngine::osBufferLimited_toggled(bool osBufferLimited) -{ - listThread->set_osBufferLimited(osBufferLimited); - ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked()); -} - -void copyEngine::osBufferLimit_editingFinished() -{ - emit send_osBufferLimit(ui->osBufferLimit->value()); -} - -void copyEngine::showFilterDialog() -{ - if(filters!=NULL) - filters->exec(); -} - -void copyEngine::sendNewFilters() -{ - if(filters!=NULL) - emit send_setFilters(filters->getInclude(),filters->getExclude()); -} - -void copyEngine::sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"new filter"); - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; - emit send_sendNewRenamingRules(firstRenamingRule,otherRenamingRule); -} - -void copyEngine::showRenamingRules() -{ - if(renamingRules==NULL) - { - QMessageBox::critical(NULL,tr("Options error"),tr("Options engine is not loaded, can't access to the filters")); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"options not loaded"); - return; - } - renamingRules->exec(); -} - -void copyEngine::get_realBytesTransfered(quint64 realBytesTransfered) -{ - size_for_speed=realBytesTransfered; -} - -void copyEngine::newActionInProgess(EngineActionInProgress action) -{ - if(action==Idle) - { - timerProgression.stop(); - timerActionDone.stop(); - } - else - { - timerProgression.start(); - timerActionDone.start(); - } -} diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine.h b/plugins-alternative/CopyEngine/Rsync/copyEngine.h deleted file mode 100755 index 5afa8b2..0000000 --- a/plugins-alternative/CopyEngine/Rsync/copyEngine.h +++ /dev/null @@ -1,362 +0,0 @@ -/** \file copyEngine.h -\brief Define the copy engine -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QObject> -#include <QList> -#include <QStringList> -#include <QFileInfo> -#include <QFile> -#include <QFileDialog> -#include <QMessageBox> - -#include "../../../interface/PluginInterface_CopyEngine.h" -#include "fileErrorDialog.h" -#include "fileExistsDialog.h" -#include "folderExistsDialog.h" -#include "fileIsSameDialog.h" -#include "ui_options.h" -#include "Environment.h" -#include "ListThread.h" -#include "Filters.h" -#include "RenamingRules.h" - -#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW -#include "debugDialog.h" -#include <QTimer> -#endif - -#ifndef COPY_ENGINE_H -#define COPY_ENGINE_H - -namespace Ui { - class options; -} - -/// \brief the implementation of copy engine plugin, manage directly few stuff, else pass to ListThread class. -class copyEngine : public PluginInterface_CopyEngine -{ - Q_OBJECT -public: - copyEngine(FacilityInterface * facilityEngine); - ~copyEngine(); - void connectTheSignalsSlots(); -private: - ListThread *listThread; - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - debugDialog debugDialogWindow; - #endif - QWidget * tempWidget; - Ui::options * ui; - bool uiIsInstalled; - QWidget * interface; - Filters * filters; - RenamingRules * renamingRules; - FacilityInterface * facilityEngine; - int maxSpeed; - bool doRightTransfer; - bool keepDate; - int blockSize; - bool autoStart; - bool rsync; - bool checkDestinationFolderExists; - FileExistsAction alwaysDoThisActionForFileExists; - FileErrorAction alwaysDoThisActionForFileError; - FileErrorAction alwaysDoThisActionForFolderError; - FolderExistsAction alwaysDoThisActionForFolderExists; - bool dialogIsOpen; - volatile bool stopIt; - /// \brief error queue - struct errorQueueItem - { - TransferThread * transfer; ///< NULL if send by scan thread - scanFileOrFolder * scan; ///< NULL if send by transfer thread - bool mkPath; - bool rmPath; - QFileInfo inode; - QString errorString; - }; - QList<errorQueueItem> errorQueue; - /// \brief already exists queue - struct alreadyExistsQueueItem - { - TransferThread * transfer; ///< NULL if send by scan thread - scanFileOrFolder * scan; ///< NULL if send by transfer thread - QFileInfo source; - QFileInfo destination; - bool isSame; - }; - QList<alreadyExistsQueueItem> alreadyExistsQueue; - //temp variable - int error_index,loop_size; - FileErrorAction tempFileErrorAction; - FolderExistsAction tempFolderExistsAction; - FileExistsAction tempFileExistsAction; - quint64 size_for_speed;//because direct access to list thread into the main thread can't be do - CopyMode mode; - bool forcedMode; - - bool doChecksum; - bool checksumIgnoreIfImpossible; - bool checksumOnlyOnError; - bool osBuffer; - bool osBufferLimited; - unsigned int osBufferLimit; - QStringList includeStrings,includeOptions,excludeStrings,excludeOptions; - QString firstRenamingRule; - QString otherRenamingRule; - - //send action done timer - QTimer timerActionDone; - //send progression timer - QTimer timerProgression; -private slots: - #ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - void updateTheDebugInfo(QStringList,QStringList,int); - #endif - //dialog message - /// \note Can be call without queue because all call will be serialized - void fileAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,TransferThread * thread,bool isCalledByShowOneNewDialog=false); - /// \note Can be call without queue because all call will be serialized - void errorOnFile(QFileInfo fileInfo,QString errorString,TransferThread * thread,bool isCalledByShowOneNewDialog=false); - /// \note Can be call without queue because all call will be serialized - void folderAlreadyExists(QFileInfo source,QFileInfo destination,bool isSame,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog=false); - /// \note Can be call without queue because all call will be serialized - void errorOnFolder(QFileInfo fileInfo,QString errorString,scanFileOrFolder * thread,bool isCalledByShowOneNewDialog=false); - //mkpath event - void mkPathErrorOnFolder(QFileInfo,QString,bool isCalledByShowOneNewDialog=false); - //rmpath event - void rmPathErrorOnFolder(QFileInfo,QString,bool isCalledByShowOneNewDialog=false); - //show one new dialog if needed - void showOneNewDialog(); - void sendNewFilters(); - - void doChecksum_toggled(bool); - void checksumOnlyOnError_toggled(bool); - void checksumIgnoreIfImpossible_toggled(bool); - void osBuffer_toggled(bool); - void osBufferLimited_toggled(bool); - void osBufferLimit_editingFinished(); - void showFilterDialog(); - void sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule); - void showRenamingRules(); - void get_realBytesTransfered(quint64 realBytesTransfered); - void newActionInProgess(EngineActionInProgress); -public: - /** \brief to send the options panel - * \return return false if have not the options - * \param tempWidget the widget to generate on it the options */ - bool getOptionsEngine(QWidget * tempWidget); - /** \brief to have interface widget to do modal dialog - * \param interface to have the widget of the interface, useful for modal dialog */ - void setInterfacePointer(QWidget * interface); - //return empty if multiple - /** \brief compare the current sources of the copy, with the passed arguments - * \param sources the sources list to compares with the current sources list - * \return true if have same sources, else false (or empty) */ - bool haveSameSource(const QStringList &sources); - /** \brief compare the current destination of the copy, with the passed arguments - * \param destination the destination to compares with the current destination - * \return true if have same destination, else false (or empty) */ - bool haveSameDestination(const QString &destination); - //external soft like file browser have send copy/move list to do - /** \brief send copy without destination, ask the destination - * \param sources the sources list to copy - * \return true if the copy have been accepted */ - bool newCopy(const QStringList &sources); - /** \brief send copy with destination - * \param sources the sources list to copy - * \param destination the destination to copy - * \return true if the copy have been accepted */ - bool newCopy(const QStringList &sources,const QString &destination); - /** \brief send move without destination, ask the destination - * \param sources the sources list to move - * \return true if the move have been accepted */ - bool newMove(const QStringList &sources); - /** \brief send move without destination, ask the destination - * \param sources the sources list to move - * \param destination the destination to move - * \return true if the move have been accepted */ - bool newMove(const QStringList &sources,const QString &destination); - /** \brief send the new transfer list - * \param file the transfer list */ - void newTransferList(const QString &file); - - /** \brief to get byte read, use by Ultracopier for the speed calculation - * real size transfered to right speed calculation */ - quint64 realByteTransfered(); - //speed limitation - /** \brief get the speed limitation - * < -1 if not able, 0 if disabled */ - qint64 getSpeedLimitation(); - //get collision action - /** \brief get the collision action list */ - QList<QPair<QString,QString> > getCollisionAction(); - /** \brief get the collision error list */ - QList<QPair<QString,QString> > getErrorAction(); - - /** \brief to set drives detected - * specific to this copy engine */ - void setDrive(const QStringList &drives); - - /** \brief to sync the transfer list - * Used when the interface is changed, useful to minimize the memory size */ - void syncTransferList(); - - void set_doChecksum(bool doChecksum); - void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible); - void set_checksumOnlyOnError(bool checksumOnlyOnError); - void set_osBuffer(bool osBuffer); - void set_osBufferLimited(bool osBufferLimited); - void set_osBufferLimit(unsigned int osBufferLimit); - void set_setFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions); - void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule); -public slots: - //user ask ask to add folder (add it with interface ask source/destination) - /** \brief add folder called on the interface - * Used by manual adding */ - bool userAddFolder(const CopyMode &mode); - /** \brief add file called on the interface - * Used by manual adding */ - bool userAddFile(const CopyMode &mode); - //action on the copy - /// \brief put the transfer in pause - void pause(); - /// \brief resume the transfer - void resume(); - /** \brief skip one transfer entry - * \param id id of the file to remove */ - void skip(const quint64 &id); - /// \brief cancel all the transfer - void cancel(); - //edit the transfer list - /** \brief remove the selected item - * \param ids ids is the id list of the selected items */ - void removeItems(const QList<int> &ids); - /** \brief move on top of the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsOnTop(const QList<int> &ids); - /** \brief move up the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsUp(const QList<int> &ids); - /** \brief move down the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsDown(const QList<int> &ids); - /** \brief move on bottom of the list the selected item - * \param ids ids is the id list of the selected items */ - void moveItemsOnBottom(const QList<int> &ids); - - /** \brief give the forced mode, to export/import transfer list */ - void forceMode(const CopyMode &mode); - /// \brief export the transfer list into a file - void exportTransferList(); - /// \brief import the transfer list into a file - void importTransferList(); - - /** \brief to set the speed limitation - * -1 if not able, 0 if disabled */ - bool setSpeedLimitation(const qint64 &speedLimitation); - //action - /// \brief to set the collision action - void setCollisionAction(const QString &action); - /// \brief to set the error action - void setErrorAction(const QString &action); - - // specific to this copy engine - - /// \brief set if the rights shoul be keep - void setRightTransfer(const bool doRightTransfer); - /// \brief set keep date - void setKeepDate(const bool keepDate); - /// \brief set block size in KB - void setBlockSize(const int blockSize); - /// \brief set auto start - void setAutoStart(const bool autoStart); - /// \brief set rsync - void setRsync(const bool rsync); - /// \brief set if need check if the destination folder exists - void setCheckDestinationFolderExists(const bool checkDestinationFolderExists); - /// \brief reset widget - void resetTempWidget(); - //autoconnect - void on_comboBoxFolderColision_currentIndexChanged(int index); - void on_comboBoxFolderError_currentIndexChanged(int index); - /// \brief need retranslate the insterface - void newLanguageLoaded(); -private slots: - void setComboBoxFolderColision(FolderExistsAction action,bool changeComboBox=true); - void setComboBoxFolderError(FileErrorAction action,bool changeComboBox=true); - void warningTransferList(const QString &warning); - void errorTransferList(const QString &error); -signals: - //send information about the copy - void actionInProgess(EngineActionInProgress); //should update interface information on this event - - void newActionOnList(const QList<returnActionOnCopyList> &);///very important, need be temporized to group the modification to do and not flood the interface - void syncReady(); - - /** \brief to get the progression for a specific file - * \param id the id of the transfer, id send during population the transfer list - * first = current transfered byte, second = byte to transfer */ - void pushFileProgression(const QList<ProgressionItem> &progressionList); - //get information about the copy - /** \brief to get the general progression - * first = current transfered byte, second = byte to transfer */ - void pushGeneralProgression(const quint64 &,const quint64 &); - - void newFolderListing(const QString &path); - void newCollisionAction(const QString &action); - void newErrorAction(const QString &action); - void isInPause(bool); - - //action on the copy - void signal_pause(); - void signal_resume(); - void signal_skip(const quint64 &id); - - //edit the transfer list - void signal_removeItems(const QList<int> &ids); - void signal_moveItemsOnTop(const QList<int> &ids); - void signal_moveItemsUp(const QList<int> &ids); - void signal_moveItemsDown(const QList<int> &ids); - void signal_moveItemsOnBottom(const QList<int> &ids); - - void signal_forceMode(const CopyMode &mode); - void signal_exportTransferList(const QString &fileName); - void signal_importTransferList(const QString &fileName); - - //action - void signal_setCollisionAction(FileExistsAction alwaysDoThisActionForFileExists); - void signal_setComboBoxFolderColision(FolderExistsAction action); - void signal_setFolderColision(FolderExistsAction action); - - //when the cancel is clicked on copy engine dialog - void cancelAll(); - - //internal cancel - void tryCancel(); - - //when can be deleted - void canBeDeleted(); - - //send error occurred - void error(const QString &path,const quint64 &size,const QDateTime &mtime,const QString &error); - //for the extra logging - void rmPath(const QString &path); - void mkPath(const QString &path); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif - - //other signals - void queryOneNewDialog(); - - void send_osBufferLimit(const unsigned int &osBufferLimit); - void send_setFilters(const QList<Filters_rules> &include,const QList<Filters_rules> &exclude); - void send_sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule); -}; - -#endif // COPY_ENGINE_H diff --git a/plugins-alternative/CopyEngine/Rsync/copyEngine.pro b/plugins-alternative/CopyEngine/Rsync/copyEngine.pro deleted file mode 100644 index 13ab523..0000000 --- a/plugins-alternative/CopyEngine/Rsync/copyEngine.pro +++ /dev/null @@ -1,82 +0,0 @@ -TEMPLATE = lib -CONFIG += plugin -HEADERS = copyEngine.h \ - StructEnumDefinition.h \ - scanFileOrFolder.h \ - fileErrorDialog.h \ - fileExistsDialog.h \ - fileIsSameDialog.h \ - factory.h \ - StructEnumDefinition_CopyEngine.h \ - DebugEngineMacro.h \ - Variable.h \ - debugDialog.h \ - TransferThread.h \ - ReadThread.h \ - WriteThread.h \ - RmPath.h \ - MkPath.h \ - folderExistsDialog.h \ - AvancedQFile.h \ - ListThread.h \ - ../../../interface/PluginInterface_CopyEngine.h \ - ../../../interface/OptionInterface.h \ - ../../../interface/FacilityInterface.h \ - Filters.h \ - FilterRules.h \ - RenamingRules.h -SOURCES = copyEngine.cpp \ - scanFileOrFolder.cpp \ - fileErrorDialog.cpp \ - fileExistsDialog.cpp \ - fileIsSameDialog.cpp \ - factory.cpp \ - debugDialog.cpp \ - TransferThread.cpp \ - ReadThread.cpp \ - WriteThread.cpp \ - RmPath.cpp \ - MkPath.cpp \ - folderExistsDialog.cpp \ - AvancedQFile.cpp \ - copyEngine-collision-and-error.cpp \ - ListThread.cpp \ - Filters.cpp \ - FilterRules.cpp \ - RenamingRules.cpp \ - ListThread_InodeAction.cpp -TARGET = $$qtLibraryTarget(copyEngine) -TRANSLATIONS += Languages/fr/translation.ts \ - Languages/ar/translation.ts \ - Languages/zh/translation.ts \ - Languages/es/translation.ts \ - Languages/de/translation.ts \ - Languages/el/translation.ts \ - Languages/it/translation.ts \ - Languages/ja/translation.ts \ - Languages/id/translation.ts \ - Languages/pl/translation.ts \ - Languages/ru/translation.ts \ - Languages/tr/translation.ts \ - Languages/th/translation.ts \ - Languages/hi/translation.ts \ - Languages/nl/translation.ts \ - Languages/no/translation.ts \ - Languages/pt/translation.ts \ - Languages/ko/translation.ts - -FORMS += \ - options.ui \ - fileErrorDialog.ui \ - fileExistsDialog.ui \ - fileIsSameDialog.ui \ - debugDialog.ui \ - folderExistsDialog.ui \ - Filters.ui \ - FilterRules.ui \ - RenamingRules.ui - -OTHER_FILES += informations.xml - -RESOURCES += \ - resources.qrc diff --git a/plugins-alternative/CopyEngine/Rsync/debugDialog.cpp b/plugins-alternative/CopyEngine/Rsync/debugDialog.cpp deleted file mode 100644 index a03aec0..0000000 --- a/plugins-alternative/CopyEngine/Rsync/debugDialog.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/** \file debugDialog.cpp -\brief Define the dialog to have debug information -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include "debugDialog.h" -#include "ui_debugDialog.h" - -#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW - -debugDialog::debugDialog(QWidget *parent) : - QWidget(parent), - ui(new Ui::debugDialog) -{ - ui->setupUi(this); -} - -debugDialog::~debugDialog() -{ - delete ui; -} - -void debugDialog::setTransferList(const QStringList &list) -{ - if(list.size()==ui->tranferList->count()) - { - int index=0; - while(index<list.size()) - { - ui->tranferList->item(index)->setText(list.at(index)); - index++; - } - } - else - { - ui->tranferList->clear(); - ui->tranferList->addItems(list); - } -} - -void debugDialog::setActiveTransfer(int activeTransfer) -{ - ui->spinBoxActiveTransfer->setValue(activeTransfer); -} - -void debugDialog::setInodeUsage(int inodeUsage) -{ - ui->spinBoxNumberOfInode->setValue(inodeUsage); -} - -void debugDialog::setTransferThreadList(const QStringList &list) -{ - if(list.size()==ui->transferThreadList->count()) - { - int index=0; - while(index<list.size()) - { - ui->transferThreadList->item(index)->setText(list.at(index)); - index++; - } - } - else - { - ui->transferThreadList->clear(); - ui->transferThreadList->addItems(list); - } -} - -#endif diff --git a/plugins-alternative/CopyEngine/Rsync/debugDialog.h b/plugins-alternative/CopyEngine/Rsync/debugDialog.h deleted file mode 100644 index 3d48857..0000000 --- a/plugins-alternative/CopyEngine/Rsync/debugDialog.h +++ /dev/null @@ -1,40 +0,0 @@ -/** \file debugDialog.h -\brief Define the dialog to have debug information -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#ifndef DEBUGDAILOG_H -#define DEBUGDAILOG_H - -#include "Environment.h" - -#ifdef ULTRACOPIER_PLUGIN_DEBUG_WINDOW -#include <QWidget> - -namespace Ui { - class debugDialog; -} - -/// \brief class to the dialog to have debug information -class debugDialog : public QWidget -{ - Q_OBJECT -public: - explicit debugDialog(QWidget *parent = 0); - ~debugDialog(); - /// \brief to set the transfer list, limited in result to not slow down the application - void setTransferList(const QStringList &list); - /// \brief show the transfer thread, it show be a thread pool in normal time - void setTransferThreadList(const QStringList &list); - /// \brief show how many transfer is active - void setActiveTransfer(int activeTransfer); - /// \brief show many many inode is manipulated - void setInodeUsage(int inodeUsage); -private: - Ui::debugDialog *ui; -}; - -#endif // ULTRACOPIER_PLUGIN_DEBUG_WINDOW - -#endif // DEBUGDAILOG_H diff --git a/plugins-alternative/CopyEngine/Rsync/debugDialog.ui b/plugins-alternative/CopyEngine/Rsync/debugDialog.ui deleted file mode 100644 index 0df03be..0000000 --- a/plugins-alternative/CopyEngine/Rsync/debugDialog.ui +++ /dev/null @@ -1,100 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>debugDialog</class> - <widget class="QWidget" name="debugDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>665</width> - <height>392</height> - </rect> - </property> - <property name="windowTitle"> - <string notr="true">Monitor</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string notr="true">Transfer thread</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QListWidget" name="transferThreadList"> - <property name="uniformItemSizes"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_2"> - <property name="title"> - <string notr="true">Transfer list</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QListWidget" name="tranferList"> - <property name="uniformItemSizes"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QGroupBox" name="groupBox_3"> - <property name="title"> - <string notr="true">Variables</string> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string notr="true">Active transfer:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QSpinBox" name="spinBoxActiveTransfer"> - <property name="readOnly"> - <bool>true</bool> - </property> - <property name="maximum"> - <number>9999</number> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string notr="true">Number of inode manipuled:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QSpinBox" name="spinBoxNumberOfInode"> - <property name="readOnly"> - <bool>true</bool> - </property> - <property name="maximum"> - <number>9999</number> - </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/documentation.dox b/plugins-alternative/CopyEngine/Rsync/documentation.dox deleted file mode 100755 index 2ff6edd..0000000 --- a/plugins-alternative/CopyEngine/Rsync/documentation.dox +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/ - -/* - This file contains NO source code, just some documentation for doxygen to - parse. -*/ - -/*! - \mainpage Copy engine 0.3 - - \section mainpage_overview Overview - - The rsync copy engine for Ultracopier 0.3. Support file/folder, copy/move, ...\n - Thanks to this engine, Ultracopier is transformed into GUI + rsync. - More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier 0.3 project. - - \section mainpage_platforms Platforms - - This plugin might be usable in all environments where you find Qt 4, but Gcc is requiered for some part.\n - This plugin requires Qt 4.5.x or newer. Tested on Qt 4.7. Due to optimization Qt 4.8 usage will be better.\n - To be compatible with the official Ultracopier plugins, you need compil it with Gcc, Qt4.8, and same env as Ultracopier have been compiled, see the documentation. - - \section mainpage_downloads Downloads - - You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ... - - \section mainpage_algorithm Algorithm - - Like say previously you will have more informations on the wiki.\n - Then file transfer is done via pipe mecamism system:\n - <ul> - <li>push at no blocking into table up to the table is full, after is blocked up to one entry is free</li> - <li>Other thread read the table up to have no more data, then is blocked</li> - </ul> - The transfer thread do listing of the folder, removing folder, make folder is one thread for each.\n - The transfer list, have thread pool to do the inode operation (open, close, set date, ...). Do all inode operation in parallele, but transfer the data as sequential. - - \section license GPL Version 3 - The code source is under GPL3. The image is extacted from Oxygen icon pack of KDE4. - -*/ - diff --git a/plugins-alternative/CopyEngine/Rsync/factory.cpp b/plugins-alternative/CopyEngine/Rsync/factory.cpp deleted file mode 100644 index 7ed27d4..0000000 --- a/plugins-alternative/CopyEngine/Rsync/factory.cpp +++ /dev/null @@ -1,420 +0,0 @@ -/** \file factory.cpp -\brief Define the factory to create new instance -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QtCore> -#include <QFileDialog> - -#include "factory.h" - -Factory::Factory() : - ui(new Ui::options()) -{ - tempWidget=new QWidget(); - ui->setupUi(tempWidget); - errorFound=false; - optionsEngine=NULL; - filters=new Filters(tempWidget); - renamingRules=new RenamingRules(tempWidget); - #if defined (Q_OS_WIN32) - QFileInfoList temp=QDir::drives(); - for (int i = 0; i < temp.size(); ++i) { - mountSysPoint<<temp.at(i).filePath(); - } - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"mountSysPoint: "+mountSysPoint.join(";")); - #elif defined (Q_OS_LINUX) - connect(&mount,SIGNAL(error(QProcess::ProcessError)), this,SLOT(error(QProcess::ProcessError))); - connect(&mount,SIGNAL(finished(int,QProcess::ExitStatus)), this,SLOT(finished(int,QProcess::ExitStatus))); - connect(&mount,SIGNAL(readyReadStandardOutput()), this,SLOT(readyReadStandardOutput())); - connect(&mount,SIGNAL(readyReadStandardError()), this,SLOT(readyReadStandardError())); - mount.start("mount"); - #endif - connect(ui->doRightTransfer, SIGNAL(toggled(bool)), this,SLOT(setDoRightTransfer(bool))); - connect(ui->keepDate, SIGNAL(toggled(bool)), this,SLOT(setKeepDate(bool))); - connect(ui->blockSize, SIGNAL(valueChanged(int)), this,SLOT(setBlockSize(int))); - connect(ui->autoStart, SIGNAL(toggled(bool)), this,SLOT(setAutoStart(bool))); - connect(ui->rsync, SIGNAL(toggled(bool)), this,SLOT(setRsync(bool))); - connect(ui->doChecksum, SIGNAL(toggled(bool)), this,SLOT(doChecksum_toggled(bool))); - connect(ui->checksumIgnoreIfImpossible, SIGNAL(toggled(bool)), this,SLOT(checksumIgnoreIfImpossible_toggled(bool))); - connect(ui->checksumOnlyOnError, SIGNAL(toggled(bool)), this,SLOT(checksumOnlyOnError_toggled(bool))); - connect(ui->osBuffer, SIGNAL(toggled(bool)), this,SLOT(osBuffer_toggled(bool))); - connect(ui->osBufferLimited, SIGNAL(toggled(bool)), this,SLOT(osBufferLimited_toggled(bool))); - connect(ui->osBufferLimit, SIGNAL(editingFinished()), this,SLOT(osBufferLimit_editingFinished())); - - connect(filters,SIGNAL(sendNewFilters(QStringList,QStringList,QStringList,QStringList)),this,SLOT(sendNewFilters(QStringList,QStringList,QStringList,QStringList))); - connect(ui->filters,SIGNAL(clicked()),this,SLOT(showFilterDialog())); - connect(renamingRules,SIGNAL(sendNewRenamingRules(QString,QString)),this,SLOT(sendNewRenamingRules(QString,QString))); - connect(ui->renamingRules,SIGNAL(clicked()),this,SLOT(showRenamingRules())); - - ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked()); -} - -Factory::~Factory() -{ - delete renamingRules; - delete filters; - delete ui; -} - -PluginInterface_CopyEngine * Factory::getInstance() -{ - copyEngine *realObject=new copyEngine(facilityEngine); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - connect(realObject,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int))); - #endif - realObject->connectTheSignalsSlots(); - realObject->setDrive(mountSysPoint); - PluginInterface_CopyEngine * newTransferEngine=realObject; - connect(this,SIGNAL(reloadLanguage()),newTransferEngine,SLOT(newLanguageLoaded())); - realObject->setRightTransfer( optionsEngine->getOptionValue("doRightTransfer").toBool()); - realObject->setKeepDate( optionsEngine->getOptionValue("keepDate").toBool()); - realObject->setBlockSize( optionsEngine->getOptionValue("blockSize").toInt()); - realObject->setAutoStart( optionsEngine->getOptionValue("autoStart").toBool()); - realObject->setRsync( optionsEngine->getOptionValue("rsync").toBool()); - realObject->on_comboBoxFolderColision_currentIndexChanged(ui->comboBoxFolderColision->currentIndex()); - realObject->on_comboBoxFolderError_currentIndexChanged(ui->comboBoxFolderError->currentIndex()); - realObject->setCheckDestinationFolderExists( optionsEngine->getOptionValue("checkDestinationFolder").toBool()); - - realObject->set_doChecksum(optionsEngine->getOptionValue("doChecksum").toBool()); - realObject->set_checksumIgnoreIfImpossible(optionsEngine->getOptionValue("checksumIgnoreIfImpossible").toBool()); - realObject->set_checksumOnlyOnError(optionsEngine->getOptionValue("checksumOnlyOnError").toBool()); - realObject->set_osBuffer(optionsEngine->getOptionValue("osBuffer").toBool()); - realObject->set_osBufferLimited(optionsEngine->getOptionValue("osBufferLimited").toBool()); - realObject->set_osBufferLimit(optionsEngine->getOptionValue("osBufferLimit").toUInt()); - realObject->set_setFilters(optionsEngine->getOptionValue("includeStrings").toStringList(), - optionsEngine->getOptionValue("includeOptions").toStringList(), - optionsEngine->getOptionValue("excludeStrings").toStringList(), - optionsEngine->getOptionValue("excludeOptions").toStringList() - ); - realObject->setRenamingRules(optionsEngine->getOptionValue("firstRenamingRule").toString(),optionsEngine->getOptionValue("otherRenamingRule").toString()); - return newTransferEngine; -} - -void Factory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath:"+pluginPath); - this->facilityEngine=facilityInterface; - Q_UNUSED(portableVersion); - #ifndef ULTRACOPIER_PLUGIN_DEBUG - Q_UNUSED(writePath); - Q_UNUSED(pluginPath); - #endif - #if ! defined (Q_CC_GNU) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"Unable to change date time of files, only gcc is supported"); - #endif - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,COMPILERINFO); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX BUFFER BLOCK: "+QString::number(ULTRACOPIER_PLUGIN_MAXBUFFERBLOCK)); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MIN TIMER INTERVAL: "+QString::number(ULTRACOPIER_PLUGIN_MINTIMERINTERVAL)); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX TIMER INTERVAL: "+QString::number(ULTRACOPIER_PLUGIN_MAXTIMERINTERVAL)); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"NUM SEM SPEED MANAGEMENT: "+QString::number(ULTRACOPIER_PLUGIN_NUMSEMSPEEDMANAGEMENT)); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX PARALLEL INODE OPT: "+QString::number(ULTRACOPIER_PLUGIN_MAXPARALLELINODEOPT)); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"MAX PARALLEL TRANFER: "+QString::number(ULTRACOPIER_PLUGIN_MAXPARALLELTRANFER)); - #if defined (ULTRACOPIER_PLUGIN_CHECKLISTTYPE) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"CHECK LIST TYPE set"); - #else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"CHECK LIST TYPE not set"); - #endif - if(options!=NULL) - { - optionsEngine=options; - //load the options - QList<QPair<QString, QVariant> > KeysList; - KeysList.append(qMakePair(QString("doRightTransfer"),QVariant(true))); - KeysList.append(qMakePair(QString("keepDate"),QVariant(true))); - KeysList.append(qMakePair(QString("blockSize"),QVariant(1024)));//1024KB as default - KeysList.append(qMakePair(QString("autoStart"),QVariant(true))); - KeysList.append(qMakePair(QString("rsync"),QVariant(true))); - KeysList.append(qMakePair(QString("folderError"),QVariant(0))); - KeysList.append(qMakePair(QString("folderColision"),QVariant(0))); - KeysList.append(qMakePair(QString("checkDestinationFolder"),QVariant(true))); - KeysList.append(qMakePair(QString("includeStrings"),QVariant(QStringList()))); - KeysList.append(qMakePair(QString("includeOptions"),QVariant(QStringList()))); - KeysList.append(qMakePair(QString("excludeStrings"),QVariant(QStringList()))); - KeysList.append(qMakePair(QString("excludeOptions"),QVariant(QStringList()))); - KeysList.append(qMakePair(QString("doChecksum"),QVariant(true))); - KeysList.append(qMakePair(QString("checksumIgnoreIfImpossible"),QVariant(true))); - KeysList.append(qMakePair(QString("checksumOnlyOnError"),QVariant(true))); - KeysList.append(qMakePair(QString("osBuffer"),QVariant(true))); - KeysList.append(qMakePair(QString("firstRenamingRule"),QVariant(""))); - KeysList.append(qMakePair(QString("otherRenamingRule"),QVariant(""))); - #ifdef Q_OS_WIN32 - KeysList.append(qMakePair(QString("osBufferLimited"),QVariant(true))); - #else - KeysList.append(qMakePair(QString("osBufferLimited"),QVariant(false))); - #endif - KeysList.append(qMakePair(QString("osBufferLimit"),QVariant(512))); - optionsEngine->addOptionGroup(KeysList); - #if ! defined (Q_CC_GNU) - ui->keepDate->setEnabled(false); - ui->keepDate->setToolTip("Not supported with this compiler"); - #endif - ui->doRightTransfer->setChecked(optionsEngine->getOptionValue("doRightTransfer").toBool()); - ui->keepDate->setChecked(optionsEngine->getOptionValue("keepDate").toBool()); - ui->blockSize->setValue(optionsEngine->getOptionValue("blockSize").toUInt()); - ui->autoStart->setChecked(optionsEngine->getOptionValue("autoStart").toBool()); - ui->rsync->setChecked(optionsEngine->getOptionValue("rsync").toBool()); - ui->comboBoxFolderError->setCurrentIndex(optionsEngine->getOptionValue("folderError").toUInt()); - ui->comboBoxFolderColision->setCurrentIndex(optionsEngine->getOptionValue("folderColision").toUInt()); - ui->checkBoxDestinationFolderExists->setChecked(optionsEngine->getOptionValue("checkDestinationFolder").toBool()); - ui->doChecksum->setChecked(optionsEngine->getOptionValue("doChecksum").toBool()); - ui->checksumIgnoreIfImpossible->setChecked(optionsEngine->getOptionValue("checksumIgnoreIfImpossible").toBool()); - ui->checksumOnlyOnError->setChecked(optionsEngine->getOptionValue("checksumOnlyOnError").toBool()); - ui->osBuffer->setChecked(optionsEngine->getOptionValue("osBuffer").toBool()); - ui->osBufferLimited->setChecked(optionsEngine->getOptionValue("osBufferLimited").toBool()); - ui->osBufferLimit->setValue(optionsEngine->getOptionValue("osBufferLimit").toUInt()); - filters->setFilters(optionsEngine->getOptionValue("includeStrings").toStringList(), - optionsEngine->getOptionValue("includeOptions").toStringList(), - optionsEngine->getOptionValue("excludeStrings").toStringList(), - optionsEngine->getOptionValue("excludeOptions").toStringList() - ); - renamingRules->setRenamingRules(optionsEngine->getOptionValue("firstRenamingRule").toString(),optionsEngine->getOptionValue("otherRenamingRule").toString()); - } -} - -QStringList Factory::supportedProtocolsForTheSource() -{ - return QStringList() << "file"; -} - -QStringList Factory::supportedProtocolsForTheDestination() -{ - return QStringList() << "file"; -} - -CopyType Factory::getCopyType() -{ - return FileAndFolder; -} - -TransferListOperation Factory::getTransferListOperation() -{ - return TransferListOperation_ImportExport; -} - -bool Factory::canDoOnlyCopy() -{ - return false; -} - -void Factory::error(QProcess::ProcessError error) -{ - #ifndef ULTRACOPIER_PLUGIN_DEBUG - Q_UNUSED(error) - #endif - errorFound=true; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"have detected error: "+QString::number(error)); -} - -void Factory::finished(int exitCode, QProcess::ExitStatus exitStatus) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"exitCode: "+QString::number(exitCode)+", exitStatus: "+QString::number(exitStatus)); - #ifndef ULTRACOPIER_PLUGIN_DEBUG - Q_UNUSED(exitCode) - Q_UNUSED(exitStatus) - #endif - if(!StandardError.isEmpty()) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"have finished with text on error output: "+StandardError); - else if(errorFound) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"have finished with error and no text"); - { - QStringList tempList=StandardOutput.split(QRegExp("[\n\r]+")); - int index=0; - while(index<tempList.size()) - { - QString newString=tempList.at(index); - newString=newString.remove(QRegExp("^.* on ")); - newString=newString.remove(QRegExp(" type .*$")); - if(!newString.endsWith(QDir::separator())) - newString+=QDir::separator(); - mountSysPoint<<newString; - index++; - } - mountSysPoint.removeDuplicates(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"mountSysPoint: "+mountSysPoint.join(";")); - } -} - -void Factory::readyReadStandardError() -{ - StandardError+=mount.readAllStandardError(); -} - -void Factory::readyReadStandardOutput() -{ - StandardOutput+=mount.readAllStandardOutput(); -} - -void Factory::resetOptions() -{ -} - -QWidget * Factory::options() -{ - ui->autoStart->setChecked(optionsEngine->getOptionValue("autoStart").toBool()); - return tempWidget; -} - -void Factory::setDoRightTransfer(bool doRightTransfer) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("doRightTransfer",doRightTransfer); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::setKeepDate(bool keepDate) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("keepDate",keepDate); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::setBlockSize(int blockSize) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("blockSize",blockSize); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::setAutoStart(bool autoStart) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("autoStart",autoStart); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::setRsync(bool rsync) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("rsync",rsync); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::newLanguageLoaded() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, retranslate the widget options"); - ui->retranslateUi(tempWidget); - if(optionsEngine!=NULL) - { - filters->newLanguageLoaded(); - renamingRules->newLanguageLoaded(); - } - emit reloadLanguage(); -} - -Q_EXPORT_PLUGIN2(copyEngine, Factory); - -void Factory::doChecksum_toggled(bool doChecksum) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("doChecksum",doChecksum); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::checksumOnlyOnError_toggled(bool checksumOnlyOnError) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("checksumOnlyOnError",checksumOnlyOnError); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::osBuffer_toggled(bool osBuffer) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("osBuffer",osBuffer); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); - ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked()); -} - -void Factory::osBufferLimited_toggled(bool osBufferLimited) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("osBufferLimited",osBufferLimited); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); - ui->osBufferLimit->setEnabled(ui->osBuffer->isChecked() && ui->osBufferLimited->isChecked()); -} - -void Factory::osBufferLimit_editingFinished() -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the spinbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("osBufferLimit",ui->osBufferLimit->value()); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::showFilterDialog() -{ - if(optionsEngine==NULL) - { - QMessageBox::critical(NULL,tr("Options error"),tr("Options engine is not loaded, can't access to the filters")); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"options not loaded"); - return; - } - filters->exec(); -} - -void Factory::sendNewFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"new filter"); - if(optionsEngine!=NULL) - { - optionsEngine->setOptionValue("includeStrings",includeStrings); - optionsEngine->setOptionValue("includeOptions",includeOptions); - optionsEngine->setOptionValue("excludeStrings",excludeStrings); - optionsEngine->setOptionValue("excludeOptions",excludeOptions); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"new filter"); - if(optionsEngine!=NULL) - { - optionsEngine->setOptionValue("firstRenamingRule",firstRenamingRule); - optionsEngine->setOptionValue("otherRenamingRule",otherRenamingRule); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} - -void Factory::showRenamingRules() -{ - if(optionsEngine==NULL) - { - QMessageBox::critical(NULL,tr("Options error"),tr("Options engine is not loaded, can't access to the filters")); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"options not loaded"); - return; - } - renamingRules->exec(); -} - -void Factory::checksumIgnoreIfImpossible_toggled(bool checksumIgnoreIfImpossible) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"the checkbox have changed"); - if(optionsEngine!=NULL) - optionsEngine->setOptionValue("checksumIgnoreIfImpossible",checksumIgnoreIfImpossible); - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"internal error, crash prevented"); -} diff --git a/plugins-alternative/CopyEngine/Rsync/factory.h b/plugins-alternative/CopyEngine/Rsync/factory.h deleted file mode 100644 index 40c6d53..0000000 --- a/plugins-alternative/CopyEngine/Rsync/factory.h +++ /dev/null @@ -1,96 +0,0 @@ -/** \file factory.h -\brief Define the factory to create new instance -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QObject> -#include <QList> -#include <QStringList> -#include <QFileInfo> -#include <QProcess> - -#include "../../../interface/PluginInterface_CopyEngine.h" -#include "StructEnumDefinition.h" -#include "ui_options.h" -#include "copyEngine.h" -#include "Environment.h" -#include "Filters.h" -#include "RenamingRules.h" - -#ifndef FACTORY_H -#define FACTORY_H - -namespace Ui { - class options; -} - -/** \brief to generate copy engine instance */ -class Factory : public PluginInterface_CopyEngineFactory -{ - Q_OBJECT - Q_INTERFACES(PluginInterface_CopyEngineFactory) -public: - Factory(); - ~Factory(); - /// \brief to return the instance of the copy engine - PluginInterface_CopyEngine * getInstance(); - /// \brief set the resources, to store options, to have facilityInterface - void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion); - //get mode allowed - /// \brief define if can copy file, folder or both - CopyType getCopyType(); - /// \brief to return which kind of transfer list operation is supported - TransferListOperation getTransferListOperation(); - /// \brief define if can only copy, or copy and move - bool canDoOnlyCopy(); - /// \brief to get the supported protocols for the source - QStringList supportedProtocolsForTheSource(); - /// \brief to get the supported protocols for the destination - QStringList supportedProtocolsForTheDestination(); - /// \brief to get the options of the copy engine - QWidget * options(); -private: - Ui::options *ui; - QWidget* tempWidget; - OptionInterface * optionsEngine; - QStringList mountSysPoint; - QProcess mount; - QString StandardError; - QString StandardOutput; - bool errorFound; - FacilityInterface * facilityEngine; - Filters *filters; - RenamingRules *renamingRules; -private slots: - void error(QProcess::ProcessError error); - void finished(int exitCode, QProcess::ExitStatus exitStatus); - void readyReadStandardError(); - void readyReadStandardOutput(); - void setDoRightTransfer(bool doRightTransfer); - void setKeepDate(bool keepDate); - void setBlockSize(int blockSize); - void setAutoStart(bool autoStart); - void setRsync(bool rsync); - void showFilterDialog(); - void sendNewFilters(QStringList includeStrings,QStringList includeOptions,QStringList excludeStrings,QStringList excludeOptions); - void doChecksum_toggled(bool); - void checksumOnlyOnError_toggled(bool); - void osBuffer_toggled(bool); - void osBufferLimited_toggled(bool); - void osBufferLimit_editingFinished(); - void checksumIgnoreIfImpossible_toggled(bool); - void sendNewRenamingRules(QString firstRenamingRule,QString otherRenamingRule); - void showRenamingRules(); -public slots: - void resetOptions(); - void newLanguageLoaded(); -signals: - void reloadLanguage(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif -}; - -#endif // FACTORY_H diff --git a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp b/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp deleted file mode 100644 index 0d9fa9a..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "fileErrorDialog.h" -#include "ui_fileErrorDialog.h" - -fileErrorDialog::fileErrorDialog(QWidget *parent,QFileInfo fileInfo,QString errorString,bool havePutAtTheEndButton) : - QDialog(parent), - ui(new Ui::fileErrorDialog) -{ - ui->setupUi(this); - action=FileError_Cancel; - ui->label_error->setText(errorString); - ui->label_content_file_name->setText(fileInfo.fileName()); - if(fileInfo.exists()) - { - ui->label_content_size->setText(QString::number(fileInfo.size())); - QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1)); - if(maxTime<fileInfo.lastModified()) - { - ui->label_modified->setVisible(true); - ui->label_content_modified->setVisible(true); - ui->label_content_modified->setText(fileInfo.lastModified().toString()); - } - else - { - ui->label_modified->setVisible(false); - ui->label_content_modified->setVisible(false); - } - if(fileInfo.isDir()) - { - this->setWindowTitle(tr("Error on folder")); - ui->label_size->hide(); - ui->label_content_size->hide(); - ui->label_file_name->setText(tr("Folder name")); - } - } - else - { - ui->label_size->hide(); - ui->label_content_size->hide(); - ui->label_modified->hide(); - ui->label_content_modified->hide(); - } - if(!havePutAtTheEndButton) - ui->PutToBottom->hide(); -} - -fileErrorDialog::~fileErrorDialog() -{ - delete ui; -} - -void fileErrorDialog::changeEvent(QEvent *e) -{ - QWidget::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } -} - -void fileErrorDialog::on_PutToBottom_clicked() -{ - action=FileError_PutToEndOfTheList; - this->close(); -} - -void fileErrorDialog::on_Retry_clicked() -{ - action=FileError_Retry; - this->close(); -} - -void fileErrorDialog::on_Skip_clicked() -{ - action=FileError_Skip; - this->close(); -} - -void fileErrorDialog::on_Cancel_clicked() -{ - action=FileError_Cancel; - this->close(); -} - -bool fileErrorDialog::getAlways() -{ - return ui->checkBoxAlways->isChecked(); -} - -FileErrorAction fileErrorDialog::getAction() -{ - return action; -} diff --git a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h b/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h deleted file mode 100644 index b14fe87..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.h +++ /dev/null @@ -1,45 +0,0 @@ -/** \file fileErrorDialog.h -\brief Define the dialog error on the file -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QDialog> -#include <QWidget> -#include <QString> -#include <QDateTime> -#include <QFileInfo> -#include "Environment.h" - -#ifndef FILEERRORDIALOG_H -#define FILEERRORDIALOG_H - -namespace Ui { - class fileErrorDialog; -} - -/// \brief to show error dialog, and ask what do -class fileErrorDialog : public QDialog -{ - Q_OBJECT -public: - /// \brief create the object and pass all the informations to it - explicit fileErrorDialog(QWidget *parent,QFileInfo fileInfo,QString errorString,bool havePutAtTheEndButton=true); - ~fileErrorDialog(); - /// \brief return the the always checkbox is checked - bool getAlways(); - /// \brief return the action clicked - FileErrorAction getAction(); -protected: - void changeEvent(QEvent *e); -private slots: - void on_PutToBottom_clicked(); - void on_Retry_clicked(); - void on_Skip_clicked(); - void on_Cancel_clicked(); -private: - Ui::fileErrorDialog *ui; - FileErrorAction action; -}; - -#endif // FILEERRORDIALOG_H diff --git a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui b/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui deleted file mode 100644 index c5027e7..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileErrorDialog.ui +++ /dev/null @@ -1,220 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>fileErrorDialog</class> - <widget class="QWidget" name="fileErrorDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>478</width> - <height>154</height> - </rect> - </property> - <property name="windowTitle"> - <string>Error on file</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>Error</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLabel" name="label_error"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="formLayout_2"> - <item row="0" column="0"> - <widget class="QLabel" name="label_size"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Size</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_content_size"> - <property name="text"> - <string notr="true">0 KiB</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_modified"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Modified</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_content_modified"> - <property name="text"> - <string notr="true">Today</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_file_name"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>File name</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_content_file_name"> - <property name="text"> - <string notr="true">source.txt</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QCheckBox" name="checkBoxAlways"> - <property name="text"> - <string>&Always do this action</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="PutToBottom"> - <property name="text"> - <string>Put to bottom</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Retry"> - <property name="text"> - <string>Retry</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Skip"> - <property name="text"> - <string>&Skip</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Cancel"> - <property name="text"> - <string>&Cancel</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>checkBoxAlways</sender> - <signal>toggled(bool)</signal> - <receiver>Cancel</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>112</x> - <y>131</y> - </hint> - <hint type="destinationlabel"> - <x>438</x> - <y>142</y> - </hint> - </hints> - </connection> - <connection> - <sender>checkBoxAlways</sender> - <signal>toggled(bool)</signal> - <receiver>Retry</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>155</x> - <y>131</y> - </hint> - <hint type="destinationlabel"> - <x>309</x> - <y>134</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp b/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp deleted file mode 100644 index 191dd79..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.cpp +++ /dev/null @@ -1,189 +0,0 @@ -#include "fileExistsDialog.h" -#include "ui_fileExistsDialog.h" - -#include <QDebug> - -fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule) : - QDialog(parent), - ui(new Ui::fileExistsDialog) -{ - ui->setupUi(this); - action=FileExists_Cancel; - destinationInfo=destination; - oldName=destination.fileName(); - ui->lineEditNewName->setText(oldName); - ui->lineEditNewName->setPlaceholderText(oldName); - ui->Overwrite->addAction(ui->actionOverwrite_if_newer); - ui->Overwrite->addAction(ui->actionOverwrite_if_not_same_modification_date); - ui->label_content_source_size->setText(QString::number(source.size())); - ui->label_content_source_modified->setText(source.lastModified().toString()); - ui->label_content_source_file_name->setText(source.fileName()); - ui->label_content_destination_size->setText(QString::number(destination.size())); - ui->label_content_destination_modified->setText(destination.lastModified().toString()); - ui->label_content_destination_file_name->setText(destination.fileName()); - QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1)); - if(maxTime<source.lastModified()) - { - ui->label_source_modified->setVisible(true); - ui->label_content_source_modified->setVisible(true); - ui->label_content_source_modified->setText(source.lastModified().toString()); - } - else - { - ui->label_source_modified->setVisible(false); - ui->label_content_source_modified->setVisible(false); - } - if(maxTime<destination.lastModified()) - { - ui->label_destination_modified->setVisible(true); - ui->label_content_destination_modified->setVisible(true); - ui->label_content_destination_modified->setText(destination.lastModified().toString()); - } - else - { - ui->label_destination_modified->setVisible(false); - ui->label_content_destination_modified->setVisible(false); - } - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; -} - -fileExistsDialog::~fileExistsDialog() -{ - delete ui; -} - -void fileExistsDialog::changeEvent(QEvent *e) -{ - QWidget::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } -} - -QString fileExistsDialog::getNewName() -{ - if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked()) - qDebug() << "return the old name: "+oldName; - else - qDebug() << "return the new name: "+ui->lineEditNewName->text(); - if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked()) - return oldName; - else - return ui->lineEditNewName->text(); -} - -void fileExistsDialog::on_SuggestNewName_clicked() -{ - QFileInfo destinationInfo=this->destinationInfo; - QString absolutePath=destinationInfo.absolutePath(); - QString fileName=destinationInfo.fileName(); - QString suffix=""; - QString destination; - QString newFileName; - //resolv the suffix - if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$"))) - { - suffix=fileName; - suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2"); - fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1"); - } - //resolv the new name - int num=1; - do - { - if(num==1) - { - if(firstRenamingRule=="") - newFileName=tr("%1 - copy").arg(fileName); - else - { - newFileName=firstRenamingRule; - newFileName.replace("%name%",fileName); - } - } - else - { - if(otherRenamingRule=="") - newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num); - else - { - newFileName=otherRenamingRule; - newFileName.replace("%name%",fileName); - newFileName.replace("%number%",QString::number(num)); - } - } - destination=absolutePath+QDir::separator()+newFileName+suffix; - destinationInfo.setFile(destination); - num++; - } - while(destinationInfo.exists()); - ui->lineEditNewName->setText(newFileName+suffix); -} - -void fileExistsDialog::on_Rename_clicked() -{ - action=FileExists_Rename; - this->close(); -} - -void fileExistsDialog::on_Overwrite_clicked() -{ - action=FileExists_Overwrite; - this->close(); -} - -void fileExistsDialog::on_Skip_clicked() -{ - action=FileExists_Skip; - this->close(); -} - -void fileExistsDialog::on_Cancel_clicked() -{ - action=FileExists_Cancel; - this->close(); -} - -void fileExistsDialog::on_actionOverwrite_if_newer_triggered() -{ - action=FileExists_OverwriteIfNewer; - this->close(); -} - -void fileExistsDialog::on_actionOverwrite_if_not_same_modification_date_triggered() -{ - action=FileExists_OverwriteIfNotSameModificationDate; - this->close(); -} - -FileExistsAction fileExistsDialog::getAction() -{ - return action; -} - -bool fileExistsDialog::getAlways() -{ - return ui->checkBoxAlways->isChecked(); -} - -void fileExistsDialog::updateRenameButton() -{ - ui->Rename->setEnabled(ui->checkBoxAlways->isChecked() || (oldName!=ui->lineEditNewName->text() && !ui->lineEditNewName->text().isEmpty())); -} - -void fileExistsDialog::on_checkBoxAlways_toggled(bool checked) -{ - Q_UNUSED(checked); - updateRenameButton(); -} - -void fileExistsDialog::on_lineEditNewName_textChanged(const QString &arg1) -{ - Q_UNUSED(arg1); - updateRenameButton(); -} diff --git a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h b/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h deleted file mode 100644 index 75af190..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.h +++ /dev/null @@ -1,58 +0,0 @@ -/** \file fileExistsDialog.h -\brief Define the dialog when file already exists -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QDialog> -#include <QWidget> -#include <QString> -#include <QDateTime> -#include <QFileInfo> -#include <QDir> -#include "Environment.h" - -#ifndef FILEEXISTSDIALOG_H -#define FILEEXISTSDIALOG_H - -namespace Ui { - class fileExistsDialog; -} - -/// \brief to show file exists dialog, and ask what do -class fileExistsDialog : public QDialog -{ - Q_OBJECT -public: - /// \brief create the object and pass all the informations to it - explicit fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule); - ~fileExistsDialog(); - /// \brief return the the always checkbox is checked - bool getAlways(); - /// \brief return the action clicked - FileExistsAction getAction(); - /// \brief return the new rename is case in manual renaming - QString getNewName(); -protected: - void changeEvent(QEvent *e); -private slots: - void on_SuggestNewName_clicked(); - void on_Rename_clicked(); - void on_Overwrite_clicked(); - void on_Skip_clicked(); - void on_Cancel_clicked(); - void on_actionOverwrite_if_newer_triggered(); - void on_actionOverwrite_if_not_same_modification_date_triggered(); - void updateRenameButton(); - void on_checkBoxAlways_toggled(bool checked); - void on_lineEditNewName_textChanged(const QString &arg1); -private: - Ui::fileExistsDialog *ui; - FileExistsAction action; - QString oldName; - QFileInfo destinationInfo; - QString firstRenamingRule; - QString otherRenamingRule; -}; - -#endif // FILEEXISTSDIALOG_H diff --git a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui b/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui deleted file mode 100644 index a37945a..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileExistsDialog.ui +++ /dev/null @@ -1,367 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>fileExistsDialog</class> - <widget class="QWidget" name="fileExistsDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>469</width> - <height>150</height> - </rect> - </property> - <property name="windowTitle"> - <string>The file exists</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="label"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string>Source</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_2"> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string>Destination</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="formLayout_2"> - <item row="0" column="0"> - <widget class="QLabel" name="label_source_size"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Size</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_content_source_size"> - <property name="text"> - <string notr="true">0 KiB</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_source_modified"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Modified</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_content_source_modified"> - <property name="text"> - <string notr="true">Today</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_source_file_name"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>File name</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_content_source_file_name"> - <property name="text"> - <string notr="true">source.txt</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="formLayout"> - <property name="fieldGrowthPolicy"> - <enum>QFormLayout::ExpandingFieldsGrow</enum> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="label_destination_size"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Size</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_content_destination_size"> - <property name="text"> - <string notr="true">0 KiB</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_destination_modified"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Modified</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_content_destination_modified"> - <property name="text"> - <string notr="true">Today</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_destination_file_name"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>File name</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_content_destination_file_name"> - <property name="text"> - <string notr="true">destination.txt</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QLineEdit" name="lineEditNewName"> - <property name="text"> - <string notr="true"/> - </property> - <property name="placeholderText"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="SuggestNewName"> - <property name="text"> - <string>Suggest new &name</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QCheckBox" name="checkBoxAlways"> - <property name="text"> - <string>&Always do this action</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="Rename"> - <property name="text"> - <string>&Rename</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="Overwrite"> - <property name="text"> - <string>&Overwrite</string> - </property> - <property name="popupMode"> - <enum>QToolButton::MenuButtonPopup</enum> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Skip"> - <property name="text"> - <string>&Skip</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Cancel"> - <property name="text"> - <string>&Cancel</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - <action name="actionOverwrite_if_newer"> - <property name="text"> - <string>Overwrite if newer</string> - </property> - </action> - <action name="actionOverwrite_if_not_same_modification_date"> - <property name="text"> - <string>Overwrite if not same modification date</string> - </property> - </action> - </widget> - <resources/> - <connections> - <connection> - <sender>checkBoxAlways</sender> - <signal>toggled(bool)</signal> - <receiver>Cancel</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>115</x> - <y>130</y> - </hint> - <hint type="destinationlabel"> - <x>440</x> - <y>129</y> - </hint> - </hints> - </connection> - <connection> - <sender>checkBoxAlways</sender> - <signal>toggled(bool)</signal> - <receiver>lineEditNewName</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>62</x> - <y>129</y> - </hint> - <hint type="destinationlabel"> - <x>108</x> - <y>93</y> - </hint> - </hints> - </connection> - <connection> - <sender>checkBoxAlways</sender> - <signal>toggled(bool)</signal> - <receiver>SuggestNewName</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>144</x> - <y>138</y> - </hint> - <hint type="destinationlabel"> - <x>326</x> - <y>98</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp b/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp deleted file mode 100644 index f45b2ea..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.cpp +++ /dev/null @@ -1,156 +0,0 @@ -#include "fileIsSameDialog.h" -#include "ui_fileIsSameDialog.h" - -#include <QDebug> - -fileIsSameDialog::fileIsSameDialog(QWidget *parent,QFileInfo fileInfo,QString firstRenamingRule,QString otherRenamingRule) : - QDialog(parent), - ui(new Ui::fileIsSameDialog) -{ - ui->setupUi(this); - action=FileExists_Cancel; - oldName=fileInfo.fileName(); - destinationInfo=fileInfo; - ui->lineEditNewName->setText(oldName); - ui->lineEditNewName->setPlaceholderText(oldName); - ui->label_content_size->setText(QString::number(fileInfo.size())); - ui->label_content_modified->setText(fileInfo.lastModified().toString()); - ui->label_content_file_name->setText(fileInfo.fileName()); - updateRenameButton(); - QDateTime maxTime(QDate(ULTRACOPIER_PLUGIN_MINIMALYEAR,1,1)); - if(maxTime<fileInfo.lastModified()) - { - ui->label_modified->setVisible(true); - ui->label_content_modified->setVisible(true); - ui->label_content_modified->setText(fileInfo.lastModified().toString()); - } - else - { - ui->label_modified->setVisible(false); - ui->label_content_modified->setVisible(false); - } - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; -} - -fileIsSameDialog::~fileIsSameDialog() -{ - delete ui; -} - -void fileIsSameDialog::changeEvent(QEvent *e) -{ - QWidget::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } -} - -QString fileIsSameDialog::getNewName() -{ - if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked()) - qDebug() << "fileIsSameDialog, return the old name: "+oldName; - else - qDebug() << "fileIsSameDialog, return the new name: "+ui->lineEditNewName->text(); - if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked()) - return oldName; - else - return ui->lineEditNewName->text(); -} - -void fileIsSameDialog::on_SuggestNewName_clicked() -{ - QFileInfo destinationInfo=this->destinationInfo; - QString absolutePath=destinationInfo.absolutePath(); - QString fileName=destinationInfo.fileName(); - QString suffix=""; - QString destination; - QString newFileName; - //resolv the suffix - if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$"))) - { - suffix=fileName; - suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2"); - fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1"); - } - //resolv the new name - int num=1; - do - { - if(num==1) - { - if(firstRenamingRule=="") - newFileName=tr("%1 - copy").arg(fileName); - else - { - newFileName=firstRenamingRule; - newFileName.replace("%name%",fileName); - } - } - else - { - if(otherRenamingRule=="") - newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num); - else - { - newFileName=otherRenamingRule; - newFileName.replace("%name%",fileName); - newFileName.replace("%number%",QString::number(num)); - } - } - destination=absolutePath+QDir::separator()+newFileName+suffix; - destinationInfo.setFile(destination); - num++; - } - while(destinationInfo.exists()); - ui->lineEditNewName->setText(newFileName+suffix); -} - -void fileIsSameDialog::on_Rename_clicked() -{ - action=FileExists_Rename; - this->close(); -} - -void fileIsSameDialog::on_Skip_clicked() -{ - action=FileExists_Skip; - this->close(); -} - -void fileIsSameDialog::on_Cancel_clicked() -{ - action=FileExists_Cancel; - this->close(); -} - -FileExistsAction fileIsSameDialog::getAction() -{ - return action; -} - -bool fileIsSameDialog::getAlways() -{ - return ui->checkBoxAlways->isChecked(); -} - -void fileIsSameDialog::updateRenameButton() -{ - ui->Rename->setEnabled(ui->checkBoxAlways->isChecked() || (oldName!=ui->lineEditNewName->text() && !ui->lineEditNewName->text().isEmpty())); -} - -void fileIsSameDialog::on_lineEditNewName_textChanged(const QString &arg1) -{ - Q_UNUSED(arg1); - updateRenameButton(); -} - -void fileIsSameDialog::on_checkBoxAlways_toggled(bool checked) -{ - Q_UNUSED(checked); - updateRenameButton(); -} diff --git a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h b/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h deleted file mode 100644 index fa48755..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.h +++ /dev/null @@ -1,56 +0,0 @@ -/** \file fileIsSameDialog.h -\brief Define the dialog when file is same -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QDialog> -#include <QWidget> -#include <QString> -#include <QDateTime> -#include <QFileInfo> -#include <QDir> -#include "Environment.h" - -#ifndef FILEISSAMEDIALOG_H -#define FILEISSAMEDIALOG_H - -namespace Ui { - class fileIsSameDialog; -} - -/// \brief to show file is same dialog, and ask what do -class fileIsSameDialog : public QDialog -{ - Q_OBJECT -public: - /// \brief create the object and pass all the informations to it - explicit fileIsSameDialog(QWidget *parent,QFileInfo fileInfo,QString firstRenamingRule,QString otherRenamingRule); - ~fileIsSameDialog(); - /// \brief return the the always checkbox is checked - bool getAlways(); - /// \brief return the action clicked - FileExistsAction getAction(); - /// \brief return the new rename is case in manual renaming - QString getNewName(); -protected: - void changeEvent(QEvent *e); -private slots: - void on_SuggestNewName_clicked(); - void on_Rename_clicked(); - void on_Skip_clicked(); - void on_Cancel_clicked(); - void updateRenameButton(); - void on_lineEditNewName_textChanged(const QString &arg1); - void on_checkBoxAlways_toggled(bool checked); -private: - Ui::fileIsSameDialog *ui; - FileExistsAction action; - QString oldName; - QFileInfo destinationInfo; - QString firstRenamingRule; - QString otherRenamingRule; - -}; - -#endif // FILEISSAMEDIALOG_H diff --git a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui b/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui deleted file mode 100644 index 673ba26..0000000 --- a/plugins-alternative/CopyEngine/Rsync/fileIsSameDialog.ui +++ /dev/null @@ -1,192 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>fileIsSameDialog</class> - <widget class="QWidget" name="fileIsSameDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>378</width> - <height>148</height> - </rect> - </property> - <property name="windowTitle"> - <string>This files are the same file</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>The source and destination is same</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="formLayout_2"> - <item row="0" column="0"> - <widget class="QLabel" name="label_size"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Size</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_content_size"> - <property name="text"> - <string notr="true">0 KiB</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_modified"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Modified</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_content_modified"> - <property name="text"> - <string notr="true">Today</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_file_name"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>File name</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_content_file_name"> - <property name="text"> - <string notr="true">source.txt</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QLineEdit" name="lineEditNewName"> - <property name="text"> - <string notr="true"/> - </property> - <property name="placeholderText"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="SuggestNewName"> - <property name="text"> - <string>Suggest new &name</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QCheckBox" name="checkBoxAlways"> - <property name="text"> - <string>&Always do this action</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="Rename"> - <property name="text"> - <string>&Rename</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Skip"> - <property name="text"> - <string>&Skip</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Cancel"> - <property name="text"> - <string>&Cancel</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp b/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp deleted file mode 100644 index d951b90..0000000 --- a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.cpp +++ /dev/null @@ -1,143 +0,0 @@ -#include "folderExistsDialog.h" -#include "ui_folderExistsDialog.h" - -#include <QMessageBox> - -folderExistsDialog::folderExistsDialog(QWidget *parent,QFileInfo source,bool isSame,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule) : - QDialog(parent), - ui(new Ui::folderExistsDialog) -{ - ui->setupUi(this); - action=FolderExists_Cancel; - oldName=source.fileName(); - this->destinationInfo=destinationInfo; - ui->lineEditNewName->setText(oldName); - ui->lineEditNewName->setPlaceholderText(oldName); - ui->label_content_source_modified->setText(source.lastModified().toString()); - ui->label_content_source_folder_name->setText(source.fileName()); - if(isSame) - { - ui->label_source->hide(); - ui->label_destination->hide(); - ui->label_destination_modified->hide(); - ui->label_destination_folder_name->hide(); - ui->label_content_destination_modified->hide(); - ui->label_content_destination_folder_name->hide(); - } - else - { - this->setWindowTitle(tr("Folder already exists")); - ui->label_message->hide(); - ui->label_content_destination_modified->setText(destination.lastModified().toString()); - ui->label_content_destination_folder_name->setText(destination.fileName()); - } - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; -} - -folderExistsDialog::~folderExistsDialog() -{ - delete ui; -} - -void folderExistsDialog::changeEvent(QEvent *e) -{ - QDialog::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } -} - -QString folderExistsDialog::getNewName() -{ - if(oldName==ui->lineEditNewName->text() || ui->checkBoxAlways->isChecked()) - return ""; - else - return ui->lineEditNewName->text(); -} - -void folderExistsDialog::on_SuggestNewName_clicked() -{ - QFileInfo destinationInfo=this->destinationInfo; - QString absolutePath=destinationInfo.absolutePath(); - QString fileName=destinationInfo.fileName(); - QString suffix=""; - QString destination; - QString newFileName; - //resolv the suffix - if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$"))) - { - suffix=fileName; - suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2"); - fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1"); - } - //resolv the new name - int num=1; - do - { - if(num==1) - { - if(firstRenamingRule=="") - newFileName=tr("%1 - copy").arg(fileName); - else - { - newFileName=firstRenamingRule; - newFileName.replace("%name%",fileName); - } - } - else - { - if(otherRenamingRule=="") - newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num); - else - { - newFileName=otherRenamingRule; - newFileName.replace("%name%",fileName); - newFileName.replace("%number%",QString::number(num)); - } - } - destination=absolutePath+QDir::separator()+newFileName+suffix; - destinationInfo.setFile(destination); - num++; - } - while(destinationInfo.exists()); - ui->lineEditNewName->setText(newFileName+suffix); -} - -void folderExistsDialog::on_Rename_clicked() -{ - action=FolderExists_Rename; - this->close(); -} - -void folderExistsDialog::on_Skip_clicked() -{ - action=FolderExists_Skip; - this->close(); -} - -void folderExistsDialog::on_Cancel_clicked() -{ - action=FolderExists_Cancel; - this->close(); -} - -FolderExistsAction folderExistsDialog::getAction() -{ - return action; -} - -bool folderExistsDialog::getAlways() -{ - return ui->checkBoxAlways->isChecked(); -} - -void folderExistsDialog::on_Merge_clicked() -{ - action=FolderExists_Merge; - this->close(); -} diff --git a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h b/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h deleted file mode 100644 index 6d612f1..0000000 --- a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.h +++ /dev/null @@ -1,54 +0,0 @@ -/** \file folderExistsDialog.h -\brief Define the dialog when file exists -\author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#ifndef FOLDERISSAMEDIALOG_H -#define FOLDERISSAMEDIALOG_H - -#include <QDialog> -#include <QFileInfo> -#include <QString> -#include <QDateTime> -#include <QDir> - -#include "Environment.h" - -namespace Ui { - class folderExistsDialog; -} - -/// \brief to show file exists dialog, and ask what do -class folderExistsDialog : public QDialog -{ - Q_OBJECT - -public: - /// \brief create the object and pass all the informations to it - explicit folderExistsDialog(QWidget *parent,QFileInfo source,bool isSame,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule); - ~folderExistsDialog(); - /// \brief return the the always checkbox is checked - bool getAlways(); - /// \brief return the action clicked - FolderExistsAction getAction(); - /// \brief return the new rename is case in manual renaming - QString getNewName(); -protected: - void changeEvent(QEvent *e); -private slots: - void on_SuggestNewName_clicked(); - void on_Rename_clicked(); - void on_Skip_clicked(); - void on_Cancel_clicked(); - void on_Merge_clicked(); -private: - Ui::folderExistsDialog *ui; - FolderExistsAction action; - QString oldName; - QString firstRenamingRule; - QString otherRenamingRule; - QFileInfo destinationInfo; -}; - -#endif // FOLDERISSAMEDIALOG_H diff --git a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui b/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui deleted file mode 100644 index c4c4d5e..0000000 --- a/plugins-alternative/CopyEngine/Rsync/folderExistsDialog.ui +++ /dev/null @@ -1,282 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>folderExistsDialog</class> - <widget class="QDialog" name="folderExistsDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>443</width> - <height>146</height> - </rect> - </property> - <property name="windowTitle"> - <string>This folders are the same folder</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="label_source"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string>Source</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_destination"> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string>Destination</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QLabel" name="label_message"> - <property name="text"> - <string>The source and destination is same</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="formLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="label_source_modified"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Modified</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_content_source_modified"> - <property name="text"> - <string notr="true">Today</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_source_folder_name"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Folder name</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_content_source_folder_name"> - <property name="text"> - <string notr="true">folder</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="formLayout_2"> - <item row="0" column="0"> - <widget class="QLabel" name="label_destination_modified"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Modified</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_destination_folder_name"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Folder name</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_content_destination_modified"> - <property name="text"> - <string notr="true">Today</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="label_content_destination_folder_name"> - <property name="text"> - <string notr="true">folder</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLineEdit" name="lineEditNewName"> - <property name="text"> - <string notr="true"/> - </property> - <property name="placeholderText"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="SuggestNewName"> - <property name="text"> - <string>Suggest new &name</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QCheckBox" name="checkBoxAlways"> - <property name="text"> - <string>&Always do this action</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Rename"> - <property name="text"> - <string>&Rename</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Merge"> - <property name="text"> - <string>Merge</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Skip"> - <property name="text"> - <string>Skip</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="Cancel"> - <property name="text"> - <string>&Cancel</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>checkBoxAlways</sender> - <signal>clicked(bool)</signal> - <receiver>lineEditNewName</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>132</x> - <y>126</y> - </hint> - <hint type="destinationlabel"> - <x>135</x> - <y>101</y> - </hint> - </hints> - </connection> - <connection> - <sender>checkBoxAlways</sender> - <signal>clicked(bool)</signal> - <receiver>SuggestNewName</receiver> - <slot>setDisabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>113</x> - <y>129</y> - </hint> - <hint type="destinationlabel"> - <x>304</x> - <y>100</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/options.ui b/plugins-alternative/CopyEngine/Rsync/options.ui deleted file mode 100644 index 78ac0b2..0000000 --- a/plugins-alternative/CopyEngine/Rsync/options.ui +++ /dev/null @@ -1,328 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>options</class> - <widget class="QWidget" name="options"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>354</width> - <height>399</height> - </rect> - </property> - <layout class="QGridLayout" name="gridLayout"> - <property name="margin"> - <number>2</number> - </property> - <property name="spacing"> - <number>2</number> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Transfer the file rights</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QCheckBox" name="doRightTransfer"/> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Keep the file date</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QCheckBox" name="keepDate"/> - </item> - <item row="2" column="2"> - <widget class="QSpinBox" name="blockSize"> - <property name="suffix"> - <string>KB</string> - </property> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>64000</number> - </property> - </widget> - </item> - <item row="3" column="0" colspan="2"> - <widget class="QLabel" name="label_5"> - <property name="text"> - <string>Auto start the transfer</string> - </property> - </widget> - </item> - <item row="3" column="2"> - <widget class="QCheckBox" name="autoStart"/> - </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_6"> - <property name="text"> - <string>When folder error</string> - </property> - </widget> - </item> - <item row="4" column="2"> - <widget class="QComboBox" name="comboBoxFolderError"> - <item> - <property name="text"> - <string>Ask</string> - </property> - </item> - <item> - <property name="text"> - <string>Skip</string> - </property> - </item> - </widget> - </item> - <item row="5" column="0"> - <widget class="QLabel" name="label_7"> - <property name="text"> - <string>When folder collision</string> - </property> - </widget> - </item> - <item row="5" column="2"> - <widget class="QComboBox" name="comboBoxFolderColision"> - <item> - <property name="text"> - <string>Ask</string> - </property> - </item> - <item> - <property name="text"> - <string>Merge</string> - </property> - </item> - <item> - <property name="text"> - <string>Skip</string> - </property> - </item> - <item> - <property name="text"> - <string>Rename</string> - </property> - </item> - </widget> - </item> - <item row="6" column="0" colspan="2"> - <widget class="QLabel" name="label_8"> - <property name="text"> - <string>Check if destination folder exists</string> - </property> - </widget> - </item> - <item row="6" column="2"> - <widget class="QCheckBox" name="checkBoxDestinationFolderExists"/> - </item> - <item row="8" column="0" colspan="3"> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>Checksum</string> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="1" column="1"> - <widget class="QCheckBox" name="checksumOnlyOnError"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_9"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Only after error</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_10"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Ignore if impossible</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QCheckBox" name="checksumIgnoreIfImpossible"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="doChecksum"/> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="label_11"> - <property name="text"> - <string>Do checksum</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item row="9" column="1"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Enable OS buffer</string> - </property> - </widget> - </item> - <item row="9" column="2"> - <widget class="QCheckBox" name="osBuffer"/> - </item> - <item row="10" column="0" colspan="2"> - <widget class="QCheckBox" name="osBufferLimited"> - <property name="text"> - <string>OS buffer only if smaller than</string> - </property> - </widget> - </item> - <item row="10" column="2"> - <widget class="QSpinBox" name="osBufferLimit"> - <property name="suffix"> - <string>KB</string> - </property> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>2048</number> - </property> - <property name="value"> - <number>512</number> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Block size</string> - </property> - </widget> - </item> - <item row="13" column="1"> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item row="12" column="1"> - <widget class="QPushButton" name="filters"> - <property name="text"> - <string>Filters</string> - </property> - </widget> - </item> - <item row="11" column="1"> - <widget class="QPushButton" name="renamingRules"> - <property name="text"> - <string>Renaming rules</string> - </property> - </widget> - </item> - <item row="7" column="2"> - <widget class="QCheckBox" name="rsync"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="7" column="0" colspan="2"> - <widget class="QLabel" name="label_rsync"> - <property name="text"> - <string>Rsync (only in copy mode)</string> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>doChecksum</sender> - <signal>clicked(bool)</signal> - <receiver>label_9</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>187</x> - <y>212</y> - </hint> - <hint type="destinationlabel"> - <x>100</x> - <y>223</y> - </hint> - </hints> - </connection> - <connection> - <sender>doChecksum</sender> - <signal>clicked(bool)</signal> - <receiver>checksumOnlyOnError</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>198</x> - <y>212</y> - </hint> - <hint type="destinationlabel"> - <x>190</x> - <y>226</y> - </hint> - </hints> - </connection> - <connection> - <sender>doChecksum</sender> - <signal>clicked(bool)</signal> - <receiver>label_10</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>245</x> - <y>210</y> - </hint> - <hint type="destinationlabel"> - <x>123</x> - <y>251</y> - </hint> - </hints> - </connection> - <connection> - <sender>doChecksum</sender> - <signal>clicked(bool)</signal> - <receiver>checksumIgnoreIfImpossible</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>269</x> - <y>209</y> - </hint> - <hint type="destinationlabel"> - <x>213</x> - <y>247</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/plugins-alternative/CopyEngine/Rsync/resources.qrc b/plugins-alternative/CopyEngine/Rsync/resources.qrc deleted file mode 100644 index c6ca4ef..0000000 --- a/plugins-alternative/CopyEngine/Rsync/resources.qrc +++ /dev/null @@ -1,8 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>resources/add.png</file> - <file>resources/edit.png</file> - <file>resources/remove.png</file> - <file>resources/filter.png</file> - </qresource> -</RCC> diff --git a/plugins-alternative/CopyEngine/Rsync/resources/add.png b/plugins-alternative/CopyEngine/Rsync/resources/add.png Binary files differdeleted file mode 100644 index 1e03be9..0000000 --- a/plugins-alternative/CopyEngine/Rsync/resources/add.png +++ /dev/null diff --git a/plugins-alternative/CopyEngine/Rsync/resources/edit.png b/plugins-alternative/CopyEngine/Rsync/resources/edit.png Binary files differdeleted file mode 100644 index 8072aea..0000000 --- a/plugins-alternative/CopyEngine/Rsync/resources/edit.png +++ /dev/null diff --git a/plugins-alternative/CopyEngine/Rsync/resources/filter.png b/plugins-alternative/CopyEngine/Rsync/resources/filter.png Binary files differdeleted file mode 100644 index 9cabc5a..0000000 --- a/plugins-alternative/CopyEngine/Rsync/resources/filter.png +++ /dev/null diff --git a/plugins-alternative/CopyEngine/Rsync/resources/remove.png b/plugins-alternative/CopyEngine/Rsync/resources/remove.png Binary files differdeleted file mode 100644 index 5b4c488..0000000 --- a/plugins-alternative/CopyEngine/Rsync/resources/remove.png +++ /dev/null diff --git a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp b/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp deleted file mode 100644 index 197b8c7..0000000 --- a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.cpp +++ /dev/null @@ -1,511 +0,0 @@ -#include "scanFileOrFolder.h" - -#include <QDateTime> - -scanFileOrFolder::scanFileOrFolder(CopyMode mode) -{ - rsync=false; - stopped = true; - stopIt = false; - this->mode=mode; - setObjectName("ScanFileOrFolder"); - folder_isolation=QRegExp("^(.*/)?([^/]+)/$"); -} - -scanFileOrFolder::~scanFileOrFolder() -{ - stop(); - quit(); - wait(); -} - -bool scanFileOrFolder::isFinished() -{ - return stopped; -} - -void scanFileOrFolder::addToList(const QStringList& sources,const QString& destination) -{ - stopIt=false; - this->sources=parseWildcardSources(sources); - this->destination=destination; - if(sources.size()>1 || QFileInfo(destination).isDir()) - /* Disabled because the separator transformation product bug - * if(!destination.endsWith(QDir::separator())) - this->destination+=QDir::separator();*/ - if(!destination.endsWith("/") && !destination.endsWith("\\")) - this->destination+="/";//put unix separator because it's transformed into that's under windows too - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"addToList("+sources.join(";")+","+destination+")"); -} - - -QStringList scanFileOrFolder::parseWildcardSources(const QStringList &sources) -{ - QRegExp splitFolder("[/\\\\]"); - QStringList returnList; - int index=0; - while(index<sources.size()) - { - if(sources.at(index).contains("*")) - { - QStringList toParse=sources.at(index).split(splitFolder); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("before wildcard parse: %1, toParse: %2, is valid: %3").arg(sources.at(index)).arg(toParse.join(", ")).arg(splitFolder.isValid())); - QList<QStringList> recomposedSource; - recomposedSource << (QStringList() << ""); - while(toParse.size()>0) - { - if(toParse.first().contains('*')) - { - QString toParseFirst=toParse.first(); - if(toParseFirst=="") - toParseFirst+="/"; - QList<QStringList> newRecomposedSource; - QRegExp toResolv=QRegExp(toParseFirst.replace('*',"[^/\\\\]*")); - int index_recomposedSource=0; - while(index_recomposedSource<recomposedSource.size())//parse each url part - { - QFileInfo info(recomposedSource.at(index_recomposedSource).join("/")); - if(info.isDir()) - { - QDir folder(info.absoluteFilePath()); - QFileInfoList fileFile=folder.entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System);//QStringList() << toResolv - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("list the folder: %1, with the wildcard: %2").arg(info.absoluteFilePath()).arg(toResolv.pattern())); - int index_fileList=0; - while(index_fileList<fileFile.size()) - { - if(fileFile.at(index_fileList).fileName().contains(toResolv)) - { - QStringList tempList=recomposedSource.at(index_recomposedSource); - tempList << fileFile.at(index_fileList).fileName(); - newRecomposedSource << tempList; - } - index_fileList++; - } - } - index_recomposedSource++; - } - recomposedSource=newRecomposedSource; - } - else - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("add toParse: %1").arg(toParse.join("/"))); - int index_recomposedSource=0; - while(index_recomposedSource<recomposedSource.size()) - { - recomposedSource[index_recomposedSource] << toParse.first(); - if(!QFileInfo(recomposedSource.at(index_recomposedSource).join("/")).exists()) - recomposedSource.removeAt(index_recomposedSource); - else - index_recomposedSource++; - } - } - toParse.removeFirst(); - } - int index_recomposedSource=0; - while(index_recomposedSource<recomposedSource.size()) - { - returnList<<recomposedSource.at(index_recomposedSource).join("/"); - index_recomposedSource++; - } - } - else - returnList << sources.at(index); - index++; - } - return returnList; -} - -void scanFileOrFolder::setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - QMutexLocker lock(&filtersMutex); - this->include_send=include; - this->exclude_send=exclude; - reloadTheNewFilters=true; - haveFilters=include_send.size()>0 || exclude_send.size()>0; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("haveFilters: %1, include_send.size(): %2, exclude_send.size(): %3").arg(haveFilters).arg(include_send.size()).arg(exclude_send.size())); -} - -//set action if Folder are same or exists -void scanFileOrFolder::setFolderExistsAction(FolderExistsAction action,QString newName) -{ - this->newName=newName; - folderExistsAction=action; - waitOneAction.release(); -} - -//set action if error -void scanFileOrFolder::setFolderErrorAction(FileErrorAction action) -{ - fileErrorAction=action; - waitOneAction.release(); -} - -void scanFileOrFolder::stop() -{ - stopIt=true; - waitOneAction.release(); -} - -void scanFileOrFolder::run() -{ - stopped=false; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start the listing with destination: "+destination+", mode: "+QString::number(mode)); - QDir destinationFolder(destination); - int sourceIndex=0; - while(sourceIndex<sources.size()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"size source to list: "+QString::number(sourceIndex)+"/"+QString::number(sources.size())); - if(stopIt) - { - stopped=true; - return; - } - QFileInfo source=sources.at(sourceIndex); - if(source.isDir()) - { - /* Bad way; when you copy c:\source\folder into d:\destination, you wait it create the folder d:\destination\folder - //listFolder(source.absoluteFilePath()+QDir::separator(),destination); - listFolder(source.absoluteFilePath()+"/",destination);//put unix separator because it's transformed into that's under windows too - */ - //put unix separator because it's transformed into that's under windows too - listFolder(source.absolutePath()+"/",destinationFolder.absolutePath()+"/",source.fileName()+"/",source.fileName()+"/"); - } - else - emit fileTransfer(source,destination+source.fileName(),mode); - sourceIndex++; - } - stopped=true; - if(stopIt) - return; - emit finishedTheListing(); -} - -void scanFileOrFolder::listFolder(const QString& source,const QString& destination,const QString& sourceSuffixPath,QString destinationSuffixPath) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"source: "+source+", destination: "+destination+", sourceSuffixPath: "+sourceSuffixPath+", destinationSuffixPath: "+destinationSuffixPath); - if(stopIt) - return; - QString newSource = source+sourceSuffixPath; - QString finalDest = destination+destinationSuffixPath; - //if is same - if(newSource==finalDest) - { - QDir dirSource(newSource); - emit folderAlreadyExists(dirSource.absolutePath(),finalDest,true); - waitOneAction.acquire(); - switch(folderExistsAction) - { - case FolderExists_Merge: - break; - case FolderExists_Skip: - return; - break; - case FolderExists_Rename: - if(newName=="") - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"pattern: "+folder_isolation.pattern()); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"full: "+destinationSuffixPath); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"prefix: "+prefix); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"suffix: "+suffix); - //resolv the new name - QFileInfo destinationInfo; - int num=1; - do - { - if(num==1) - { - if(firstRenamingRule=="") - destinationSuffixPath=tr("%1 - copy").arg(suffix); - else - { - destinationSuffixPath=firstRenamingRule; - destinationSuffixPath.replace("%name%",suffix); - } - } - else - { - if(otherRenamingRule=="") - destinationSuffixPath=tr("%1 - copy (%2)").arg(suffix).arg(num); - else - { - destinationSuffixPath=otherRenamingRule; - destinationSuffixPath.replace("%name%",suffix); - destinationSuffixPath.replace("%number%",QString::number(num)); - } - } - num++; - destinationInfo.setFile(prefix+destinationSuffixPath); - } - while(destinationInfo.exists()); - } - else - destinationSuffixPath = newName; - destinationSuffixPath+="/"; - finalDest = destination+destinationSuffixPath; - break; - default: - return; - break; - } - } - //check if destination exists - if(checkDestinationExists) - { - QDir finalSource(newSource); - QDir destinationDir(finalDest); - if(destinationDir.exists()) - { - emit folderAlreadyExists(finalSource.absolutePath(),destinationDir.absolutePath(),false); - waitOneAction.acquire(); - switch(folderExistsAction) - { - case FolderExists_Merge: - break; - case FolderExists_Skip: - return; - break; - case FolderExists_Rename: - if(newName=="") - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"pattern: "+folder_isolation.pattern()); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"full: "+destinationSuffixPath); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"prefix: "+prefix); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"suffix: "+suffix); - //resolv the new name - QFileInfo destinationInfo; - int num=1; - do - { - if(num==1) - { - if(firstRenamingRule=="") - destinationSuffixPath=tr("%1 - copy").arg(suffix); - else - { - destinationSuffixPath=firstRenamingRule; - destinationSuffixPath.replace("%name%",suffix); - } - } - else - { - if(otherRenamingRule=="") - destinationSuffixPath=tr("%1 - copy (%2)").arg(suffix).arg(num); - else - { - destinationSuffixPath=otherRenamingRule; - destinationSuffixPath.replace("%name%",suffix); - destinationSuffixPath.replace("%number%",QString::number(num)); - } - } - destinationInfo.setFile(prefix+destinationSuffixPath); - num++; - } - while(destinationInfo.exists()); - } - else - destinationSuffixPath = newName; - destinationSuffixPath+="/"; - finalDest = destination+destinationSuffixPath; - break; - default: - return; - break; - } - } - } - //do source check - QDir finalSource(newSource); - QFileInfo dirInfo(newSource); - //check of source is readable - do - { - fileErrorAction=FileError_NotSet; - if(!dirInfo.isReadable() || !dirInfo.isExecutable() || !dirInfo.exists()) - { - if(!dirInfo.exists()) - emit errorOnFolder(dirInfo,tr("The folder not exists")); - else - emit errorOnFolder(dirInfo,tr("The folder is not readable")); - waitOneAction.acquire(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"actionNum: "+QString::number(fileErrorAction)); - } - } while(fileErrorAction==FileError_Retry); - /// \todo check here if the folder is not readable or not exists - QFileInfoList entryList=finalSource.entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst|QDir::Name|QDir::IgnoreCase);//possible wait time here - int sizeEntryList=entryList.size(); - emit newFolderListing(newSource); - if(sizeEntryList==0) - emit addToMkPath(finalDest); - for (int index=0;index<sizeEntryList;++index) - { - QFileInfo fileInfo=entryList.at(index); - if(stopIt) - return; - if(haveFilters) - { - if(reloadTheNewFilters) - { - QMutexLocker lock(&filtersMutex); - QCoreApplication::processEvents(QEventLoop::AllEvents); - reloadTheNewFilters=false; - this->include=this->include_send; - this->exclude=this->exclude_send; - } - QString fileName=fileInfo.fileName(); - if(fileInfo.isDir()) - { - bool excluded=false,included=(include.size()==0); - int filters_index=0; - while(filters_index<exclude.size()) - { - if(exclude.at(filters_index).apply_on==ApplyOn_folder || exclude.at(filters_index).apply_on==ApplyOn_fileAndFolder) - { - if(fileName.contains(exclude.at(filters_index).regex)) - { - excluded=true; - break; - } - } - filters_index++; - } - if(excluded) - {} - else - { - filters_index=0; - while(filters_index<include.size()) - { - if(include.at(filters_index).apply_on==ApplyOn_folder || include.at(filters_index).apply_on==ApplyOn_fileAndFolder) - { - if(fileName.contains(include.at(filters_index).regex)) - { - included=true; - break; - } - } - filters_index++; - } - if(!included) - {} - else - listFolder(source,destination,sourceSuffixPath+fileInfo.fileName()+"/",destinationSuffixPath+fileName+"/"); - } - } - else - { - bool excluded=false,included=(include.size()==0); - int filters_index=0; - while(filters_index<exclude.size()) - { - if(exclude.at(filters_index).apply_on==ApplyOn_file || exclude.at(filters_index).apply_on==ApplyOn_fileAndFolder) - { - if(fileName.contains(exclude.at(filters_index).regex)) - { - excluded=true; - break; - } - } - filters_index++; - } - if(excluded) - {} - else - { - filters_index=0; - while(filters_index<include.size()) - { - if(include.at(filters_index).apply_on==ApplyOn_file || include.at(filters_index).apply_on==ApplyOn_fileAndFolder) - { - if(fileName.contains(include.at(filters_index).regex)) - { - included=true; - break; - } - } - filters_index++; - } - if(!included) - {} - else - { - bool sendToTransfer=false; - if(!rsync) - sendToTransfer=true; - else if(!QFile::exists(finalDest+fileName)) - sendToTransfer=true; - else if(fileInfo.lastModified()!=QFileInfo(finalDest+fileName).lastModified()) - sendToTransfer=true; - if(sendToTransfer) - emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileName,mode); - } - } - } - } - else - { - if(fileInfo.isDir())//possible wait time here - //listFolder(source,destination,suffixPath+fileInfo.fileName()+QDir::separator()); - listFolder(source,destination,sourceSuffixPath+fileInfo.fileName()+"/",destinationSuffixPath+fileInfo.fileName()+"/");//put unix separator because it's transformed into that's under windows too - else - { - bool sendToTransfer=false; - if(!rsync) - sendToTransfer=true; - else if(!QFile::exists(finalDest+fileInfo.fileName())) - sendToTransfer=true; - else if(fileInfo.lastModified()!=QFileInfo(finalDest+fileInfo.fileName()).lastModified()) - sendToTransfer=true; - if(sendToTransfer) - emit fileTransfer(fileInfo.absoluteFilePath(),finalDest+fileInfo.fileName(),mode); - } - } - } - if(rsync) - { - //check the reverse path here - QFileInfoList entryListDestination=QDir(finalDest).entryInfoList(QDir::AllEntries|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System,QDir::DirsFirst|QDir::Name|QDir::IgnoreCase);//possible wait time here - int sizeEntryListDestination=entryListDestination.size(); - int index=0; - for (int indexDestination=0;indexDestination<sizeEntryListDestination;++indexDestination) - { - index=0; - while(index<sizeEntryList) - { - if(entryListDestination.at(indexDestination).fileName()==entryList.at(index).fileName()) - break; - index++; - } - if(index==sizeEntryList) - { - //then not found, need be remove - emit addToRmForRsync(finalDest+entryListDestination.at(indexDestination).fileName()); - } - } - return; - } - - if(mode==Move) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"newSource: "+newSource+", sizeEntryList: "+QString::number(sizeEntryList)); - emit addToRmPath(newSource,sizeEntryList); - } -} - -//set if need check if the destination exists -void scanFileOrFolder::setCheckDestinationFolderExists(const bool checkDestinationFolderExists) -{ - this->checkDestinationExists=checkDestinationFolderExists; -} - -void scanFileOrFolder::setRenamingRules(QString firstRenamingRule,QString otherRenamingRule) -{ - this->firstRenamingRule=firstRenamingRule; - this->otherRenamingRule=otherRenamingRule; -} - -/// \brief set rsync -void scanFileOrFolder::setRsync(const bool rsync) -{ - this->rsync=rsync; -} diff --git a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h b/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h deleted file mode 100644 index 2109df2..0000000 --- a/plugins-alternative/CopyEngine/Rsync/scanFileOrFolder.h +++ /dev/null @@ -1,91 +0,0 @@ -/** \file scanFileOrFolder.h -\brief Thread changed to list recursively the folder -\author alpha_one_x86 -\version 0.3 -\date 2011 */ - -#include <QThread> -#include <QStringList> -#include <QString> -#include <QList> -#include <QFileInfo> -#include <QDir> -#include <QSemaphore> -#include <QEventLoop> -#include <QCoreApplication> -#include <QMutexLocker> - -#include "Environment.h" - -#ifndef SCANFILEORFOLDER_H -#define SCANFILEORFOLDER_H - -/// \brief Thread changed to list recursively the folder -class scanFileOrFolder : public QThread -{ - Q_OBJECT -public: - explicit scanFileOrFolder(CopyMode mode); - ~scanFileOrFolder(); - /// \brief to the a folder listing - void stop(); - /// \brief to get if is finished - bool isFinished(); - /// \brief set action if Folder are same or exists - void setFolderExistsAction(FolderExistsAction action,QString newName=""); - /// \brief set action if error - void setFolderErrorAction(FileErrorAction action); - /// \brief set if need check if the destination exists - void setCheckDestinationFolderExists(const bool checkDestinationFolderExists); - void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule); - /// \brief set rsync - void setRsync(const bool rsync); -signals: - void fileTransfer(const QFileInfo &source,const QFileInfo &destination,const CopyMode &mode); - /// \brief To debug source - void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); - void folderAlreadyExists(const QFileInfo &source,const QFileInfo &destination,const bool &isSame); - void errorOnFolder(const QFileInfo &fileInfo,const QString &errorString); - void finishedTheListing(); - - void newFolderListing(const QString &path); - void addToMkPath(const QString& folder); - void addToRmPath(const QString& folder,const int& inodeToRemove); - void addToRmForRsync(const QString& inode); -public slots: - void addToList(const QStringList& sources,const QString& destination); - void setFilters(QList<Filters_rules> include,QList<Filters_rules> exclude); -protected: - void run(); -private: - QStringList sources; - QString destination; - volatile bool stopIt; - void listFolder(const QString& source,const QString& destination,const QString& sourceSuffixPath,QString destinationSuffixPath); - volatile bool stopped; - QSemaphore waitOneAction; - FolderExistsAction folderExistsAction; - FileErrorAction fileErrorAction; - volatile bool checkDestinationExists; - QString newName; - QRegExp folder_isolation; - QString prefix; - QString suffix; - CopyMode mode; - bool rsync; - QList<Filters_rules> include,exclude; - QList<Filters_rules> include_send,exclude_send; - bool reloadTheNewFilters; - bool haveFilters; - QMutex filtersMutex; - QString firstRenamingRule; - QString otherRenamingRule; - /** Parse the multiple wildcard source, it allow resolv multiple wildcard with Qt into their path - * The string: /toto/f*a/yy*a/toto.mp3 - * Will give: /toto/f1a/yy*a/toto.mp3, /toto/f2a/yy*a/toto.mp3 - * Will give: /toto/f2a/yy1a/toto.mp3, /toto/f2a/yy2a/toto.mp3 - */ - QStringList parseWildcardSources(const QStringList &sources); -}; - -#endif // SCANFILEORFOLDER_H diff --git a/plugins-alternative/CopyEngine/Rsync/DebugEngineMacro.h b/plugins-alternative/PluginLoader/keybinding/DebugEngineMacro.h index ad08d4f..f9b5349 100644 --- a/plugins-alternative/CopyEngine/Rsync/DebugEngineMacro.h +++ b/plugins-alternative/PluginLoader/keybinding/DebugEngineMacro.h @@ -1,12 +1,15 @@ /** \file DebugEngineMacro.h \brief Define the macro for the debug \author alpha_one_x86 -\version 0.3 -\date 2010 */ +\licence GPL3, see the file COPYING */ #ifndef DEBUGENGINEMACRO_H #define DEBUGENGINEMACRO_H +#ifdef WIN32 +# define __func__ __FUNCTION__ +#endif + /// \brief Macro for the debug log #ifdef ULTRACOPIER_PLUGIN_DEBUG #if defined (__FILE__) && defined (__LINE__) diff --git a/plugins-alternative/CopyEngine/Rsync/Environment.h b/plugins-alternative/PluginLoader/keybinding/Environment.h index 7ac6f16..265a5a6 100644 --- a/plugins-alternative/CopyEngine/Rsync/Environment.h +++ b/plugins-alternative/PluginLoader/keybinding/Environment.h @@ -1,12 +1,10 @@ /** \file Environment.h
\brief Define the environment variable and global function
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#include "Variable.h"
/// \brief The global include
#include "StructEnumDefinition.h"
-#include "StructEnumDefinition_CopyEngine.h"
#include "DebugEngineMacro.h"
-#include "CompilerInfo.h"
+
diff --git a/plugins-alternative/PluginLoader/keybinding/KeyBind.cpp b/plugins-alternative/PluginLoader/keybinding/KeyBind.cpp new file mode 100644 index 0000000..0fd5287 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/KeyBind.cpp @@ -0,0 +1,11 @@ +#include "KeyBind.h" + +KeyBind::KeyBind(QWidget *parent) : + QLineEdit(parent) +{ +} + +void KeyBind::keyPressEvent(QKeyEvent * event) +{ + emit newKey(event); +} diff --git a/plugins-alternative/PluginLoader/keybinding/KeyBind.h b/plugins-alternative/PluginLoader/keybinding/KeyBind.h new file mode 100644 index 0000000..f4abf68 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/KeyBind.h @@ -0,0 +1,18 @@ +#ifndef KEYBIND_H +#define KEYBIND_H + +#include <QLineEdit> + +class KeyBind : public QLineEdit +{ + Q_OBJECT +public: + explicit KeyBind(QWidget *parent = 0); + +signals: + void newKey(QKeyEvent * event); +public slots: + void keyPressEvent(QKeyEvent * event); +}; + +#endif // KEYBIND_H diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/ar/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/ar/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/ar/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/de/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/de/translation.ts new file mode 100644 index 0000000..fe80b91 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/de/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de" sourcelanguage="en"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/el/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/el/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/el/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/en/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/en/translation.ts new file mode 100644 index 0000000..f92b6b5 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/en/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="en"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/es/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/es/translation.ts new file mode 100644 index 0000000..c72ba56 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/es/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="es" sourcelanguage="en"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/fr/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/fr/translation.ts new file mode 100644 index 0000000..513e265 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/fr/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="fr" sourcelanguage="en"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/hi/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/hi/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/hi/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/hu/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/hu/translation.ts new file mode 100644 index 0000000..cb3bde6 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/hu/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="hu"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/id/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/id/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/id/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/it/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/it/translation.ts new file mode 100644 index 0000000..a2257e5 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/it/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="it_IT"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/ja/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/ja/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/ja/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/ko/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/ko/translation.ts new file mode 100644 index 0000000..18f47bb --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/ko/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ko_KR"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/nl/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/nl/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/nl/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/no/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/no/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/no/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/pl/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/pl/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/pl/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/pt/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/pt/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/pt/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/ru/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/ru/translation.ts new file mode 100644 index 0000000..38a6bfd --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/ru/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru" sourcelanguage="en"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/th/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/th/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/th/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/tr/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/tr/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/tr/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/Languages/zh/translation.ts b/plugins-alternative/PluginLoader/keybinding/Languages/zh/translation.ts new file mode 100644 index 0000000..07a7469 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Languages/zh/translation.ts @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +</TS> diff --git a/plugins-alternative/PluginLoader/keybinding/OptionsWidget.cpp b/plugins-alternative/PluginLoader/keybinding/OptionsWidget.cpp new file mode 100644 index 0000000..a48e61f --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/OptionsWidget.cpp @@ -0,0 +1,55 @@ +#include "OptionsWidget.h"
+#include "KeyBind.h"
+#include "ui_OptionsWidget.h"
+
+#include <QKeyEvent>
+
+OptionsWidget::OptionsWidget(QWidget *parent) :
+ QWidget(parent),
+ modifier(QList<int>() << Qt::Key_Control << Qt::Key_Shift << Qt::Key_Super_R << Qt::Key_Super_L << Qt::Key_Meta << Qt::Key_Alt << Qt::Key_AltGr),
+ ui(new Ui::OptionsWidget)
+{
+ ui->setupUi(this);
+
+ keyBind=new KeyBind(this);
+ ui->vboxLayout->addWidget(keyBind);
+ connect(keyBind,&KeyBind::newKey,this,&OptionsWidget::newKeyBind);
+}
+
+OptionsWidget::~OptionsWidget()
+{
+ delete ui;
+}
+
+void OptionsWidget::retranslate()
+{
+ ui->retranslateUi(this);
+}
+
+void OptionsWidget::setKeyBind(const QKeySequence &keySequence)
+{
+ keyBind->setText(keySequence.toString());
+}
+
+void OptionsWidget::newKey(QKeyEvent * event)
+{
+ int keyInt = event->key();
+ if(!modifier.contains(keyInt))
+ {
+ const Qt::KeyboardModifiers &modifiers = event->modifiers();
+ if(modifiers & Qt::ShiftModifier)
+ keyInt += Qt::SHIFT;
+ if(modifiers & Qt::ControlModifier)
+ keyInt += Qt::CTRL;
+ if(modifiers & Qt::AltModifier)
+ keyInt += Qt::ALT;
+ if(modifiers & Qt::MetaModifier)
+ keyInt += Qt::META;
+
+ const QKeySequence &keySeq = QKeySequence(keyInt);
+ keyBind->setText(keySeq.toString());
+
+ sendKeyBind(keySeq);
+ }
+}
+
diff --git a/plugins-alternative/PluginLoader/keybinding/OptionsWidget.h b/plugins-alternative/PluginLoader/keybinding/OptionsWidget.h new file mode 100644 index 0000000..e0d8e4b --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/OptionsWidget.h @@ -0,0 +1,31 @@ +#ifndef OptionsWidget_H
+#define OptionsWidget_H
+
+#include <QWidget>
+#include "KeyBind.h"
+
+namespace Ui {
+class OptionsWidget;
+}
+
+class OptionsWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit OptionsWidget(QWidget *parent = 0);
+ ~OptionsWidget();
+ void setKeyBind(const QKeySequence &keySequence);
+ void retranslate();
+private:
+ const QList<int> modifier;
+ Ui::OptionsWidget *ui;
+ KeyBind *keyBind;
+private slots:
+ void newKey(QKeyEvent * event);
+signals:
+ void sendKeyBind(const QKeySequence &keySequence);
+ void newKeyBind(QKeyEvent * event);
+};
+
+#endif // OptionsWidget_H
diff --git a/plugins-alternative/PluginLoader/keybinding/OptionsWidget.ui b/plugins-alternative/PluginLoader/keybinding/OptionsWidget.ui new file mode 100644 index 0000000..2bc3cbe --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/OptionsWidget.ui @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OptionsWidget</class>
+ <widget class="QWidget" name="OptionsWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>195</width>
+ <height>58</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout">
+ <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>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/plugins-alternative/PluginLoader/keybinding/PlatformMacro.h b/plugins-alternative/PluginLoader/keybinding/PlatformMacro.h new file mode 100644 index 0000000..f7586b0 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/PlatformMacro.h @@ -0,0 +1 @@ +#include "../../../PlatformMacro.h" diff --git a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition.h b/plugins-alternative/PluginLoader/keybinding/StructEnumDefinition.h index c1758f4..c1758f4 100644 --- a/plugins-alternative/CopyEngine/Rsync/StructEnumDefinition.h +++ b/plugins-alternative/PluginLoader/keybinding/StructEnumDefinition.h diff --git a/plugins-alternative/PluginLoader/keybinding/Variable.h b/plugins-alternative/PluginLoader/keybinding/Variable.h new file mode 100644 index 0000000..90e1557 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/Variable.h @@ -0,0 +1,16 @@ +/** \file Variable.h
+\brief Define the environment variable
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef VARIABLE_H
+#define VARIABLE_H
+
+//Un-comment this next line to put ultracopier plugin in debug mode
+#define ULTRACOPIER_PLUGIN_DEBUG
+//#define ULTRACOPIER_PLUGIN_ALL_IN_ONE
+
+#endif // VARIABLE_H
+
+
+
diff --git a/plugins-alternative/PluginLoader/keybinding/documentation.dox b/plugins-alternative/PluginLoader/keybinding/documentation.dox new file mode 100644 index 0000000..08ccc4a --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/documentation.dox @@ -0,0 +1,34 @@ +/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/ + +/* + This file contains NO source code, just some documentation for doxygen to + parse. +*/ + +/*! + \mainpage catchcopy-v0002 + + \section mainpage_overview Overview + + Is the plugin to load the catchcopy plugin into the windows file manager. Mostly it use the command: regsvr32 /s catchcopy32.dll/catchcopy64.dll\n + More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. + + \section mainpage_platforms Platforms + + Ultracopier might be usable in all environments where you find Qt 5.\n + Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0. + + \section mainpage_downloads Downloads + + You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ... + + \section mainpage_algorithm Requirements + + You can see the documentation on <a href="http://catchcopy.first-world.info/">Catchcopy web site</a>. It use catchcopy32.dll/catchcopy64.dll as explorer plugin for the windows's file manager. Need it into the plugins.\n + In function if Ultracopier is compiled by portable version, try load the dll by other way. + + \section license GPL Version 3 + The code source is under GPL3. + +*/ + diff --git a/plugins-alternative/PluginLoader/keybinding/informations.xml b/plugins-alternative/PluginLoader/keybinding/informations.xml new file mode 100644 index 0000000..142e9a5 --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/informations.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package> + <title xml:lang="en"><![CDATA[Plugin loader for catchcopy v0002]]></title><!-- english is required --> + <title xml:lang="fr"><![CDATA[Chargeur de plugin pour catchcopy v0002]]></title> + <!-- What kind of plugin this is --> + <category>PluginLoader</category> + <!-- Who wrote this plugin --> + <author><![CDATA[BRULE Herman, alpha_one_x86 (alpha_one_x86@first-world.info)]]></author> + <!-- URL of page or site for this plugin (may provide additional information, bug reports, feature requests). --> + <website xml:lang="en"><![CDATA[http://ultracopier.first-world.info/]]></website><!-- not required --> + <website xml:lang="fr"><![CDATA[http://ultracopier-fr.first-world.info/]]></website><!-- not required --> + <!-- the date-time format should be in timestamps format --> + <pubDate>1287496800</pubDate> + <!-- the architecture code of this plugin, found PlatformMacro.h into ultracopier source --> + <architecture>windows-x86</architecture> + <!-- Detailed description --> + <description xml:lang="en"><![CDATA[Plugin loader for catchcopy v0002. Allow to receive copy list from plugin/explorer compatible with catchcopy.]]></description> + <description xml:lang="fr"><![CDATA[Chargeur de plugin pour catchcopy v0002. Permet de recevoir un liste de copie venant d'un plugin/explorateur avec catchcopy.]]></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>1.2.3.6</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>keybinding</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-1.0 + ]]></dependencies> +</package>
\ No newline at end of file diff --git a/plugins-alternative/PluginLoader/keybinding/plugin.json b/plugins-alternative/PluginLoader/keybinding/plugin.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/plugin.json @@ -0,0 +1 @@ +{}
\ No newline at end of file diff --git a/plugins-alternative/PluginLoader/keybinding/pluginLoader.cpp b/plugins-alternative/PluginLoader/keybinding/pluginLoader.cpp new file mode 100644 index 0000000..387b09e --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/pluginLoader.cpp @@ -0,0 +1,61 @@ +/** \file pluginLoader.cpp +\brief Define the session plugin loader test +\author alpha_one_x86 */ + +#include "pluginLoader.h" +#include "PlatformMacro.h" + +#include <QFile> +#include <QDir> + +#ifndef Q_OS_UNIX +#error "Only for unix" +#endif + +KeyBindPlugin::KeyBindPlugin() +{ + connect(&optionsWidget,&OptionsWidget::sendKeyBind,this,&KeyBindPlugin::setKeyBind); +} + +KeyBindPlugin::~KeyBindPlugin() +{ +} + +void KeyBindPlugin::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,const bool &portableVersion) +{ + Q_UNUSED(options); + Q_UNUSED(writePath); + Q_UNUSED(pluginPath); + Q_UNUSED(portableVersion); + this->optionsEngine=options; + if(optionsEngine!=NULL) + { + QList<QPair<QString, QVariant> > KeysList; + KeysList.append(qMakePair(QStringLiteral("keySequence"),QString())); + optionsEngine->addOptionGroup(KeysList); + optionsWidget.setKeyBind(QKeySequence::fromString(optionsEngine->getOptionValue("keySequence").toString())); + } +} + +/// \brief to get the options widget, NULL if not have +QWidget * KeyBindPlugin::options() +{ + return &optionsWidget; +} + +void KeyBindPlugin::newLanguageLoaded() +{ + optionsWidget.retranslate(); +} + +/// \brief try enable/disable the catching +void KeyBindPlugin::setEnabled(const bool &needBeRegistred) +{ + Q_UNUSED(needBeRegistred); +} + +void KeyBindPlugin::setKeyBind(const QKeySequence &keySequence) +{ + optionsEngine->setOptionValue("keySequence",keySequence); +} + diff --git a/plugins-alternative/PluginLoader/keybinding/pluginLoader.h b/plugins-alternative/PluginLoader/keybinding/pluginLoader.h new file mode 100644 index 0000000..1361c0d --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/pluginLoader.h @@ -0,0 +1,47 @@ +/** \file pluginLoader.h +\brief Define the plugin loader +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef PLUGIN_LOADER_TEST_H +#define PLUGIN_LOADER_TEST_H + +#include <QObject> +#include <QMessageBox> + +#include <QString> +#include <QStringList> +#include <QProcess> +#include <QSet> +#include <QKeySequence> + +#include "../../../interface/PluginInterface_PluginLoader.h" +#include "Environment.h" +#include "OptionsWidget.h" + +/// \brief \brief Define the plugin loader +class KeyBindPlugin : public PluginInterface_PluginLoader +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.PluginLoader/1.0.0.0" FILE "plugin.json") + Q_INTERFACES(PluginInterface_PluginLoader) +public: + KeyBindPlugin(); + ~KeyBindPlugin(); + /// \brief try enable/disable the catching + void setEnabled(const bool &needBeRegistred); + /// \brief to set resources, writePath can be empty if read only mode + void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,const bool &portableVersion); + /// \brief to get the options widget, NULL if not have + QWidget * options(); +public slots: + /// \brief to reload the translation, because the new language have been loaded + void newLanguageLoaded(); +private: + OptionInterface * optionsEngine; + OptionsWidget optionsWidget; +private slots: + void setKeyBind(const QKeySequence &keySequence); +}; + +#endif // PLUGIN_LOADER_TEST_H diff --git a/plugins-alternative/PluginLoader/keybinding/pluginLoader.pro b/plugins-alternative/PluginLoader/keybinding/pluginLoader.pro new file mode 100644 index 0000000..ad5404b --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/pluginLoader.pro @@ -0,0 +1,50 @@ +CONFIG += c++11 +QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra" +mac:QMAKE_CXXFLAGS+="-stdlib=libc++" + +QT += widgets +TEMPLATE = lib +CONFIG += plugin +HEADERS = \ + StructEnumDefinition.h \ + pluginLoader.h \ + DebugEngineMacro.h \ + Environment.h \ + Variable.h \ + PlatformMacro.h \ + ../../../interface/PluginInterface_PluginLoader.h \ + OptionsWidget.h \ + KeyBind.h +SOURCES = \ + pluginLoader.cpp \ + OptionsWidget.cpp \ + KeyBind.cpp +TARGET = $$qtLibraryTarget(pluginLoader) +TRANSLATIONS += Languages/ar/translation.ts \ + Languages/de/translation.ts \ + Languages/el/translation.ts \ + Languages/en/translation.ts \ + Languages/es/translation.ts \ + Languages/fr/translation.ts \ + Languages/hi/translation.ts \ + Languages/hu/translation.ts \ + Languages/id/translation.ts \ + Languages/it/translation.ts \ + Languages/ja/translation.ts \ + Languages/ko/translation.ts \ + Languages/nl/translation.ts \ + Languages/no/translation.ts \ + Languages/pl/translation.ts \ + Languages/pt/translation.ts \ + Languages/ru/translation.ts \ + Languages/th/translation.ts \ + Languages/tr/translation.ts \ + Languages/zh/translation.ts + +FORMS += \ + OptionsWidget.ui + +CONFIG(static, static|shared) { +DEFINES += ULTRACOPIER_PLUGIN_ALL_IN_ONE +} + diff --git a/plugins-alternative/PluginLoader/keybinding/pluginLoader.pro.user.3.3-pre1 b/plugins-alternative/PluginLoader/keybinding/pluginLoader.pro.user.3.3-pre1 new file mode 100644 index 0000000..c45904e --- /dev/null +++ b/plugins-alternative/PluginLoader/keybinding/pluginLoader.pro.user.3.3-pre1 @@ -0,0 +1,266 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE QtCreatorProject> +<!-- Written by QtCreator 3.2.2, 2015-04-28T09:04:56. --> +<qtcreator> + <data> + <variable>EnvironmentId</variable> + <value type="QByteArray">{74ab603f-f657-4135-92cf-c93af71b2f91}</value> + </data> + <data> + <variable>ProjectExplorer.Project.ActiveTarget</variable> + <value type="int">0</value> + </data> + <data> + <variable>ProjectExplorer.Project.EditorSettings</variable> + <valuemap type="QVariantMap"> + <value type="bool" key="EditorConfiguration.AutoIndent">true</value> + <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> + <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> + <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> + <value type="QString" key="language">Cpp</value> + <valuemap type="QVariantMap" key="value"> + <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> + </valuemap> + </valuemap> + <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> + <value type="QString" key="language">QmlJS</value> + <valuemap type="QVariantMap" key="value"> + <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> + </valuemap> + </valuemap> + <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> + <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> + <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> + <value type="int" key="EditorConfiguration.IndentSize">4</value> + <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> + <value type="int" key="EditorConfiguration.MarginColumn">80</value> + <value type="bool" key="EditorConfiguration.MouseHiding">true</value> + <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> + <value type="int" key="EditorConfiguration.PaddingMode">1</value> + <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> + <value type="bool" key="EditorConfiguration.ShowMargin">false</value> + <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> + <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> + <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> + <value type="int" key="EditorConfiguration.TabSize">8</value> + <value type="bool" key="EditorConfiguration.UseGlobal">true</value> + <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> + <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> + <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> + <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> + <value type="bool" key="EditorConfiguration.inEntireDocument">true</value> + </valuemap> + </data> + <data> + <variable>ProjectExplorer.Project.PluginSettings</variable> + <valuemap type="QVariantMap"/> + </data> + <data> + <variable>ProjectExplorer.Project.Target.0</variable> + <valuemap type="QVariantMap"> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt5 5.4</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt5 5.4</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{f6cc43bb-0436-4d0e-8325-897ff43ef853}</value> + <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> + <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> + <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> + <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/user/Desktop/ultracopier/sources/plugins-alternative/PluginLoader/build-pluginLoader-Qt5_5_2-Debug</value> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> + <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> + <value type="QString">-w</value> + <value type="QString">-r</value> + </valuelist> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> + <value type="QString">-w</value> + <value type="QString">-r</value> + </valuelist> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> + <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> + <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> + <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> + <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> + <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/user/Desktop/ultracopier/sources/plugins-alternative/PluginLoader/build-pluginLoader-Qt5_5_2-Release</value> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> + <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> + <value type="QString">-w</value> + <value type="QString">-r</value> + </valuelist> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> + <value type="QString">-w</value> + <value type="QString">-r</value> + </valuelist> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> + <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> + <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> + <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> + <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> + <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> + <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">true</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> + <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> + <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> + <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> + <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> + <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> + <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> + <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> + <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> + <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> + <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> + <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> + <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> + <value type="int">0</value> + <value type="int">1</value> + <value type="int">2</value> + <value type="int">3</value> + <value type="int">4</value> + <value type="int">5</value> + <value type="int">6</value> + <value type="int">7</value> + <value type="int">8</value> + <value type="int">9</value> + <value type="int">10</value> + <value type="int">11</value> + <value type="int">12</value> + <value type="int">13</value> + <value type="int">14</value> + </valuelist> + <value type="int" key="PE.EnvironmentAspect.Base">2</value> + <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> + <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value> + <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value> + <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value> + <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> + <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> + <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> + <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> + <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> + <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> + <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> + </valuemap> + </data> + <data> + <variable>ProjectExplorer.Project.TargetCount</variable> + <value type="int">1</value> + </data> + <data> + <variable>ProjectExplorer.Project.Updater.FileVersion</variable> + <value type="int">16</value> + </data> + <data> + <variable>Version</variable> + <value type="int">16</value> + </data> +</qtcreator> diff --git a/plugins-alternative/Themes/Clean/Languages/ar/translation.ts b/plugins-alternative/Themes/Clean/Languages/ar/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/ar/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/ar/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/de/translation.ts b/plugins-alternative/Themes/Clean/Languages/de/translation.ts index 7ea1972..0a833ee 100644 --- a/plugins-alternative/Themes/Clean/Languages/de/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/de/translation.ts @@ -4,9 +4,9 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> - <translation>%1/%2 dateien, %3/%4</translation> + <translation>%1/%2 Dateien, %3/%4</translation> </message> </context> <context> @@ -18,8 +18,8 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> - <translation>auf der Lauer</translation> + <source>Waiting</source> + <translation>Warten</translation> </message> <message> <location filename="../../interface.ui" line="78"/> @@ -34,22 +34,22 @@ <message> <location filename="../../interface.ui" line="96"/> <source>Move file(s)</source> - <translation>Bewegen Sie Datei (en)</translation> + <translation>Datei (en) verschieben</translation> </message> <message> <location filename="../../interface.ui" line="105"/> <source>Move folder</source> - <translation>bewegen Sie Ordner</translation> + <translation>Ordner verschieben</translation> </message> <message> <location filename="../../interface.ui" line="114"/> <source>Copy file(s)</source> - <translation>Kopieren Sie die Datei (en)</translation> + <translation>Datei (en) kopieren</translation> </message> <message> <location filename="../../interface.ui" line="123"/> <source>Copy folder</source> - <translation>kopieren Sie das Verzeichnis</translation> + <translation>Ordner kopieren</translation> </message> </context> </TS> diff --git a/plugins-alternative/Themes/Clean/Languages/el/translation.ts b/plugins-alternative/Themes/Clean/Languages/el/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/el/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/el/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/en/translation.ts b/plugins-alternative/Themes/Clean/Languages/en/translation.ts new file mode 100644 index 0000000..d13892c --- /dev/null +++ b/plugins-alternative/Themes/Clean/Languages/en/translation.ts @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="en"> +<context> + <name>InterfacePlugin</name> + <message> + <location filename="../../interface.cpp" line="142"/> + <source>%1/%2 files, %3/%4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="32"/> + <source>Action:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="44"/> + <source>Waiting</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="78"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="87"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="96"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="105"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="114"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="123"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Clean/Languages/es/translation.ts b/plugins-alternative/Themes/Clean/Languages/es/translation.ts index 70b8246..8c54e8a 100644 --- a/plugins-alternative/Themes/Clean/Languages/es/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/es/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation>%1/%2 archivos, %3/%4</translation> </message> @@ -17,9 +17,13 @@ <translation>Acción:</translation> </message> <message> - <location filename="../../interface.ui" line="44"/> <source>In wait</source> - <translation>En espera</translation> + <translation type="obsolete">En espera</translation> + </message> + <message> + <location filename="../../interface.ui" line="44"/> + <source>Waiting</source> + <translation type="unfinished"></translation> </message> <message> <location filename="../../interface.ui" line="78"/> diff --git a/plugins-alternative/Themes/Clean/Languages/fr/translation.ts b/plugins-alternative/Themes/Clean/Languages/fr/translation.ts index 51fd57f..bdc0621 100644 --- a/plugins-alternative/Themes/Clean/Languages/fr/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/fr/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation>%1/%2 fichiers, %3/%4</translation> </message> @@ -17,9 +17,8 @@ <translation>Action:</translation> </message> <message> - <location filename="../../interface.ui" line="44"/> <source>In wait</source> - <translation>En attente</translation> + <translation type="obsolete">En attente</translation> </message> <message> <location filename="../../interface.ui" line="96"/> @@ -47,6 +46,11 @@ <translation>Ajouter un dossier</translation> </message> <message> + <location filename="../../interface.ui" line="44"/> + <source>Waiting</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../../interface.ui" line="78"/> <source>Add file</source> <translation>Ajout de fichier</translation> diff --git a/plugins-alternative/Themes/Clean/Languages/hi/translation.ts b/plugins-alternative/Themes/Clean/Languages/hi/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/hi/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/hi/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/hu/translation.ts b/plugins-alternative/Themes/Clean/Languages/hu/translation.ts new file mode 100644 index 0000000..e5a3bcc --- /dev/null +++ b/plugins-alternative/Themes/Clean/Languages/hu/translation.ts @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="hu"> +<context> + <name>InterfacePlugin</name> + <message> + <location filename="../../interface.cpp" line="142"/> + <source>%1/%2 files, %3/%4</source> + <translation>%1/%2 fájl, %3/%4</translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="32"/> + <source>Action:</source> + <translation>Művelet:</translation> + </message> + <message> + <location filename="../../interface.ui" line="44"/> + <source>Waiting</source> + <translation>Várakozás</translation> + </message> + <message> + <location filename="../../interface.ui" line="78"/> + <source>Add file</source> + <translation>Fájl hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="87"/> + <source>Add folder</source> + <translation>Mappa hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="96"/> + <source>Move file(s)</source> + <translation>Fájl(ok) mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="105"/> + <source>Move folder</source> + <translation>Mappa mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="114"/> + <source>Copy file(s)</source> + <translation>Fájl(ok) másolása</translation> + </message> + <message> + <location filename="../../interface.ui" line="123"/> + <source>Copy folder</source> + <translation>Mappa másolása</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Clean/Languages/id/translation.ts b/plugins-alternative/Themes/Clean/Languages/id/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/id/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/id/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/it/translation.ts b/plugins-alternative/Themes/Clean/Languages/it/translation.ts index b44bd5f..b94ac7b 100644 --- a/plugins-alternative/Themes/Clean/Languages/it/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/it/translation.ts @@ -4,9 +4,9 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> - <translation></translation> + <translation>%1/%2 file, %3/%4</translation> </message> </context> <context> @@ -17,9 +17,13 @@ <translation>Azione:</translation> </message> <message> - <location filename="../../interface.ui" line="44"/> <source>In wait</source> - <translation>In attesa</translation> + <translation type="obsolete">In attesa</translation> + </message> + <message> + <location filename="../../interface.ui" line="44"/> + <source>Waiting</source> + <translation type="unfinished"></translation> </message> <message> <location filename="../../interface.ui" line="78"/> @@ -34,22 +38,22 @@ <message> <location filename="../../interface.ui" line="96"/> <source>Move file(s)</source> - <translation>Spostare file(s)</translation> + <translation>Sposta file</translation> </message> <message> <location filename="../../interface.ui" line="105"/> <source>Move folder</source> - <translation>Spostare la cartella</translation> + <translation>Sposta la cartella</translation> </message> <message> <location filename="../../interface.ui" line="114"/> <source>Copy file(s)</source> - <translation>Copiare il file (s)</translation> + <translation>Copia file</translation> </message> <message> <location filename="../../interface.ui" line="123"/> <source>Copy folder</source> - <translation>Copia la cartella</translation> + <translation>Copia cartella</translation> </message> </context> </TS> diff --git a/plugins-alternative/Themes/Clean/Languages/ja/translation.ts b/plugins-alternative/Themes/Clean/Languages/ja/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/ja/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/ja/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/ko/translation.ts b/plugins-alternative/Themes/Clean/Languages/ko/translation.ts index 41627de..95d2138 100644 --- a/plugins-alternative/Themes/Clean/Languages/ko/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/ko/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="+145"/> + <location filename="../../interface.cpp" line="+142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished">%1/%2 파일, %3/%4</translation> </message> @@ -17,9 +17,13 @@ <translation type="unfinished">실행:</translation> </message> <message> - <location line="+12"/> <source>In wait</source> - <translation type="unfinished">대기중</translation> + <translation type="obsolete">대기중</translation> + </message> + <message> + <location line="+12"/> + <source>Waiting</source> + <translation type="unfinished"></translation> </message> <message> <location line="+34"/> diff --git a/plugins-alternative/Themes/Clean/Languages/nl/translation.ts b/plugins-alternative/Themes/Clean/Languages/nl/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/nl/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/nl/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/no/translation.ts b/plugins-alternative/Themes/Clean/Languages/no/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/no/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/no/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/pl/translation.ts b/plugins-alternative/Themes/Clean/Languages/pl/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/pl/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/pl/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/ru/translation.ts b/plugins-alternative/Themes/Clean/Languages/ru/translation.ts index 5f83874..36798e7 100644 --- a/plugins-alternative/Themes/Clean/Languages/ru/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/ru/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation>%1/%2 файлы, %3/%4</translation> </message> @@ -17,9 +17,13 @@ <translation>Действие:</translation> </message> <message> - <location filename="../../interface.ui" line="44"/> <source>In wait</source> - <translation>В ожидании</translation> + <translation type="obsolete">В ожидании</translation> + </message> + <message> + <location filename="../../interface.ui" line="44"/> + <source>Waiting</source> + <translation type="unfinished"></translation> </message> <message> <location filename="../../interface.ui" line="78"/> diff --git a/plugins-alternative/Themes/Clean/Languages/th/translation.ts b/plugins-alternative/Themes/Clean/Languages/th/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/th/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/th/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/tr/translation.ts b/plugins-alternative/Themes/Clean/Languages/tr/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/tr/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/tr/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/Languages/zh/translation.ts b/plugins-alternative/Themes/Clean/Languages/zh/translation.ts index 81df74e..54104e3 100644 --- a/plugins-alternative/Themes/Clean/Languages/zh/translation.ts +++ b/plugins-alternative/Themes/Clean/Languages/zh/translation.ts @@ -4,7 +4,7 @@ <context> <name>InterfacePlugin</name> <message> - <location filename="../../interface.cpp" line="145"/> + <location filename="../../interface.cpp" line="142"/> <source>%1/%2 files, %3/%4</source> <translation type="unfinished"></translation> </message> @@ -18,7 +18,7 @@ </message> <message> <location filename="../../interface.ui" line="44"/> - <source>In wait</source> + <source>Waiting</source> <translation type="unfinished"></translation> </message> <message> diff --git a/plugins-alternative/Themes/Clean/documentation.dox b/plugins-alternative/Themes/Clean/documentation.dox index 56e5331..3f7bc88 100755..100644 --- a/plugins-alternative/Themes/Clean/documentation.dox +++ b/plugins-alternative/Themes/Clean/documentation.dox @@ -11,12 +11,12 @@ \section mainpage_overview Overview It's interface to have minimal interface for Ultracopier.\n - More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier 0.3 project as alternative plugin. + More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier project as alternative plugin. \section mainpage_platforms Platforms - This plugin might be usable in all environments where you find Qt 4.\n - To be compatible with the official Ultracopier plugins, you need compil it with Gcc, Qt4.8, and same env as Ultracopier have been compiled, see the documentation. + Ultracopier might be usable in all environments where you find Qt 5.\n + Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0. \section mainpage_downloads Downloads diff --git a/plugins-alternative/Themes/Clean/factory.cpp b/plugins-alternative/Themes/Clean/factory.cpp index 2b8d109..6acbe3a 100644 --- a/plugins-alternative/Themes/Clean/factory.cpp +++ b/plugins-alternative/Themes/Clean/factory.cpp @@ -1,70 +1,65 @@ /** \file factory.cpp \brief Define the factory core \author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QtCore> +*/ #include "factory.h" -PluginInterface_Themes * Factory::getInstance() +PluginInterface_Themes * ThemesFactory::getInstance() { - PluginInterface_Themes * newInterface=new InterfacePlugin(facilityEngine); - connect(this,SIGNAL(reloadLanguage()),newInterface,SLOT(newLanguageLoaded())); - return newInterface; + InterfacePlugin * newInterface=new InterfacePlugin(facilityEngine); + connect(this,&ThemesFactory::reloadLanguage,newInterface,&InterfacePlugin::newLanguageLoaded); + return newInterface; } -void Factory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion) +void ThemesFactory::setResources(OptionInterface * options, const QString &writePath, const QString &pluginPath, FacilityInterface * facilityInterface, const bool &portableVersion) { - Q_UNUSED(options) - Q_UNUSED(writePath) - Q_UNUSED(pluginPath) - this->facilityEngine=facilityEngine; - Q_UNUSED(portableVersion) + Q_UNUSED(options) + Q_UNUSED(writePath) + Q_UNUSED(pluginPath) + this->facilityEngine=facilityInterface; + Q_UNUSED(portableVersion) } -QWidget * Factory::options() +QWidget * ThemesFactory::options() { - return NULL; + return NULL; } -QIcon Factory::getIcon(const QString &fileName) +QIcon ThemesFactory::getIcon(const QString &fileName) const { - if(fileName=="SystemTrayIcon/exit.png") - { - QIcon tempIcon=QIcon::fromTheme("application-exit"); - if(!tempIcon.isNull()) - return tempIcon; - } - if(fileName=="SystemTrayIcon/add.png") - { - QIcon tempIcon=QIcon::fromTheme("list-add"); - if(!tempIcon.isNull()) - return tempIcon; - } - if(fileName=="SystemTrayIcon/informations.png") - { - QIcon tempIcon=QIcon::fromTheme("help-about"); - if(!tempIcon.isNull()) - return tempIcon; - } - if(fileName=="SystemTrayIcon/options.png") - { - QIcon tempIcon=QIcon::fromTheme("applications-system"); - if(!tempIcon.isNull()) - return tempIcon; - } - return QIcon(":/resources/"+fileName); + if(fileName=="SystemTrayIcon/exit.png") + { + QIcon tempIcon=QIcon::fromTheme("application-exit"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/add.png") + { + QIcon tempIcon=QIcon::fromTheme("list-add"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/informations.png") + { + QIcon tempIcon=QIcon::fromTheme("help-about"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/options.png") + { + QIcon tempIcon=QIcon::fromTheme("applications-system"); + if(!tempIcon.isNull()) + return tempIcon; + } + return QIcon(":/Themes/Clean/resources/"+fileName); } -void Factory::resetOptions() +void ThemesFactory::resetOptions() { } -void Factory::newLanguageLoaded() +void ThemesFactory::newLanguageLoaded() { - emit reloadLanguage(); + emit reloadLanguage(); } - -Q_EXPORT_PLUGIN2(interface, Factory); diff --git a/plugins-alternative/Themes/Clean/factory.h b/plugins-alternative/Themes/Clean/factory.h index 2a9c0ef..f9b1ee2 100644 --- a/plugins-alternative/Themes/Clean/factory.h +++ b/plugins-alternative/Themes/Clean/factory.h @@ -1,8 +1,7 @@ /** \file factory.h \brief Define the factory, to create instance of the interface \author alpha_one_x86 -\version 0.3 -\date 2010 */ +\licence GPL3, see the file COPYING */ #ifndef FACTORY_H #define FACTORY_H @@ -14,26 +13,27 @@ #include "../../../interface/PluginInterface_Themes.h" /// \brief Define the factory, to create instance of the interface -class Factory : public PluginInterface_ThemesFactory +class ThemesFactory : public PluginInterface_ThemesFactory { - Q_OBJECT - Q_INTERFACES(PluginInterface_ThemesFactory) - public: - /// \brief to return the instance of the copy engine - PluginInterface_Themes * getInstance(); - /// \brief set the resources, to store options, to have facilityInterface - void setResources(OptionInterface * optionsEngine,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion); - /// \brief to get the default options widget - QWidget * options(); - /// \brief to get a resource icon - QIcon getIcon(const QString &fileName); - signals: - void reloadLanguage(); - public slots: - void resetOptions(); - void newLanguageLoaded(); - private: - FacilityInterface * facilityEngine; + Q_OBJECT + Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json") + Q_INTERFACES(PluginInterface_ThemesFactory) + public: + /// \brief to return the instance of the copy engine + PluginInterface_Themes * getInstance(); + /// \brief set the resources, to store options, to have facilityInterface + void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion); + /// \brief to get the default options widget + QWidget * options(); + /// \brief to get a resource icon + QIcon getIcon(const QString &fileName) const; + signals: + void reloadLanguage(); + public slots: + void resetOptions(); + void newLanguageLoaded(); + private: + FacilityInterface * facilityEngine; }; #endif // FACTORY_H diff --git a/plugins-alternative/Themes/Clean/informations.xml b/plugins-alternative/Themes/Clean/informations.xml index 8e076a4..3b49a98 100644 --- a/plugins-alternative/Themes/Clean/informations.xml +++ b/plugins-alternative/Themes/Clean/informations.xml @@ -17,11 +17,10 @@ <description xml:lang="en"><![CDATA[Clean style for Ultracopier]]></description> <description xml:lang="fr"><![CDATA[Style Clean pour Ultracopier]]></description> <!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number --> - <version>0.3.1.0</version> + <version>1.2.3.6</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>Clean</name> <!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. --> <dependencies><![CDATA[ - >=ultracopier-0.3.1.0 ]]></dependencies> </package>
\ No newline at end of file diff --git a/plugins-alternative/Themes/Clean/interface.cpp b/plugins-alternative/Themes/Clean/interface.cpp index 6d6c4b1..3f2cd2a 100644 --- a/plugins-alternative/Themes/Clean/interface.cpp +++ b/plugins-alternative/Themes/Clean/interface.cpp @@ -1,99 +1,96 @@ /** \file interface.cpp \brief Define the interface core \author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QtCore> +*/ #include "interface.h" #include "ui_interface.h" InterfacePlugin::InterfacePlugin(FacilityInterface * facilityEngine) : - ui(new Ui::interface()) -{ - ui->setupUi(this); - currentFile = 0; - totalFile = 0; - currentSize = 0; - totalSize = 0; - modeIsForced = false; - haveStarted = false; - this->facilityEngine = facilityEngine; - this->show(); - menu=new QMenu(this); - ui->toolButton->setMenu(menu); - updateModeAndType(); - - connect(ui->actionAddFile,SIGNAL(triggered()),this,SLOT(forcedModeAddFile())); - connect(ui->actionAddFileToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToCopy())); - connect(ui->actionAddFileToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToMove())); - connect(ui->actionAddFolderToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToCopy())); - connect(ui->actionAddFolderToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToMove())); - connect(ui->actionAddFolder,SIGNAL(triggered()),this,SLOT(forcedModeAddFolder())); + ui(new Ui::interface()) +{ + ui->setupUi(this); + currentFile = 0; + totalFile = 0; + currentSize = 0; + totalSize = 0; + modeIsForced = false; + haveStarted = false; + this->facilityEngine = facilityEngine; + menu=new QMenu(this); + ui->toolButton->setMenu(menu); + updateModeAndType(); + + connect(ui->actionAddFile,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFile); + connect(ui->actionAddFileToCopy,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFileToCopy); + connect(ui->actionAddFileToMove,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFileToMove); + connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFolderToCopy); + connect(ui->actionAddFolderToMove,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFolderToMove); + connect(ui->actionAddFolder,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFolder); + show(); } InterfacePlugin::~InterfacePlugin() { - delete menu; + delete menu; } void InterfacePlugin::forcedModeAddFile() { - emit userAddFile(mode); + emit userAddFile(mode); } void InterfacePlugin::forcedModeAddFolder() { - emit userAddFolder(mode); + emit userAddFolder(mode); } void InterfacePlugin::forcedModeAddFileToCopy() { - emit userAddFile(Copy); + emit userAddFile(Ultracopier::Copy); } void InterfacePlugin::forcedModeAddFolderToCopy() { - emit userAddFolder(Copy); + emit userAddFolder(Ultracopier::Copy); } void InterfacePlugin::forcedModeAddFileToMove() { - emit userAddFile(Move); + emit userAddFile(Ultracopier::Move); } void InterfacePlugin::forcedModeAddFolderToMove() { - emit userAddFolder(Move); + emit userAddFolder(Ultracopier::Move); } void InterfacePlugin::updateModeAndType() { - menu->clear(); - if(modeIsForced) - { - menu->addAction(ui->actionAddFile); - if(type==FileAndFolder) - menu->addAction(ui->actionAddFolder); - } - else - { - menu->addAction(ui->actionAddFileToCopy); - menu->addAction(ui->actionAddFileToMove); - if(type==FileAndFolder) - { - menu->addAction(ui->actionAddFolderToCopy); - menu->addAction(ui->actionAddFolderToMove); - } - } + menu->clear(); + if(modeIsForced) + { + menu->addAction(ui->actionAddFile); + if(type==Ultracopier::FileAndFolder) + menu->addAction(ui->actionAddFolder); + } + else + { + menu->addAction(ui->actionAddFileToCopy); + menu->addAction(ui->actionAddFileToMove); + if(type==Ultracopier::FileAndFolder) + { + menu->addAction(ui->actionAddFolderToCopy); + menu->addAction(ui->actionAddFolderToMove); + } + } } void InterfacePlugin::closeEvent(QCloseEvent *event) { - event->ignore(); - this->hide(); - emit cancel(); + event->ignore(); + this->hide(); + emit cancel(); } void InterfacePlugin::detectedSpeed(const quint64 &speed) @@ -106,162 +103,170 @@ QWidget * InterfacePlugin::getOptionsEngineWidget() return NULL; } -void InterfacePlugin::getOptionsEngineEnabled(bool isEnabled) +void InterfacePlugin::getOptionsEngineEnabled(const bool &isEnabled) { Q_UNUSED(isEnabled) } -void InterfacePlugin::setCopyType(CopyType type) +void InterfacePlugin::setCopyType(const Ultracopier::CopyType &type) { - this->type=type; - updateModeAndType(); + this->type=type; + updateModeAndType(); } -void InterfacePlugin::forceCopyMode(CopyMode mode) +void InterfacePlugin::forceCopyMode(const Ultracopier::CopyMode &mode) { - modeIsForced=true; - this->mode=mode; - updateModeAndType(); + modeIsForced=true; + this->mode=mode; + updateModeAndType(); } void InterfacePlugin::updateTitle() { - QString actionString; - switch(action) - { - case Listing: - actionString=facilityEngine->translateText("Listing"); - break; - case Copying: - actionString=facilityEngine->translateText("Copying"); - break; - case CopyingAndListing: - actionString=facilityEngine->translateText("Listing and copying"); - break; - case Idle: - actionString="Ultracopier"; - break; - } - this->setWindowTitle(actionString+" - "+tr("%1/%2 files, %3/%4").arg(currentFile).arg(totalFile).arg(currentSize).arg(totalSize)); -} - -void InterfacePlugin::actionInProgess(EngineActionInProgress action) -{ - this->action=action; - switch(action) - { - case Copying: - case CopyingAndListing: - ui->progressBar->setMaximum(65535); - ui->progressBar->setMinimum(0); - break; - case Listing: - ui->progressBar->setMaximum(0); - ui->progressBar->setMinimum(0); - break; - case Idle: - if(haveStarted) - emit cancel(); - break; - default: - break; - } - switch(action) - { - case Copying: - case CopyingAndListing: - haveStarted=true; - break; - default: - break; - } -} - -void InterfacePlugin::newTransferStart(const ItemOfCopyList &item) -{ - ui->text->setText(item.sourceFullPath); + QString actionString; + switch(action) + { + case Ultracopier::Listing: + actionString=facilityEngine->translateText("Listing"); + break; + case Ultracopier::Copying: + actionString=facilityEngine->translateText("Copying"); + break; + case Ultracopier::CopyingAndListing: + actionString=facilityEngine->translateText("Listing and copying"); + break; + case Ultracopier::Idle: + actionString="Ultracopier"; + break; + } + this->setWindowTitle(actionString+" - "+tr("%1/%2 files, %3/%4").arg(currentFile).arg(totalFile).arg(currentSize).arg(totalSize)); +} + +void InterfacePlugin::actionInProgess(const Ultracopier::EngineActionInProgress &action) +{ + this->action=action; + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + ui->progressBar->setMaximum(65535); + ui->progressBar->setMinimum(0); + break; + case Ultracopier::Listing: + ui->progressBar->setMaximum(0); + ui->progressBar->setMinimum(0); + break; + case Ultracopier::Idle: + if(haveStarted) + emit cancel(); + break; + default: + break; + } + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + haveStarted=true; + break; + default: + break; + } +} + +void InterfacePlugin::newTransferStart(const Ultracopier::ItemOfCopyList &item) +{ + ui->text->setText(item.sourceFullPath); } void InterfacePlugin::newTransferStop(const quint64 &id) { - Q_UNUSED(id) + Q_UNUSED(id) } void InterfacePlugin::newFolderListing(const QString &path) { - if(action==Listing) - ui->text->setText(path); + if(action==Ultracopier::Listing) + ui->text->setText(path); } void InterfacePlugin::remainingTime(const int &remainingSeconds) { - Q_UNUSED(remainingSeconds) + Q_UNUSED(remainingSeconds) } void InterfacePlugin::newCollisionAction(const QString &action) { - Q_UNUSED(action) + Q_UNUSED(action) } void InterfacePlugin::newErrorAction(const QString &action) { - Q_UNUSED(action) + Q_UNUSED(action) } void InterfacePlugin::errorDetected() { } -void InterfacePlugin::setTransferListOperation(TransferListOperation transferListOperation) +/// \brief new error +void InterfacePlugin::errorToRetry(const QString &source,const QString &destination,const QString &error) +{ + Q_UNUSED(source); + Q_UNUSED(destination); + Q_UNUSED(error); +} + +void InterfacePlugin::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation) { - Q_UNUSED(transferListOperation) + Q_UNUSED(transferListOperation) } //speed limitation bool InterfacePlugin::setSpeedLimitation(const qint64 &speedLimitation) { - Q_UNUSED(speedLimitation) + Q_UNUSED(speedLimitation) return false; } //get information about the copy void InterfacePlugin::setGeneralProgression(const quint64 ¤t,const quint64 &total) { - ui->progressBar->setValue(((double)current/total)*65535); + ui->progressBar->setValue(((double)current/total)*65535); } void InterfacePlugin::setCollisionAction(const QList<QPair<QString,QString> > &list) { - Q_UNUSED(list) + Q_UNUSED(list) } void InterfacePlugin::setErrorAction(const QList<QPair<QString,QString> > &list) { - Q_UNUSED(list) + Q_UNUSED(list) } //edit the transfer list -void InterfacePlugin::getActionOnList(const QList<returnActionOnCopyList> &returnActions) +void InterfacePlugin::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions) { - Q_UNUSED(returnActions) + Q_UNUSED(returnActions) } void InterfacePlugin::haveExternalOrder() { - ui->toolButton->hide(); + ui->toolButton->hide(); } -void InterfacePlugin::isInPause(bool isInPause) +void InterfacePlugin::isInPause(const bool &isInPause) { - //resume in auto the pause - if(isInPause) - emit resume(); + //resume in auto the pause + if(isInPause) + emit resume(); } void InterfacePlugin::newLanguageLoaded() { - ui->retranslateUi(this); - updateTitle(); + ui->retranslateUi(this); + updateTitle(); } /* @@ -269,147 +274,153 @@ void InterfacePlugin::newLanguageLoaded() Return[1]: totalSize Return[2]: currentFile */ -void InterfacePlugin::synchronizeItems(const QList<returnActionOnCopyList>& returnActions) -{ - loop_size=returnActions.size(); - index_for_loop=0; - while(index_for_loop<loop_size) - { - const returnActionOnCopyList& action=returnActions.at(index_for_loop); - switch(action.type) - { - case AddingItem: - { - totalFile++; - totalSize+=action.addAction.size; - } - break; - case RemoveItem: - currentFile++; - break; - case PreOperation: - { - ItemOfCopyListWithMoreInformations tempItem; - tempItem.currentProgression=0; - tempItem.generalData=action.addAction; - totalFile+=action.addAction.size; - InternalRunningOperation << tempItem; - } - break; - case Transfer: - { - sub_index_for_loop=0; - sub_loop_size=InternalRunningOperation.size(); - while(sub_index_for_loop<sub_loop_size) - { - if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id) - { - InternalRunningOperation[sub_index_for_loop].actionType=action.type; - break; - } - sub_index_for_loop++; - } - } - break; - case PostOperation: - { - sub_index_for_loop=0; - sub_loop_size=InternalRunningOperation.size(); - while(sub_index_for_loop<sub_loop_size) - { - if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id) - { - InternalRunningOperation.removeAt(sub_index_for_loop); - break; - } - sub_index_for_loop++; - } - } - break; - case CustomOperation: - { - bool custom_with_progression=(action.addAction.size==1); - sub_index_for_loop=0; - sub_loop_size=InternalRunningOperation.size(); - while(sub_index_for_loop<sub_loop_size) - { - if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id) - { - InternalRunningOperation[sub_index_for_loop].actionType=action.type; - InternalRunningOperation[sub_index_for_loop].custom_with_progression=custom_with_progression; - InternalRunningOperation[sub_index_for_loop].currentProgression=0; - break; - } - sub_index_for_loop++; - } - } - break; - default: - //unknow code, ignore it - break; - } - index_for_loop++; - } -} - -void InterfacePlugin::setFileProgression(const QList<ProgressionItem> &progressionList) -{ - loop_size=InternalRunningOperation.size(); - sub_loop_size=progressionList.size(); - index_for_loop=0; - while(index_for_loop<loop_size) - { - sub_index_for_loop=0; - while(sub_index_for_loop<sub_loop_size) - { - if(progressionList.at(sub_index_for_loop).id==InternalRunningOperation.at(index_for_loop).generalData.id) - { - InternalRunningOperation[index_for_loop].generalData.size=progressionList.at(sub_index_for_loop).total; - InternalRunningOperation[index_for_loop].currentProgression=progressionList.at(sub_index_for_loop).current; - break; - } - sub_index_for_loop++; - } - index_for_loop++; - } +void InterfacePlugin::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions) +{ + loop_size=returnActions.size(); + index_for_loop=0; + while(index_for_loop<loop_size) + { + const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop); + switch(action.type) + { + case Ultracopier::AddingItem: + { + totalFile++; + totalSize+=action.addAction.size; + } + break; + case Ultracopier::RemoveItem: + currentFile++; + break; + case Ultracopier::PreOperation: + { + ItemOfCopyListWithMoreInformations tempItem; + tempItem.currentProgression=0; + tempItem.generalData=action.addAction; + currentSize+=action.addAction.size; + InternalRunningOperation << tempItem; + } + break; + case Ultracopier::Transfer: + { + sub_index_for_loop=0; + sub_loop_size=InternalRunningOperation.size(); + while(sub_index_for_loop<sub_loop_size) + { + if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id) + { + InternalRunningOperation[sub_index_for_loop].actionType=action.type; + break; + } + sub_index_for_loop++; + } + } + break; + case Ultracopier::PostOperation: + { + sub_index_for_loop=0; + sub_loop_size=InternalRunningOperation.size(); + while(sub_index_for_loop<sub_loop_size) + { + if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id) + { + InternalRunningOperation.removeAt(sub_index_for_loop); + break; + } + sub_index_for_loop++; + } + } + break; + case Ultracopier::CustomOperation: + { + bool custom_with_progression=(action.addAction.size==1); + sub_index_for_loop=0; + sub_loop_size=InternalRunningOperation.size(); + while(sub_index_for_loop<sub_loop_size) + { + if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id) + { + InternalRunningOperation[sub_index_for_loop].actionType=action.type; + InternalRunningOperation[sub_index_for_loop].custom_with_progression=custom_with_progression; + InternalRunningOperation[sub_index_for_loop].currentProgression=0; + break; + } + sub_index_for_loop++; + } + } + break; + default: + //unknow code, ignore it + break; + } + index_for_loop++; + } +} + +/** \brief support speed limitation */ +void InterfacePlugin::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool) +{ + Q_UNUSED(supportSpeedLimitationBool); +} + +void InterfacePlugin::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList) +{ + loop_size=InternalRunningOperation.size(); + sub_loop_size=progressionList.size(); + index_for_loop=0; + while(index_for_loop<loop_size) + { + sub_index_for_loop=0; + while(sub_index_for_loop<sub_loop_size) + { + if(progressionList.at(sub_index_for_loop).id==InternalRunningOperation.at(index_for_loop).generalData.id) + { + InternalRunningOperation[index_for_loop].generalData.size=progressionList.at(sub_index_for_loop).total; + InternalRunningOperation[index_for_loop].currentProgression=(progressionList.at(sub_index_for_loop).currentRead+progressionList.at(sub_index_for_loop).currentWrite)/2; + break; + } + sub_index_for_loop++; + } + index_for_loop++; + } } InterfacePlugin::currentTransfertItem InterfacePlugin::getCurrentTransfertItem() { - currentTransfertItem returnItem; - returnItem.haveItem=InternalRunningOperation.size()>0; - if(returnItem.haveItem) - { - const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first(); - returnItem.from=itemTransfer.generalData.sourceFullPath; - returnItem.to=itemTransfer.generalData.destinationFullPath; - returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); - switch(itemTransfer.actionType) - { - case CustomOperation: - if(!itemTransfer.custom_with_progression) - returnItem.progressBar_file=0; - else - { - if(itemTransfer.generalData.size>0) - returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; - else - returnItem.progressBar_file=0; - } - break; - case Transfer: - if(itemTransfer.generalData.size>0) - returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; - else - returnItem.progressBar_file=0; - break; - case PostOperation: - returnItem.progressBar_file=65535; - break; - default: - returnItem.progressBar_file=0; - } - } - return returnItem; + currentTransfertItem returnItem; + returnItem.haveItem=InternalRunningOperation.size()>0; + if(returnItem.haveItem) + { + const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first(); + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_file=0; + else + { + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=0; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=0; + break; + case Ultracopier::PostOperation: + returnItem.progressBar_file=65535; + break; + default: + returnItem.progressBar_file=0; + } + } + return returnItem; } diff --git a/plugins-alternative/Themes/Clean/interface.h b/plugins-alternative/Themes/Clean/interface.h index b7ab57f..e5b5c36 100644 --- a/plugins-alternative/Themes/Clean/interface.h +++ b/plugins-alternative/Themes/Clean/interface.h @@ -1,8 +1,7 @@ /** \file interface.h \brief Define the interface \author alpha_one_x86 -\version 0.3 -\date 2010 */ +\licence GPL3, see the file COPYING */ #ifndef INTERFACE_TEST_H #define INTERFACE_TEST_H @@ -15,145 +14,128 @@ #include "../../../interface/PluginInterface_Themes.h" namespace Ui { - class interface; + class interface; } /// \brief Define the interface class InterfacePlugin : public PluginInterface_Themes { - Q_OBJECT + Q_OBJECT public slots: - //send information about the copy - /// \brief to set the action in progress - void actionInProgess(EngineActionInProgress); - /// \brief new transfer have started - void newTransferStart(const ItemOfCopyList &item); - /** \brief one transfer have been stopped - * is stopped, example: because error have occurred, and try later, don't remove the item! */ - void newTransferStop(const quint64 &id); - /// \brief the new folder is listing - void newFolderListing(const QString &path); - /** \brief show the detected speed - * in byte per seconds */ - void detectedSpeed(const quint64 &speed); - /** \brief show the remaining time - * time in seconds */ - void remainingTime(const int &remainingSeconds); - /// \brief set the current collision action - void newCollisionAction(const QString &action); - /// \brief set the current error action - void newErrorAction(const QString &action); - /// \brief set one error is detected - void errorDetected(); - //speed limitation - /** \brief the max speed used - * in byte per seconds, -1 if not able, 0 if disabled */ - bool setSpeedLimitation(const qint64 &speedLimitation); - //set the translate - void newLanguageLoaded(); - void synchronizeItems(const QList<returnActionOnCopyList>& returnActions); + //send information about the copy + /// \brief to set the action in progress + void actionInProgess(const Ultracopier::EngineActionInProgress&); + /// \brief new transfer have started + void newTransferStart(const Ultracopier::ItemOfCopyList &item); + /** \brief one transfer have been stopped + * is stopped, example: because error have occurred, and try later, don't remove the item! */ + void newTransferStop(const quint64 &id); + /// \brief the new folder is listing + void newFolderListing(const QString &path); + /** \brief show the detected speed + * in byte per seconds */ + void detectedSpeed(const quint64 &speed); + /** \brief show the remaining time + * time in seconds */ + void remainingTime(const int &remainingSeconds); + /// \brief set the current collision action + void newCollisionAction(const QString &action); + /// \brief set the current error action + void newErrorAction(const QString &action); + /// \brief set one error is detected + void errorDetected(); + /// \brief new error + void errorToRetry(const QString &source,const QString &destination,const QString &error); + //speed limitation + /** \brief the max speed used + * in byte per seconds, -1 if not able, 0 if disabled */ + bool setSpeedLimitation(const qint64 &speedLimitation); + //set the translate + void newLanguageLoaded(); + void synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions); + /** \brief support speed limitation */ + void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool); public: - /// \brief the transfer item with progression - struct ItemOfCopyListWithMoreInformations - { - quint64 currentProgression; - ItemOfCopyList generalData; - ActionTypeCopyList actionType; - bool custom_with_progression; - }; - /// \brief returned first transfer item - struct currentTransfertItem - { - quint64 id; - bool haveItem; - QString from; - QString to; - QString current_file; - int progressBar_file; - }; - /// \brief get the widget for the copy engine - QWidget * getOptionsEngineWidget(); - /// \brief to set if the copy engine is found - void getOptionsEngineEnabled(bool isEnabled); - /// \brief get action on the transfer list (add/move/remove) - void getActionOnList(const QList<returnActionOnCopyList> &returnActions); - //get information about the copy - /// \brief show the general progression - void setGeneralProgression(const quint64 ¤t,const quint64 &total); - /// \brief show the file progression - void setFileProgression(const QList<ProgressionItem> &progressionList); - /// \brief set collision action - void setCollisionAction(const QList<QPair<QString,QString> > &); - /// \brief set error action - void setErrorAction(const QList<QPair<QString,QString> > &); - /// \brief set the copyType -> file or folder - void setCopyType(CopyType); - /// \brief set the copyMove -> copy or move, to force in copy or move, else support both - void forceCopyMode(CopyMode); - /// \brief set if transfer list is exportable/importable - void setTransferListOperation(TransferListOperation transferListOperation); - /** \brief set if the order is external (like file manager copy) - * to notify the interface, which can hide add folder/filer button */ - void haveExternalOrder(); - /// \brief set if is in pause - void isInPause(bool); + /// \brief the transfer item with progression + struct ItemOfCopyListWithMoreInformations + { + quint64 currentProgression; + Ultracopier::ItemOfCopyList generalData; + Ultracopier::ActionTypeCopyList actionType; + bool custom_with_progression; + }; + /// \brief returned first transfer item + struct currentTransfertItem + { + quint64 id; + bool haveItem; + QString from; + QString to; + QString current_file; + int progressBar_file; + }; + /// \brief get the widget for the copy engine + QWidget * getOptionsEngineWidget(); + /// \brief to set if the copy engine is found + void getOptionsEngineEnabled(const bool &isEnabled); + /// \brief get action on the transfer list (add/move/remove) + void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions); + //get information about the copy + /// \brief show the general progression + void setGeneralProgression(const quint64 ¤t,const quint64 &total); + /// \brief show the file progression + void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList); + /// \brief set collision action + void setCollisionAction(const QList<QPair<QString,QString> > &); + /// \brief set error action + void setErrorAction(const QList<QPair<QString,QString> > &); + /// \brief set the copyType -> file or folder + void setCopyType(const Ultracopier::CopyType&); + /// \brief set the copyMove -> copy or move, to force in copy or move, else support both + void forceCopyMode(const Ultracopier::CopyMode &); + /// \brief set if transfer list is exportable/importable + void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation); + /** \brief set if the order is external (like file manager copy) + * to notify the interface, which can hide add folder/filer button */ + void haveExternalOrder(); + /// \brief set if is in pause + void isInPause(const bool &); signals: - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif - //set the transfer list - void removeItems(QList<int> ids); - void moveItemsOnTop(QList<int> ids); - void moveItemsUp(QList<int> ids); - void moveItemsDown(QList<int> ids); - void moveItemsOnBottom(QList<int> ids); - void exportTransferList(); - void importTransferList(); - //user ask ask to add folder (add it with interface ask source/destination) - void userAddFolder(CopyMode); - void userAddFile(CopyMode); - void urlDropped(QList<QUrl> urls); - //action on the copy - void pause(); - void resume(); - void skip(quint64 id); - void cancel(); - //edit the action - void sendCollisionAction(QString action); - void sendErrorAction(QString action); - void newSpeedLimitation(qint64); + #ifdef ULTRACOPIER_PLUGIN_DEBUG + /// \brief To debug source + void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); + #endif public: - //constructor and destructor - InterfacePlugin(FacilityInterface * facilityEngine); - ~InterfacePlugin(); + //constructor and destructor + InterfacePlugin(FacilityInterface * facilityEngine); + ~InterfacePlugin(); private: - Ui::interface *ui; - quint64 currentFile; - quint64 totalFile; - quint64 currentSize; - quint64 totalSize; - void updateTitle(); - QMenu *menu; - EngineActionInProgress action; - void closeEvent(QCloseEvent *event); - void updateModeAndType(); - bool modeIsForced; - CopyType type; - CopyMode mode; - bool haveStarted; - QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation; - int loop_size,index_for_loop; - int sub_loop_size,sub_index_for_loop; - currentTransfertItem getCurrentTransfertItem(); - FacilityInterface * facilityEngine; + Ui::interface *ui; + quint64 currentFile; + quint64 totalFile; + quint64 currentSize; + quint64 totalSize; + void updateTitle(); + QMenu *menu; + Ultracopier::EngineActionInProgress action; + void closeEvent(QCloseEvent *event); + void updateModeAndType(); + bool modeIsForced; + Ultracopier::CopyType type; + Ultracopier::CopyMode mode; + bool haveStarted; + QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation; + int loop_size,index_for_loop; + int sub_loop_size,sub_index_for_loop; + currentTransfertItem getCurrentTransfertItem(); + FacilityInterface * facilityEngine; private slots: - void forcedModeAddFile(); - void forcedModeAddFolder(); - void forcedModeAddFileToCopy(); - void forcedModeAddFolderToCopy(); - void forcedModeAddFileToMove(); - void forcedModeAddFolderToMove(); + void forcedModeAddFile(); + void forcedModeAddFolder(); + void forcedModeAddFileToCopy(); + void forcedModeAddFolderToCopy(); + void forcedModeAddFileToMove(); + void forcedModeAddFolderToMove(); }; #endif // INTERFACE_TEST_H diff --git a/plugins-alternative/Themes/Clean/interface.pro b/plugins-alternative/Themes/Clean/interface.pro index 20fd1dd..eb124c9 100644 --- a/plugins-alternative/Themes/Clean/interface.pro +++ b/plugins-alternative/Themes/Clean/interface.pro @@ -1,31 +1,36 @@ +CONFIG += c++11 +QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra" +mac:QMAKE_CXXFLAGS+="-stdlib=libc++" + +QT += widgets TEMPLATE = lib CONFIG += plugin HEADERS = interface.h \ - interface/PluginInterface_Themes.h \ - StructEnumDefinition.h \ + StructEnumDefinition.h \ factory.h \ ../../../interface/PluginInterface_Themes.h SOURCES = interface.cpp \ factory.cpp TARGET = $$qtLibraryTarget(interface) -TRANSLATIONS += Languages/fr/translation.ts \ - Languages/ar/translation.ts \ - Languages/zh/translation.ts \ - Languages/es/translation.ts \ +TRANSLATIONS += Languages/ar/translation.ts \ Languages/de/translation.ts \ Languages/el/translation.ts \ + Languages/en/translation.ts \ + Languages/es/translation.ts \ + Languages/fr/translation.ts \ + Languages/hi/translation.ts \ + Languages/hu/translation.ts \ + Languages/id/translation.ts \ Languages/it/translation.ts \ Languages/ja/translation.ts \ - Languages/id/translation.ts \ + Languages/ko/translation.ts \ + Languages/nl/translation.ts \ + Languages/no/translation.ts \ Languages/pl/translation.ts \ Languages/ru/translation.ts \ - Languages/tr/translation.ts \ Languages/th/translation.ts \ - Languages/hi/translation.ts \ - Languages/nl/translation.ts \ - Languages/no/translation.ts \ - Languages/pt/translation.ts \ - Languages/ko/translation.ts + Languages/tr/translation.ts \ + Languages/zh/translation.ts FORMS += \ interface.ui diff --git a/plugins-alternative/Themes/Clean/interface.ui b/plugins-alternative/Themes/Clean/interface.ui index 1ac0e4a..f178af7 100644 --- a/plugins-alternative/Themes/Clean/interface.ui +++ b/plugins-alternative/Themes/Clean/interface.ui @@ -41,7 +41,7 @@ </font> </property> <property name="text"> - <string>In wait</string> + <string>Waiting</string> </property> </widget> </item> @@ -72,7 +72,7 @@ <action name="actionAddFile"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset> </property> <property name="text"> <string>Add file</string> @@ -81,7 +81,7 @@ <action name="actionAddFolder"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset> </property> <property name="text"> <string>Add folder</string> @@ -90,7 +90,7 @@ <action name="actionAddFileToMove"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset> </property> <property name="text"> <string>Move file(s)</string> @@ -99,7 +99,7 @@ <action name="actionAddFolderToMove"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset> </property> <property name="text"> <string>Move folder</string> @@ -108,7 +108,7 @@ <action name="actionAddFileToCopy"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset> </property> <property name="text"> <string>Copy file(s)</string> @@ -117,7 +117,7 @@ <action name="actionAddFolderToCopy"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset> </property> <property name="text"> <string>Copy folder</string> diff --git a/plugins-alternative/Themes/Clean/plugin.json b/plugins-alternative/Themes/Clean/plugin.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/plugins-alternative/Themes/Clean/plugin.json @@ -0,0 +1 @@ +{}
\ No newline at end of file diff --git a/plugins-alternative/Themes/Clean/resources.qrc b/plugins-alternative/Themes/Clean/resources.qrc index 67c550f..40533c4 100644 --- a/plugins-alternative/Themes/Clean/resources.qrc +++ b/plugins-alternative/Themes/Clean/resources.qrc @@ -1,5 +1,5 @@ <RCC> - <qresource prefix="/"> + <qresource prefix="/Themes/Clean"> <file>resources/SystemTrayIcon/informations.png</file> </qresource> </RCC> diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png Binary files differindex e1eb797..5b7b255 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png Binary files differindex a81e70d..6f5d1cf 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png Binary files differindex 8072aea..5464856 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png Binary files differindex f40ea82..3961215 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png Binary files differindex 8d673e4..45d6315 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png Binary files differindex 9ce4779..ac4299a 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png Binary files differindex d0fca1b..6e6bae7 100644 --- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png +++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png diff --git a/plugins-alternative/Themes/Clean/resources_unix.qrc b/plugins-alternative/Themes/Clean/resources_unix.qrc index ae3894b..847cc1c 100644 --- a/plugins-alternative/Themes/Clean/resources_unix.qrc +++ b/plugins-alternative/Themes/Clean/resources_unix.qrc @@ -1,6 +1,6 @@ <RCC> - <qresource prefix="/"> - <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file> + <qresource prefix="/Themes/Clean"> + <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file> <file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file> <file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file> </qresource> diff --git a/plugins-alternative/Themes/Clean/resources_windows.qrc b/plugins-alternative/Themes/Clean/resources_windows.qrc index 99829b3..7d8bbe1 100644 --- a/plugins-alternative/Themes/Clean/resources_windows.qrc +++ b/plugins-alternative/Themes/Clean/resources_windows.qrc @@ -1,5 +1,5 @@ <RCC> - <qresource prefix="/"> + <qresource prefix="/Themes/Clean"> <file>resources/SystemTrayIcon/systray_Caught_Windows.png</file> <file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file> <file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file> diff --git a/plugins-alternative/Themes/Supercopier/DebugEngineMacro.h b/plugins-alternative/Themes/Supercopier/DebugEngineMacro.h new file mode 100644 index 0000000..4582010 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/DebugEngineMacro.h @@ -0,0 +1,28 @@ +/** \file DebugEngineMacro.h +\brief Define the macro for the debug +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef DEBUGENGINEMACRO_H +#define DEBUGENGINEMACRO_H + +#ifdef WIN32 +# define __func__ __FUNCTION__ +#endif + +/// \brief Macro for the debug log +#ifdef ULTRACOPIER_PLUGIN_DEBUG + #if defined (__FILE__) && defined (__LINE__) + #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b,__FILE__,__LINE__) + #else + #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b) + #endif +#else // ULTRACOPIER_DEBUG + #define ULTRACOPIER_DEBUGCONSOLE(a,b) void() +#endif // ULTRACOPIER_DEBUG + +#endif // DEBUGENGINEMACRO_H + + + + diff --git a/plugins-alternative/Themes/Supercopier/Environment.h b/plugins-alternative/Themes/Supercopier/Environment.h new file mode 100644 index 0000000..265a5a6 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Environment.h @@ -0,0 +1,10 @@ +/** \file Environment.h
+\brief Define the environment variable and global function
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "Variable.h"
+/// \brief The global include
+#include "StructEnumDefinition.h"
+#include "DebugEngineMacro.h"
+
diff --git a/plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/de/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/de/translation.ts new file mode 100644 index 0000000..c1177e9 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/de/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation>Kaufen Sie die Ultimate-Version um die Entwicklung zu unterstützen</translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation>Datei %1/%2, Größe:%3/%4</translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation>Zu kopierende Dateien</translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation>Zu verschiebende Dateien</translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation>Bei Fehler nicht</translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation>Nie</translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation>Immer</translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation>Dateiname, 0KB</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation>Farbe auswählen</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation>%1 %2 von %3</translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation>Nicht schließen, wenn Fehler aufgetreten sind</translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation>Niemals schließen</translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation>Immer schließen</translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation>Wählen Sie eine Farbe</translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation>Von:</translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation>Nach:</translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation>Am Ende des Transfers schließen</translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation>&Mehr</translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation>&Pause</translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation>Über&springen</translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation>Abbrechen (&C)</translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation>Dateiliste</translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation>Ausgewählte Einträge löschen</translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation>Dateiliste exportieren</translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation>Dateiliste importieren</translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation>Vorherige</translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation>Nächste</translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation>Darstellungsoptionen</translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation>Ausgewählte Einträge an den Listenanfang verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation>Begrenze Kopiergeschwindigkeit auf:</translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation>Ausgewählte Einträge einen Platz nach oben verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation>Ausgewählte Einträge einen Platz nach unten verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation>Ausgewählte Einträge an das Listenende verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation>Datei/Ordner hinzufügen</translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation>In Dateiliste suchen</translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation>Fehlerprotokoll</translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation>Fehler in Transferliste exportieren</translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation>Quelle</translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation>Ziel</translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation>Datei hinzufügen</translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation>Ordner hinzufügen</translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation>Datei(en) verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation>Ordner verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation>Datei(en) kopieren</translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation>Verzeichnis kopieren</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation>Zweifachen Fortschritt anzeigen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation>Geschwindigkeitsbegrenzungs Schieberegler anzeigen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation>Benutzung</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation>Standardmäßig "Mehr" Informationen anzeigen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation>Beim Schließen ins Systray minimieren</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation>Fenster am Ende des Vorgangs schließen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation>Begrenze Übertragungsgeschwindigkeit auf</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation>Zum Bearbeiten der Farbe klicken</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation> KB/s</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation>Informationen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation>Anzeige</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation>Geschwindigkeit als Fortschrittsbalken anzeigen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation>Farbe des Fortschrittsbalken</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation>Fortschritt im Fenstertitel zeigen</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation>Fenster immer im Vordergrund</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/el/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/el/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/el/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/en/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/en/translation.ts new file mode 100644 index 0000000..9275b19 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/en/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/es/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/es/translation.ts new file mode 100644 index 0000000..c407b34 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/es/translation.ts @@ -0,0 +1,340 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="es" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation>Comprar la versión Ultimate para financiar el desarrollo</translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation>El archivo %1/%2, el tamaño: %3/%4</translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation>Lista de copia</translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation>Lista de movimiento</translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation>No cierre si se encuentran errores</translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation>Nunca cierre</translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation>Siempre cerrar</translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation>Nombre de archivo, 0KB</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation>Seleccione un color</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation>No cierre si se encuentran errores</translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation>Nunca cierre</translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation>Siempre cerrar</translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation>Seleccione un color</translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation>De:</translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation>Para:</translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation>Cerca al final de las transferencias</translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation>&Más</translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation>&Pausa</translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation>&Omitir</translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation>&Cancelar</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Limitar la velocidad de copia en:</translation> + </message> + <message> + <source>Close on transfer completion</source> + <translation type="obsolete">Cerca de finalización de transferencia</translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation>Limitar la velocidad de copia en:</translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation>Lista de transferencia</translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation>Mueve los elementos seleccionados a la parte superior</translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation>Mueva los elementos seleccionados</translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation>Bajar los elementos seleccionados</translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation>Mueve los elementos seleccionados a la parte inferior</translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation>Agregar archivo/carpeta</translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation>Eliminar los elementos seleccionados</translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation>Buscar</translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation>Exportar la lista de transferencias</translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation>Importe la lista de transferencias</translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation>Anterior</translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation>Próximo</translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation>Error</translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation>Exportar los errores en la lista de transferencias</translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation>Fuente</translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation>Destino</translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation>Interfaz</translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation>Añadir archivo</translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation>Añadir carpeta</translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation>Mover archivo(s)</translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation>Mueva la carpeta</translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation>Copia el archivo(s)</translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation>Copia la carpeta</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation>Mostrar progresión dual</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation>Mostrar la velocidad como principales informaciones</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation>Uso</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation>Comience con el "botón más" empujada</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation>Minimizar en cerca de la bandeja del sistema</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation>Al final de la copia</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation>Limitar la velocidad de copia de</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation>Haga clic para editar el color</translation> + </message> + <message> + <source>At the end of the copy: </source> + <translation type="obsolete">Al final de la copia: </translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Limitar la velocidad de copia en:</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation> KB/s</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation>Informations</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation>Visualización</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation>Velocidad con barra de progreso</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation>Progresión de color</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation>Mostrar progresión en el título</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation>Siempre visible</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts new file mode 100644 index 0000000..49112ee --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts @@ -0,0 +1,344 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="fr" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="+180"/> + <source>Buy the Ultimate version to fund development</source> + <translation>Achetez la version Ultimate pour financer le développement</translation> + </message> + <message> + <location line="+82"/> + <source>File %1/%2, size: %3/%4</source> + <translation>Fichier %1/%2, taille: %3/%4</translation> + </message> + <message> + <location line="+214"/> + <source>Copy list</source> + <translation>Liste de copies</translation> + </message> + <message> + <location line="+2"/> + <source>Move list</source> + <translation>Liste de déplacements</translation> + </message> + <message> + <location line="+421"/> + <source>Don't close if errors are found</source> + <translation>Garder ouvert s'il y a des erreurs</translation> + </message> + <message> + <location line="+1"/> + <source>Never close</source> + <translation>Ne jamais fermer</translation> + </message> + <message> + <location line="+1"/> + <source>Always close</source> + <translation>Toujours fermer</translation> + </message> + <message> + <location line="+2"/> + <source>File Name, 0KB</source> + <translation>Nom de fichier, 0Ko</translation> + </message> + <message> + <location line="+183"/> + <location line="+12"/> + <location line="+12"/> + <source>Select a color</source> + <translation>Selectionner une coleur</translation> + </message> + <message> + <location line="+75"/> + <location line="+4"/> + <location line="+2"/> + <source>%1 %2% of %3</source> + <translation>%1 de %2% de %3</translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="+197"/> + <source>Don't close if errors are found</source> + <translation>Garder ouvert s'il y a des erreurs</translation> + </message> + <message> + <location line="+1"/> + <source>Never close</source> + <translation>Ne jamais fermer</translation> + </message> + <message> + <location line="+1"/> + <source>Always close</source> + <translation>Toujours fermer</translation> + </message> + <message> + <location line="+187"/> + <location line="+15"/> + <location line="+15"/> + <source>Select a color</source> + <translation>Selectionner une coleur</translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="+35"/> + <source>From:</source> + <translation>Depuis:</translation> + </message> + <message> + <location line="+37"/> + <source>To:</source> + <translation>Vers:</translation> + </message> + <message> + <location line="+53"/> + <source>Close at the end of the transfers</source> + <translation>Fermer à la fin des transferts</translation> + </message> + <message> + <location line="+98"/> + <source>&More</source> + <translation>Pl&us</translation> + </message> + <message> + <location line="+20"/> + <source>&Pause</source> + <translation>&Pause</translation> + </message> + <message> + <location line="+14"/> + <source>&Skip</source> + <translation>&Passer</translation> + </message> + <message> + <location line="+11"/> + <source>&Cancel</source> + <translation>&Annuler</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Limiter la vitesse de copie à:</translation> + </message> + <message> + <source>Close on transfer completion</source> + <translation type="obsolete">Fermer à la fin des transferts</translation> + </message> + <message> + <location line="+15"/> + <source>Limit copy speed to:</source> + <translation>Limiter la vitesse de copie à:</translation> + </message> + <message> + <location line="+43"/> + <source>Transfer list</source> + <translation>Liste de transferts</translation> + </message> + <message> + <location line="+23"/> + <source>Move the selected items to the top</source> + <translation>Déplacer l'item selectionné au debut</translation> + </message> + <message> + <location line="+26"/> + <source>Move up the selected items</source> + <translation>Déplacer l'item selectionné vers le haut</translation> + </message> + <message> + <location line="+26"/> + <source>Move down the selected items</source> + <translation>Déplacer l'item selectionné vers le bas</translation> + </message> + <message> + <location line="+26"/> + <source>Move the selected items to the bottom</source> + <translation>Déplacer l'item selectionné à la fin</translation> + </message> + <message> + <location line="+26"/> + <source>Add file/folder</source> + <translation>Ajouter fichier/dossier</translation> + </message> + <message> + <location line="+29"/> + <source>Delete the selected items</source> + <translation>Supprimer les items sélectionnés</translation> + </message> + <message> + <location line="+26"/> + <source>Search</source> + <translation>Rechercher</translation> + </message> + <message> + <location line="+29"/> + <source>Export the transfer list</source> + <translation>Exporter la liste de transfert</translation> + </message> + <message> + <location line="+26"/> + <source>Import the transfer list</source> + <translation>Importer la liste de transfert</translation> + </message> + <message> + <location line="+55"/> + <source>Previous</source> + <translation>Précédent</translation> + </message> + <message> + <location line="+7"/> + <source>Next</source> + <translation>Suivant</translation> + </message> + <message> + <location line="+35"/> + <location line="+69"/> + <source>Error</source> + <translation>Erreur</translation> + </message> + <message> + <location line="-49"/> + <source>Export the errors into transfer list</source> + <translation>Exporter les erreurs dans une liste de transfert</translation> + </message> + <message> + <location line="+39"/> + <source>Source</source> + <translation>Source</translation> + </message> + <message> + <location line="+5"/> + <source>Destination</source> + <translation>Destination</translation> + </message> + <message> + <location line="+14"/> + <source>Interface</source> + <translation>Interface</translation> + </message> + <message> + <location line="+37"/> + <source>Add file</source> + <translation>Ajouter un fichier</translation> + </message> + <message> + <location line="+9"/> + <source>Add folder</source> + <translation>Ajouter un répertoire</translation> + </message> + <message> + <location line="+9"/> + <source>Move file(s)</source> + <translation>Déplacer le(s) fichier(s)</translation> + </message> + <message> + <location line="+9"/> + <source>Move folder</source> + <translation>Déplacer un répertoire</translation> + </message> + <message> + <location line="+9"/> + <source>Copy file(s)</source> + <translation>Copier le(s) fichier(s)</translation> + </message> + <message> + <location line="+9"/> + <source>Copy folder</source> + <translation>Copier un répertoire</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="+230"/> + <source>Show dual progression</source> + <translation>Afficher une double progression</translation> + </message> + <message> + <location line="-58"/> + <source>Show speed as main information</source> + <translation>Afficher la vitesse comme information principale</translation> + </message> + <message> + <location line="-137"/> + <source>Use</source> + <translation>Utilisation</translation> + </message> + <message> + <location line="+6"/> + <source>Start with the "more button" pushed</source> + <translation>Déplier automatiquement les détails</translation> + </message> + <message> + <location line="+20"/> + <source>Minimize on close to systray</source> + <translation>Minimiser à la fermeture dans le systray</translation> + </message> + <message> + <location line="+10"/> + <source>At the end of the copy</source> + <translation>À la fin de la copie</translation> + </message> + <message> + <location line="+26"/> + <location line="+24"/> + <source>Limit copy speed to</source> + <translation>Limiter la vitesse de copie à</translation> + </message> + <message> + <location line="+138"/> + <source>Click to edit the color</source> + <translation>Cliquer pour édité la couleur</translation> + </message> + <message> + <source>At the end of the copy: </source> + <translation type="obsolete">À la fin de la copie:</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Limiter la vitesse de copie à:</translation> + </message> + <message> + <source>Limit copy speed to:</source> + <translation type="obsolete">Limiter la vitesse de copie à:</translation> + </message> + <message> + <location line="-128"/> + <source> KB/s</source> + <translation> Ko/s</translation> + </message> + <message> + <location line="+35"/> + <source>Informations</source> + <translation>Informations</translation> + </message> + <message> + <location line="+38"/> + <source>Display</source> + <translation>Affichage</translation> + </message> + <message> + <location line="+6"/> + <source>Speed with progress bar</source> + <translation>Vitesse avec barre de progression</translation> + </message> + <message> + <location line="+30"/> + <source>Progression color</source> + <translation>Couleur de progression</translation> + </message> + <message> + <location line="-20"/> + <source>Show progression in the title</source> + <translation>Afficher la progression dans le titre</translation> + </message> + <message> + <location line="-169"/> + <source>Always on top</source> + <translation>Toujours au 1er plan</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts new file mode 100644 index 0000000..bc36d92 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts @@ -0,0 +1,328 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="hu"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation>Vásárold meg az Ultimate verziót a fejlesztés támogatásához</translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation>Fájl %1/%2, méret: %3/%4</translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation>Lista másolása</translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation>Lista mozgatása</translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation>Ne zárja be, ha hiba történik</translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation>Sose zárja be</translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation>Mindig zárja be</translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation>Fájlnév, 0KB</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation>Válassz egy színt</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation>Ne zárja be, ha hiba történik</translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation>Sose zárja be</translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation>Mindig zárja be</translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation>Válassz egy színt</translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation>Forrás:</translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation>Cél:</translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation>&Több</translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation>&Szünet</translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation>&Kihagy</translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation>&Mégse</translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation>Átviteli lista</translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation>Előző</translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation>Következő</translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation>Kezelőfelület</translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation>Kijelölések elemek mozgatása legfelülre</translation> + </message> + <message> + <source>Close on transfer completion</source> + <translation type="obsolete">Átvitel végeztével zárja be</translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation>Másolási sebesség korlátozása:</translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation>Kijelölt elemek mozgatása fel</translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation>Kijelölt elemek mozgatása le</translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation>Kijelölések elemek mozgatása legalulra</translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation>Fájl/mappa hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation>Kijelölt elemek törlése</translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation>Keresés</translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation>Átviteli lista exportálása</translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation>Átviteli lista importálása</translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation>Hiba</translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation>Hibák exportálása az átviteli listába</translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation>Forrás</translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation>Cél</translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation>Fájl hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation>Mappa hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation>Fájl(ok) mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation>Mappa mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation>Fájl(ok) másolása</translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation>Mappa másolása</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation>Páros folyamat mutatása</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation>Sebesség mutatása, mint fő információ</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation>Használ</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation>Indítás a "több gomb" lenyomásával</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation>Bezáráskor minimalizálás a tálcára</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation>A másolás befejezésekor</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation>Másolási sebesség korlátozása</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation>Kattints a szín szerkesztéséhez</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation> KB/s</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation>Információk</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation>Megjelenítés</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation>Sebesség folyamatsávval</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation>Folyamat színe</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation>Folyamat mutatása a címsorban</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation>Mindig legfelül</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/id/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/id/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/id/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/it/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/it/translation.ts new file mode 100644 index 0000000..255c3b1 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/it/translation.ts @@ -0,0 +1,336 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="it" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation>File %1/%2, dimensione: %3/%4</translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation>Lista della copia</translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation>Lista dello spostamento</translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation>Non chiudere se vengono rilevati errori</translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation>Non chiudere mai</translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation>Chiudere sempre</translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation>Nome del file, 0KB</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation>Scegliere un colore</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation>Non chiudere se vengono rilevati errori</translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation>Non chiudere mai</translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation>Chiudere sempre</translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation>Scegliere un colore</translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation>Da:</translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation>a:</translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished">Chiudi alla fine dei trasferimenti</translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation>Altr&o</translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation>&Pausa</translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation>&Salta</translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation>&Annulla</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Ridurre la velocità di copia a:</translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation>Lista dei trasferimenti</translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation>Sposta in cima gli elementi selezionati</translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation>Sposta sopra gli elementi selezionati</translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation>Sposta sotto gli elementi selezionati</translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation>Sposta in coda gli elementi selezionati</translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation>Aggiungi file/cartelle</translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation>Elimina gli elementi selezionati</translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation>Cerca</translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation>Esporta la lista dei trasferimenti</translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation>Importa la lista dei trasferimenti</translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation>Precedente</translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation>Successivo</translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation>Interfaccia</translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation>Aggiungi file</translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation>Aggiungi cartella</translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation>Sposta file</translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation>Sposta la cartella</translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation>Copia file</translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation>Copia la cartella</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation>Mostrare la doppia progressione</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation>Mostrare la velocità come principale informazione</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation>Iniziare col pulsante "Altro" attivo</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>At the end of the copy: </source> + <translation type="obsolete">Alla fine della copia: </translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Ridurre la velocità di copia a:</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation> KB/s</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation>Velocità nella barra di progresso</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation>Colore della progressione</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation>Mostrare la percentuale di progresso sul titolo</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation>Sempre in primo piano</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts new file mode 100644 index 0000000..6ba3c00 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts new file mode 100644 index 0000000..4354bd2 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts @@ -0,0 +1,336 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ko_KR"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="+180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+82"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished">파일 %1/%2, 크기: %3/%4</translation> + </message> + <message> + <location line="+214"/> + <source>Copy list</source> + <translation type="unfinished">복사 목록</translation> + </message> + <message> + <location line="+2"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+421"/> + <source>Don't close if errors are found</source> + <translation type="unfinished">오류 발견시 종료 안함</translation> + </message> + <message> + <location line="+1"/> + <source>Never close</source> + <translation type="unfinished">절대 종료 안함</translation> + </message> + <message> + <location line="+1"/> + <source>Always close</source> + <translation type="unfinished">항상 종료</translation> + </message> + <message> + <location line="+2"/> + <source>File Name, 0KB</source> + <translation type="unfinished">파일명, 0KB</translation> + </message> + <message> + <location line="+183"/> + <location line="+12"/> + <location line="+12"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+75"/> + <location line="+4"/> + <location line="+2"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="+197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished">오류 발견시 종료 안함</translation> + </message> + <message> + <location line="+1"/> + <source>Never close</source> + <translation type="unfinished">절대 종료 안함</translation> + </message> + <message> + <location line="+1"/> + <source>Always close</source> + <translation type="unfinished">항상 종료</translation> + </message> + <message> + <location line="+187"/> + <location line="+15"/> + <location line="+15"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="+35"/> + <source>From:</source> + <translation type="unfinished">원본:</translation> + </message> + <message> + <location line="+37"/> + <source>To:</source> + <translation type="unfinished">대상:</translation> + </message> + <message> + <location line="+53"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+98"/> + <source>&More</source> + <translation type="unfinished">&자세히</translation> + </message> + <message> + <location line="+20"/> + <source>&Pause</source> + <translation type="unfinished">&일시 정지</translation> + </message> + <message> + <location line="+14"/> + <source>&Skip</source> + <translation type="unfinished">&건너뛰기</translation> + </message> + <message> + <location line="+11"/> + <source>&Cancel</source> + <translation type="unfinished">&취소</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">복사 속도 제한:</translation> + </message> + <message> + <location line="+58"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+156"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+55"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+55"/> + <source>Previous</source> + <translation type="unfinished">이전</translation> + </message> + <message> + <location line="+7"/> + <source>Next</source> + <translation type="unfinished">다음</translation> + </message> + <message> + <location line="+113"/> + <source>Interface</source> + <translation type="unfinished">인터페이스</translation> + </message> + <message> + <location line="-389"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-66"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+92"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+55"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+152"/> + <location line="+69"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-49"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+51"/> + <source>Add file</source> + <translation type="unfinished">파일 추가</translation> + </message> + <message> + <location line="+9"/> + <source>Add folder</source> + <translation type="unfinished">폴더 추가</translation> + </message> + <message> + <location line="+9"/> + <source>Move file(s)</source> + <translation type="unfinished">파일 이동</translation> + </message> + <message> + <location line="+9"/> + <source>Move folder</source> + <translation type="unfinished">폴더 이동</translation> + </message> + <message> + <location line="+9"/> + <source>Copy file(s)</source> + <translation type="unfinished">파일 복사</translation> + </message> + <message> + <location line="+9"/> + <source>Copy folder</source> + <translation type="unfinished">폴더 복사</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="+230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-58"/> + <source>Show speed as main information</source> + <translation type="unfinished">메인 정보에 속도 표시</translation> + </message> + <message> + <location line="-137"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <location line="+24"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+138"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>At the end of the copy: </source> + <translation type="obsolete">복사 종료시:</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">복사 속도 제한:</translation> + </message> + <message> + <location line="-128"/> + <source> KB/s</source> + <translation type="unfinished"> KB/초</translation> + </message> + <message> + <location line="+35"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+38"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+30"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-20"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-169"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/no/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/no/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/no/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts new file mode 100644 index 0000000..a5a373b --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts @@ -0,0 +1,336 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation>Файл %1/%2, размер: %3/%4</translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished">Копировать список</translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished">Не закрывать, если найдены ошибки</translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished">Никогда не закрывать</translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished">Всегда закрывайте</translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation>Имя файла, 0KB</translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished">Не закрывать, если найдены ошибки</translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished">Никогда не закрывать</translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished">Всегда закрывайте</translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation>С:</translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation>к:</translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation>больше</translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation>пауза</translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation>пропускать</translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation>отменить</translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Предельная скорость копирования по адресу:</translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation>предыдущий</translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation>следующий</translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation>интерфейс</translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation>Добавить файл</translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation>Добавить папку</translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation>Перемещение файла(ов)</translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation>Перемещение папки</translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation>Копировать файл (ы)</translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation>Копировать папку</translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished">Показать скорости в качестве основной информации</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>At the end of the copy: </source> + <translation type="obsolete">В конце копии: </translation> + </message> + <message> + <source>Limit copy speed at:</source> + <translation type="obsolete">Предельная скорость копирования по адресу:</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"> Кб/с</translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/th/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/th/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/th/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts new file mode 100644 index 0000000..78e326c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts new file mode 100644 index 0000000..6ba3c00 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="180"/> + <source>Buy the Ultimate version to fund development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="262"/> + <source>File %1/%2, size: %3/%4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="476"/> + <source>Copy list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="478"/> + <source>Move list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="899"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="900"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="901"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="903"/> + <source>File Name, 0KB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1086"/> + <location filename="../../interface.cpp" line="1098"/> + <location filename="../../interface.cpp" line="1110"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="1185"/> + <location filename="../../interface.cpp" line="1189"/> + <location filename="../../interface.cpp" line="1191"/> + <source>%1 %2% of %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ThemesFactory</name> + <message> + <location filename="../../factory.cpp" line="197"/> + <source>Don't close if errors are found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="198"/> + <source>Never close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="199"/> + <source>Always close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../factory.cpp" line="386"/> + <location filename="../../factory.cpp" line="401"/> + <location filename="../../factory.cpp" line="416"/> + <source>Select a color</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="35"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="72"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="125"/> + <source>Close at the end of the transfers</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="223"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="243"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="257"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="268"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="482"/> + <source>Delete the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="537"/> + <source>Export the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="563"/> + <source>Import the transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="618"/> + <source>Previous</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="625"/> + <source>Next</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="738"/> + <source>Interface</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="349"/> + <source>Move the selected items to the top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="283"/> + <source>Limit copy speed to:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="375"/> + <source>Move up the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="401"/> + <source>Move down the selected items</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="427"/> + <source>Move the selected items to the bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="453"/> + <source>Add file/folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="508"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="660"/> + <location filename="../../interface.ui" line="729"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="680"/> + <source>Export the errors into transfer list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="719"/> + <source>Source</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="724"/> + <source>Destination</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="775"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="784"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="793"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="802"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="811"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="820"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>themesOptions</name> + <message> + <location filename="../../themesOptions.ui" line="230"/> + <source>Show dual progression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="172"/> + <source>Show speed as main information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="35"/> + <source>Use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="41"/> + <source>Start with the "more button" pushed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="61"/> + <source>Minimize on close to systray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="71"/> + <source>At the end of the copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="97"/> + <location filename="../../themesOptions.ui" line="121"/> + <source>Limit copy speed to</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="131"/> + <source> KB/s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="166"/> + <source>Informations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="204"/> + <source>Display</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="210"/> + <source>Speed with progress bar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="240"/> + <source>Progression color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="259"/> + <source>Click to edit the color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="220"/> + <source>Show progression in the title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../themesOptions.ui" line="51"/> + <source>Always on top</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Supercopier/StructEnumDefinition.h b/plugins-alternative/Themes/Supercopier/StructEnumDefinition.h new file mode 100644 index 0000000..c1758f4 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/StructEnumDefinition.h @@ -0,0 +1 @@ +#include "../../../StructEnumDefinition.h" diff --git a/plugins-alternative/Themes/Supercopier/TransferModel.cpp b/plugins-alternative/Themes/Supercopier/TransferModel.cpp new file mode 100644 index 0000000..6ce9b92 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/TransferModel.cpp @@ -0,0 +1,569 @@ +#include "TransferModel.h" + +#define COLUMN_COUNT 3 + +QIcon *TransferModel::start=NULL; +QIcon *TransferModel::stop=NULL; + +TransferModel::TransferModel() +{ + /// \warning to prevent Must construct a QGuiApplication before QPixmap IN STATIC WINDOWS VERSION ONLY + if(TransferModel::start==NULL) + TransferModel::start=new QIcon(QStringLiteral(":/resources/player_play.png")); + if(TransferModel::stop==NULL) + TransferModel::stop=new QIcon(QStringLiteral(":/resources/player_pause.png")); + currentIndexSearch=0; + haveSearchItem=false; + facilityEngine=NULL; +} + +int TransferModel::columnCount( const QModelIndex& parent ) const +{ + return parent == QModelIndex() ? COLUMN_COUNT : 0; +} + +QVariant TransferModel::data( const QModelIndex& index, int role ) const +{ + int row,column; + row=index.row(); + column=index.column(); + if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT) + return QVariant(); + + const TransfertItem& item = transfertItemList.at(row); + if(role==Qt::UserRole) + return item.id; + else if(role==Qt::DisplayRole) + { + switch(column) + { + case 0: + return item.source; + break; + case 1: + return item.size; + break; + case 2: + return item.destination; + break; + default: + return QVariant(); + } + } + else if(role==Qt::DecorationRole) + { + switch(column) + { + case 0: + if(stopId.contains(item.id)) + return *stop; + else if(startId.contains(item.id)) + return *start; + else + return QVariant(); + break; + default: + return QVariant(); + } + } + else if(role==Qt::BackgroundRole) + { + if(!search_text.isEmpty() && (item.source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || item.destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)) + { + if(haveSearchItem && searchId==item.id) + return QColor(255,150,150,100); + else + return QColor(255,255,0,100); + } + else + return QVariant(); + } + return QVariant(); +} + +int TransferModel::rowCount( const QModelIndex& parent ) const +{ + return parent == QModelIndex() ? transfertItemList.count() : 0; +} + +quint64 TransferModel::firstId() const +{ + if(transfertItemList.count()>0) + return transfertItemList.first().id; + else + return 0; +} + +QVariant TransferModel::headerData( int section, Qt::Orientation orientation, int role ) const +{ + if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) { + switch ( section ) { + case 0: + return facilityEngine->translateText(QStringLiteral("Source")); + case 1: + return facilityEngine->translateText(QStringLiteral("Size")); + case 2: + return facilityEngine->translateText(QStringLiteral("Destination")); + } + } + + return QAbstractTableModel::headerData( section, orientation, role ); +} + +bool TransferModel::setData( const QModelIndex& index, const QVariant& value, int role ) +{ + row=index.row(); + column=index.column(); + if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT) + return false; + + TransfertItem& item = transfertItemList[row]; + if(role==Qt::UserRole) + { + item.id=value.toULongLong(); + return true; + } + else if(role==Qt::DisplayRole) + { + switch(column) + { + case 0: + item.source=value.toString(); + emit dataChanged(index,index); + return true; + break; + case 1: + item.size=value.toString(); + emit dataChanged(index,index); + return true; + break; + case 2: + item.destination=value.toString(); + emit dataChanged(index,index); + return true; + break; + default: + return false; + } + } + return false; +} + +/* + Return[0]: totalFile + Return[1]: totalSize + Return[2]: currentFile + */ +QList<quint64> TransferModel::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions) +{ + loop_size=returnActions.size(); + index_for_loop=0; + quint64 totalFile=0,totalSize=0,currentFile=0; + totalFile=0; + totalSize=0; + currentFile=0; + + emit layoutAboutToBeChanged(); + const QModelIndexList oldIndexes = persistentIndexList(); + QModelIndexList newIndexes = oldIndexes; + QMap<int, quint64> oldMapping; // model index row in model before update, item id + QMap<quint64, int> newMapping; // item id, model index row in model after update + + for ( int i = 0; i < oldIndexes.count(); i++ ) { + const QModelIndex& index = oldIndexes.at(i); + oldMapping[ index.row() ] = index.data( Qt::UserRole ).value<quint64>(); + } + + while(index_for_loop<loop_size) + { + const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop); + switch(action.type) + { + case Ultracopier::AddingItem: + { + TransfertItem newItem; + newItem.id=action.addAction.id; + newItem.source=action.addAction.sourceFullPath; + newItem.size=facilityEngine->sizeToString(action.addAction.size); + newItem.destination=action.addAction.destinationFullPath; + transfertItemList<<newItem; + totalFile++; + totalSize+=action.addAction.size; + } + break; + case Ultracopier::MoveItem: + { + //bool current_entry= + if(action.userAction.position<0) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.position>(transfertItemList.size()-1)) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.moveAt<0) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.moveAt>(transfertItemList.size()-1)) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.position==action.userAction.moveAt) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, move at same position: %2").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + transfertItemList.move(action.userAction.position,action.userAction.moveAt); + //newIndexes.move(action.userAction.position,action.userAction.moveAt); + } + break; + case Ultracopier::RemoveItem: + { + if(currentIndexSearch>0 && action.userAction.position<=currentIndexSearch) + currentIndexSearch--; + if(action.userAction.position<0) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.position>(transfertItemList.size()-1)) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + transfertItemList.removeAt(action.userAction.position); + currentFile++; + startId.remove(action.addAction.id); + stopId.remove(action.addAction.id); + internalRunningOperation.remove(action.addAction.id); + //newIndexes.remove(action.userAction.moveAt); + } + break; + case Ultracopier::PreOperation: + { + ItemOfCopyListWithMoreInformations tempItem; + tempItem.currentReadProgression=0; + tempItem.currentWriteProgression=0; + tempItem.generalData=action.addAction; + tempItem.actionType=action.type; + internalRunningOperation[action.addAction.id]=tempItem; + } + break; + case Ultracopier::Transfer: + { + if(!startId.contains(action.addAction.id)) + startId << action.addAction.id; + stopId.remove(action.addAction.id); + if(internalRunningOperation.contains(action.addAction.id)) + internalRunningOperation[action.addAction.id].actionType=action.type; + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id)); + } + break; + case Ultracopier::PostOperation: + { + if(!stopId.contains(action.addAction.id)) + stopId << action.addAction.id; + startId.remove(action.addAction.id); + } + break; + case Ultracopier::CustomOperation: + { + bool custom_with_progression=(action.addAction.size==1); + //without progression + if(custom_with_progression) + { + if(startId.remove(action.addAction.id)) + if(!stopId.contains(action.addAction.id)) + stopId << action.addAction.id; + } + //with progression + else + { + stopId.remove(action.addAction.id); + if(!startId.contains(action.addAction.id)) + startId << action.addAction.id; + } + if(internalRunningOperation.contains(action.addAction.id)) + { + ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id]; + item.actionType=action.type; + item.custom_with_progression=custom_with_progression; + item.currentReadProgression=0; + item.currentWriteProgression=0; + } + } + break; + default: + //unknow code, ignore it + break; + } + index_for_loop++; + } + + if(!oldIndexes.isEmpty()) + { + const QSet<quint64> ids = oldMapping.values().toSet(); + + for ( int i = 0; i < transfertItemList.count(); i++ ) { + const TransferModel::TransfertItem& item = transfertItemList.at(i); + + if ( ids.contains( item.id ) ) { + newMapping[ item.id ] = i; + } + } + + for ( int i = 0; i < oldIndexes.count(); i++ ) { + const QModelIndex& index = oldIndexes.at(i); + const int newRow = newMapping.value( oldMapping.value(index.row()), -1 ); + newIndexes[ i ] = newRow == -1 ? QModelIndex() : QAbstractTableModel::index( newRow, index.column(), index.parent() ); + } + } + + changePersistentIndexList( oldIndexes, newIndexes ); + emit layoutChanged(); + return QList<quint64>() << totalFile << totalSize << currentFile; +} + +void TransferModel::setFacilityEngine(FacilityInterface *facilityEngine) +{ + this->facilityEngine=facilityEngine; +} + +int TransferModel::search(const QString &text,bool searchNext) +{ + emit layoutAboutToBeChanged(); + search_text=text; + emit layoutChanged(); + if(transfertItemList.size()==0) + return -1; + if(text.isEmpty()) + return -1; + if(searchNext) + { + currentIndexSearch++; + if(currentIndexSearch>=loop_size) + currentIndexSearch=0; + } + index_for_loop=0; + loop_size=transfertItemList.size(); + while(index_for_loop<loop_size) + { + if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1) + { + haveSearchItem=true; + searchId=transfertItemList.at(currentIndexSearch).id; + return currentIndexSearch; + } + currentIndexSearch++; + if(currentIndexSearch>=loop_size) + currentIndexSearch=0; + index_for_loop++; + } + haveSearchItem=false; + return -1; +} + +int TransferModel::searchPrev(const QString &text) +{ + emit layoutAboutToBeChanged(); + search_text=text; + emit layoutChanged(); + if(transfertItemList.size()==0) + return -1; + if(text.isEmpty()) + return -1; + if(currentIndexSearch==0) + currentIndexSearch=loop_size-1; + else + currentIndexSearch--; + index_for_loop=0; + loop_size=transfertItemList.size(); + while(index_for_loop<loop_size) + { + if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1) + { + haveSearchItem=true; + searchId=transfertItemList.at(currentIndexSearch).id; + return currentIndexSearch; + } + if(currentIndexSearch==0) + currentIndexSearch=loop_size-1; + else + currentIndexSearch--; + index_for_loop++; + } + haveSearchItem=false; + return -1; +} + +void TransferModel::setFileProgression( + #ifndef ULTRACOPIER_PLUGIN_DEBUG + const + #endif + QList<Ultracopier::ProgressionItem> &progressionList) +{ + loop_size=progressionList.size(); + index_for_loop=0; + while(index_for_loop<loop_size) + { + if(internalRunningOperation.contains(progressionList.at(index_for_loop).id)) + { + internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total; + internalRunningOperation[progressionList.at(index_for_loop).id].currentReadProgression=progressionList.at(index_for_loop).currentRead; + internalRunningOperation[progressionList.at(index_for_loop).id].currentWriteProgression=progressionList.at(index_for_loop).currentWrite; + #ifdef ULTRACOPIER_PLUGIN_DEBUG + progressionList.removeAt(index_for_loop); + index_for_loop--; + loop_size--; + #endif + } + index_for_loop++; + } + #ifdef ULTRACOPIER_PLUGIN_DEBUG + if(progressionList.size()>0) + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("progression remaning items")); + #endif +} + +TransferModel::currentTransfertItem TransferModel::getCurrentTransfertItem() const +{ + currentTransfertItem returnItem; + returnItem.progressBar_read=-1; + returnItem.progressBar_write=0; + returnItem.haveItem=startId.size()>0; + if(returnItem.haveItem) + { + if(!internalRunningOperation.contains(*startId.constBegin())) + { + returnItem.haveItem=false; + return returnItem; + } + const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation.value(*startId.constBegin()); + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName+QStringLiteral(", ")+facilityEngine->sizeToString(itemTransfer.generalData.size); + returnItem.id=itemTransfer.generalData.id; + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_read=-1; + else + { + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + returnItem.progressBar_read=-1; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + { + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + } + break; + //should never pass here + case Ultracopier::PostOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=65535; + returnItem.progressBar_write=65535; + break; + //should never pass here + case Ultracopier::PreOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + break; + default: + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + break; + } + } + else + { + returnItem.haveItem=stopId.size()>0; + if(returnItem.haveItem) + { + if(!internalRunningOperation.contains(*stopId.constBegin())) + { + returnItem.haveItem=false; + return returnItem; + } + const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation.value(*stopId.constBegin()); + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName+QStringLiteral(", ")+facilityEngine->sizeToString(itemTransfer.generalData.size); + returnItem.id=itemTransfer.generalData.id; + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_read=-1; + else + { + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + returnItem.progressBar_read=-1; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + { + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + } + break; + case Ultracopier::PostOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=65535; + returnItem.progressBar_write=65535; + break; + //should never pass here + case Ultracopier::PreOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + break; + default: + returnItem.progressBar_read=65535; + returnItem.progressBar_write=65535; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + break; + } + } + } + if(returnItem.haveItem && returnItem.progressBar_read!=-1 && returnItem.progressBar_write>returnItem.progressBar_read) + { + int tempVar=returnItem.progressBar_write; + returnItem.progressBar_write=returnItem.progressBar_read; + returnItem.progressBar_read=tempVar; + } + return returnItem; +} diff --git a/plugins-alternative/Themes/Supercopier/TransferModel.h b/plugins-alternative/Themes/Supercopier/TransferModel.h new file mode 100644 index 0000000..dd8b45a --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/TransferModel.h @@ -0,0 +1,96 @@ +#ifndef TRANSFERMODEL_H +#define TRANSFERMODEL_H + +#include <QAbstractTableModel> +#include <QItemSelectionModel> +#include <QModelIndex> +#include <QVariant> +#include <QList> +#include <QSet> +#include <QIcon> +#include <QString> + +#include "StructEnumDefinition.h" +#include "Environment.h" + +#include "../../../interface/FacilityInterface.h" + +/// \brief model to store the transfer list +class TransferModel : public QAbstractTableModel +{ + Q_OBJECT +public: + /// \brief the transfer item displayed + struct TransfertItem + { + quint64 id; + QString source; + QString size; + QString destination; + }; + /// \brief the transfer item with progression + struct ItemOfCopyListWithMoreInformations + { + quint64 currentReadProgression,currentWriteProgression; + Ultracopier::ItemOfCopyList generalData; + Ultracopier::ActionTypeCopyList actionType; + bool custom_with_progression; + }; + /// \brief returned first transfer item + struct currentTransfertItem + { + quint64 id; + bool haveItem; + QString from; + QString to; + QString current_file; + int progressBar_read,progressBar_write; + }; + + TransferModel(); + + virtual int columnCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); + + QList<quint64> synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions); + void setFacilityEngine(FacilityInterface * facilityEngine); + + int search(const QString &text,bool searchNext); + int searchPrev(const QString &text); + + void setFileProgression( + #ifndef ULTRACOPIER_PLUGIN_DEBUG + const + #endif + QList<Ultracopier::ProgressionItem> &progressionList); + + currentTransfertItem getCurrentTransfertItem() const; + + quint64 firstId() const; +protected: + QList<TransfertItem> transfertItemList;///< To have a transfer list for the user + QSet<quint64> startId,stopId;///< To show what is started, what is stopped + QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat +private: + int loop_size,index_for_loop; + int sub_loop_size,sub_index_for_loop; + int row,column; + FacilityInterface * facilityEngine; + QString search_text; + /// \brief index from start the search, decresed by remove before it + int currentIndexSearch; + bool haveSearchItem; + quint64 searchId; + static QIcon *start; + static QIcon *stop; +signals: + #ifdef ULTRACOPIER_PLUGIN_DEBUG + /// \brief To debug source + void debugInformation(const Ultracopier::DebugLevel &level,QString fonction,QString text,QString file,int ligne) const; + #endif +}; + +#endif // TRANSFERMODEL_H diff --git a/plugins-alternative/Themes/Supercopier/Variable.h b/plugins-alternative/Themes/Supercopier/Variable.h new file mode 100644 index 0000000..963d0c8 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/Variable.h @@ -0,0 +1,15 @@ +/** \file Variable.h
+\brief Define the environment variable
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef VARIABLE_H
+#define VARIABLE_H
+
+//Un-comment this next line to put ultracopier plugin in debug mode
+#define ULTRACOPIER_PLUGIN_DEBUG
+
+#endif // VARIABLE_H
+
+
+
diff --git a/plugins-alternative/Themes/Supercopier/documentation.dox b/plugins-alternative/Themes/Supercopier/documentation.dox new file mode 100644 index 0000000..9357109 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/documentation.dox @@ -0,0 +1,33 @@ +/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/ + +/* + This file contains NO source code, just some documentation for doxygen to + parse. +*/ + +/*! + \mainpage Oxygen + + \section mainpage_overview Overview + + It's interface like Supercopier, see Tal Sella http://www.virtualplastic.net/scrow/ (icons) for the icons and icon license.\n + More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. + + \section mainpage_platforms Platforms + + Ultracopier might be usable in all environments where you find Qt 5.\n + Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0. + + \section mainpage_downloads Downloads + + You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ... + + \section license GPL Version 3 + The code source is under GPL3. The image is extacted from Oxygen icon pack of KDE4.\n + See Tal Sella http://www.virtualplastic.net/scrow/ (icons) for the icons and icon license.\n + resources/export-transfer-list.png and resources/import-transfer-list.png done by png manipulation of KDE's oxygen icon pack (16x16/actions/format-indent-more.png + 16x16/actions/format-list-unordered.png), document-save.png -> all SystemTrayIcon/systray_* (color alteration).\n + From 16x16/actions/: list-add.png -> add.png and SystemTrayIcon/add.png, process-stop.png -> remove.png, document-save.png -> main.png and, arrow-down.png -> moveDown.png, arrow-up.png -> moveUp.png, system-shutdown.png -> cancel.png and SystemTrayIcon/exit.png, arrow-down-double.png -> putOnBottom.png, arrow-up-double.png -> putOnTop.png, media-skip-forward.png -> player_end.png, media-playback-pause.png -> player_pause.png, media-playback-start.png -> player_play.png, document-preview.png -> search.png, help-about.png -> SystemTrayIcon/informations.png \n + And 16x16/categories/applications-development.png -> SystemTrayIcon/options.png + +*/ + diff --git a/plugins-alternative/Themes/Supercopier/factory.cpp b/plugins-alternative/Themes/Supercopier/factory.cpp new file mode 100644 index 0000000..ce3fe15 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/factory.cpp @@ -0,0 +1,441 @@ +/** \file factory.cpp +\brief Define the factory core +\author alpha_one_x86 +*/ + +#include <QColorDialog> + +#include "factory.h" + +ThemesFactory::ThemesFactory() +{ + optionsEngine=NULL; + tempWidget=new QWidget(); + ui=new Ui::themesOptions(); + ui->setupUi(tempWidget); + ui->toolBox->setCurrentIndex(0); + currentSpeed = 0; + updateSpeed(); + ui->labelDualProgression->hide(); + ui->showDualProgression->hide(); + + qRegisterMetaType<QList<QPersistentModelIndex> >("QList<QPersistentModelIndex>"); +} + +ThemesFactory::~ThemesFactory() +{ +} + +PluginInterface_Themes * ThemesFactory::getInstance() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start, currentSpeed: %1").arg(currentSpeed)); + + Themes * newInterface=new Themes( + ui->alwaysOnTop->isChecked(), + ui->showProgressionInTheTitle->isChecked(), + progressColorWrite,progressColorRead,progressColorRemaining, + ui->showDualProgression->isChecked(), + ui->comboBox_copyEnd->currentIndex(), + ui->speedWithProgressBar->isChecked(), + currentSpeed, + ui->checkBoxShowSpeed->isChecked(), + facilityEngine, + ui->checkBoxStartWithMoreButtonPushed->isChecked(), + ui->minimizeToSystray->isChecked() + ); + #ifdef ULTRACOPIER_PLUGIN_DEBUG + connect(newInterface,&Themes::debugInformation,this,&PluginInterface_ThemesFactory::debugInformation); + #endif + connect(this,&ThemesFactory::reloadLanguage,newInterface,&Themes::newLanguageLoaded); + return newInterface; +} + +void ThemesFactory::setResources(OptionInterface * optionsEngine,const QString & + #ifdef ULTRACOPIER_PLUGIN_DEBUG + writePath + #endif + ,const QString & + #ifdef ULTRACOPIER_PLUGIN_DEBUG + pluginPath + #endif + ,FacilityInterface * facilityEngine,const bool &) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath: "+pluginPath); + this->facilityEngine=facilityEngine; + if(optionsEngine!=NULL) + { + this->optionsEngine=optionsEngine; + //load the options + QList<QPair<QString, QVariant> > KeysList; + KeysList.append(qMakePair(QStringLiteral("checkBoxShowSpeed"),QVariant(false))); + KeysList.append(qMakePair(QStringLiteral("moreButtonPushed"),QVariant(false))); + KeysList.append(qMakePair(QStringLiteral("speedWithProgressBar"),QVariant(false))); + KeysList.append(qMakePair(QStringLiteral("currentSpeed"),QVariant(0))); + KeysList.append(qMakePair(QStringLiteral("comboBox_copyEnd"),QVariant(0))); + KeysList.append(qMakePair(QStringLiteral("showDualProgression"),QVariant(false))); + KeysList.append(qMakePair(QStringLiteral("showProgressionInTheTitle"),QVariant(true))); + KeysList.append(qMakePair(QStringLiteral("progressColorWrite"),QVariant(QApplication::palette().color(QPalette::Highlight)))); + KeysList.append(qMakePair(QStringLiteral("progressColorRead"),QVariant(QApplication::palette().color(QPalette::AlternateBase)))); + KeysList.append(qMakePair(QStringLiteral("progressColorRemaining"),QVariant(QApplication::palette().color(QPalette::Base)))); + KeysList.append(qMakePair(QStringLiteral("alwaysOnTop"),QVariant(false))); + KeysList.append(qMakePair(QStringLiteral("minimizeToSystray"),QVariant(false))); + optionsEngine->addOptionGroup(KeysList); + connect(optionsEngine,&OptionInterface::resetOptions,this,&ThemesFactory::resetOptions); + updateSpeed(); + } + #ifndef __GNUC__ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"__GNUC__ is not set"); + #else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"__GNUC__ is set"); + #endif +} + +QWidget * ThemesFactory::options() +{ + if(optionsEngine!=NULL) + { + bool ok; + currentSpeed=optionsEngine->getOptionValue("currentSpeed").toUInt(&ok); + if(!ok) + currentSpeed=0; + ui->comboBox_copyEnd->setCurrentIndex(optionsEngine->getOptionValue(QStringLiteral("comboBox_copyEnd")).toUInt()); + ui->speedWithProgressBar->setChecked(optionsEngine->getOptionValue(QStringLiteral("speedWithProgressBar")).toBool()); + ui->checkBoxShowSpeed->setChecked(optionsEngine->getOptionValue(QStringLiteral("checkBoxShowSpeed")).toBool()); + ui->checkBoxStartWithMoreButtonPushed->setChecked(optionsEngine->getOptionValue(QStringLiteral("moreButtonPushed")).toBool()); + ui->showDualProgression->setChecked(optionsEngine->getOptionValue(QStringLiteral("showDualProgression")).toBool()); + ui->showProgressionInTheTitle->setChecked(optionsEngine->getOptionValue(QStringLiteral("showProgressionInTheTitle")).toBool()); + ui->alwaysOnTop->setChecked(optionsEngine->getOptionValue(QStringLiteral("alwaysOnTop")).toBool()); + ui->minimizeToSystray->setChecked(optionsEngine->getOptionValue(QStringLiteral("minimizeToSystray")).toBool()); + + progressColorWrite=optionsEngine->getOptionValue(QStringLiteral("progressColorWrite")).value<QColor>(); + progressColorRead=optionsEngine->getOptionValue(QStringLiteral("progressColorRead")).value<QColor>(); + progressColorRemaining=optionsEngine->getOptionValue(QStringLiteral("progressColorRemaining")).value<QColor>(); + + QPixmap pixmap(75,20); + pixmap.fill(progressColorWrite); + ui->progressColorWrite->setIcon(pixmap); + pixmap.fill(progressColorRead); + ui->progressColorRead->setIcon(pixmap); + pixmap.fill(progressColorRemaining); + ui->progressColorRemaining->setIcon(pixmap); + updateSpeed(); + updateProgressionColorBar(); + + connect(ui->alwaysOnTop,&QCheckBox::stateChanged,this,&ThemesFactory::alwaysOnTop); + connect(ui->checkBoxShowSpeed,&QCheckBox::stateChanged,this,&ThemesFactory::checkBoxShowSpeed); + connect(ui->minimizeToSystray,&QCheckBox::stateChanged,this,&ThemesFactory::minimizeToSystray); + connect(ui->checkBox_limitSpeed,&QCheckBox::stateChanged,this,&ThemesFactory::uiUpdateSpeed); + connect(ui->SliderSpeed,&QAbstractSlider::valueChanged,this,&ThemesFactory::on_SliderSpeed_valueChanged); + connect(ui->limitSpeed,static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ThemesFactory::uiUpdateSpeed); + connect(ui->checkBoxShowSpeed,&QAbstractButton::toggled,this,&ThemesFactory::checkBoxShowSpeedHaveChanged); + connect(ui->checkBoxStartWithMoreButtonPushed,&QAbstractButton::toggled,this,&ThemesFactory::checkBoxStartWithMoreButtonPushedHaveChanged); + connect(ui->speedWithProgressBar,&QAbstractButton::toggled,this,&ThemesFactory::speedWithProgressBar); + connect(ui->comboBox_copyEnd, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,&ThemesFactory::comboBox_copyEnd); + connect(ui->showDualProgression,&QCheckBox::stateChanged,this,&ThemesFactory::showDualProgression); + connect(ui->showDualProgression,&QCheckBox::stateChanged,this,&ThemesFactory::updateProgressionColorBar); + connect(ui->showProgressionInTheTitle,&QCheckBox::stateChanged,this,&ThemesFactory::setShowProgressionInTheTitle); + connect(ui->progressColorWrite,&QAbstractButton::clicked,this,&ThemesFactory::progressColorWrite_clicked); + connect(ui->progressColorRead, &QAbstractButton::clicked,this,&ThemesFactory::progressColorRead_clicked); + connect(ui->progressColorRemaining,&QAbstractButton::clicked,this,&ThemesFactory::progressColorRemaining_clicked); + } + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"return the options"); + return tempWidget; +} + +QIcon ThemesFactory::getIcon(const QString &fileName) const +{ + return QIcon(QStringLiteral(":/Themes/Supercopier/resources/")+fileName); +} + +void ThemesFactory::resetOptions() +{ + ui->checkBoxShowSpeed->setChecked(true); + ui->checkBoxStartWithMoreButtonPushed->setChecked(false); +} + +void ThemesFactory::checkBoxShowSpeedHaveChanged(bool toggled) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("checkBoxShowSpeed"),toggled); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::checkBoxStartWithMoreButtonPushedHaveChanged(bool toggled) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("moreButtonPushed"),toggled); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::comboBox_copyEnd(int value) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("comboBox_copyEnd"),value); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::speedWithProgressBar(bool toggled) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("speedWithProgressBar"),toggled); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::newLanguageLoaded() +{ + ui->retranslateUi(tempWidget); + ui->comboBox_copyEnd->setItemText(0,tr("Don't close if errors are found")); + ui->comboBox_copyEnd->setItemText(1,tr("Never close")); + ui->comboBox_copyEnd->setItemText(2,tr("Always close")); + emit reloadLanguage(); +} + +void ThemesFactory::checkBoxShowSpeed(bool checked) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + Q_UNUSED(checked); + updateSpeed(); +} + +void ThemesFactory::minimizeToSystray(bool checked) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("minimizeToSystray"),checked); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::alwaysOnTop(bool checked) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("alwaysOnTop"),checked); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::showDualProgression(bool checked) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed"); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("showDualProgression"),checked); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::on_SliderSpeed_valueChanged(int value) +{ + if(optionsEngine==NULL) + return; + if(!ui->checkBoxShowSpeed->isChecked()) + return; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("value: %1").arg(value)); + switch(value) + { + case 0: + currentSpeed=0; + break; + case 1: + currentSpeed=1024; + break; + case 2: + currentSpeed=1024*4; + break; + case 3: + currentSpeed=1024*16; + break; + case 4: + currentSpeed=1024*64; + break; + case 5: + currentSpeed=1024*128; + break; + } + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + updateSpeed(); +} + +void ThemesFactory::uiUpdateSpeed() +{ + if(optionsEngine==NULL) + return; + if(ui->checkBoxShowSpeed->isChecked()) + return; + if(!ui->checkBox_limitSpeed->isChecked()) + currentSpeed=0; + else + currentSpeed=ui->limitSpeed->value(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("emit newSpeedLimitation(%1)").arg(currentSpeed)); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::updateSpeed() +{ + if(optionsEngine==NULL) + return; + ui->label_Slider_speed->setVisible(ui->checkBoxShowSpeed->isChecked()); + ui->SliderSpeed->setVisible(ui->checkBoxShowSpeed->isChecked()); + ui->label_SpeedMaxValue->setVisible(ui->checkBoxShowSpeed->isChecked()); + ui->limitSpeed->setVisible(!ui->checkBoxShowSpeed->isChecked()); + ui->checkBox_limitSpeed->setVisible(!ui->checkBoxShowSpeed->isChecked()); + + if(ui->checkBoxShowSpeed->isChecked()) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("checked, currentSpeed: %1").arg(currentSpeed)); + ui->limitSpeed->setEnabled(false); + if(currentSpeed==0) + { + ui->SliderSpeed->setValue(0); + ui->label_SpeedMaxValue->setText(facilityEngine->translateText("Unlimited")); + } + else if(currentSpeed<=1024) + { + if(currentSpeed!=1024) + { + currentSpeed=1024; + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + } + ui->SliderSpeed->setValue(1); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*1)); + } + else if(currentSpeed<=1024*4) + { + if(currentSpeed!=1024*4) + { + currentSpeed=1024*4; + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + } + ui->SliderSpeed->setValue(2); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*4)); + } + else if(currentSpeed<=1024*16) + { + if(currentSpeed!=1024*16) + { + currentSpeed=1024*16; + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + } + ui->SliderSpeed->setValue(3); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*16)); + } + else if(currentSpeed<=1024*64) + { + if(currentSpeed!=1024*64) + { + currentSpeed=1024*64; + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + } + ui->SliderSpeed->setValue(4); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*64)); + } + else + { + if(currentSpeed!=1024*128) + { + currentSpeed=1024*128; + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); + } + ui->SliderSpeed->setValue(5); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*128)); + } + } + else + { + ui->checkBox_limitSpeed->setChecked(currentSpeed>0); + if(currentSpeed>0) + ui->limitSpeed->setValue(currentSpeed); + ui->checkBox_limitSpeed->setEnabled(currentSpeed!=-1); + ui->limitSpeed->setEnabled(ui->checkBox_limitSpeed->isChecked()); + } +} + +void ThemesFactory::progressColorWrite_clicked() +{ + QColor color=QColorDialog::getColor(progressColorWrite,NULL,tr("Select a color")); + if(!color.isValid()) + return; + progressColorWrite=color; + QPixmap pixmap(75,20); + pixmap.fill(progressColorWrite); + ui->progressColorWrite->setIcon(pixmap); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("progressColorWrite"),progressColorWrite); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::progressColorRead_clicked() +{ + QColor color=QColorDialog::getColor(progressColorRead,NULL,tr("Select a color")); + if(!color.isValid()) + return; + progressColorRead=color; + QPixmap pixmap(75,20); + pixmap.fill(progressColorRead); + ui->progressColorRead->setIcon(pixmap); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("progressColorRead"),progressColorRead); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::progressColorRemaining_clicked() +{ + QColor color=QColorDialog::getColor(progressColorRemaining,NULL,tr("Select a color")); + if(!color.isValid()) + return; + progressColorRemaining=color; + QPixmap pixmap(75,20); + pixmap.fill(progressColorRemaining); + ui->progressColorRemaining->setIcon(pixmap); + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("progressColorRemaining"),progressColorRemaining); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} + +void ThemesFactory::updateProgressionColorBar() +{ + ui->labelProgressionColor->setVisible(ui->showDualProgression->isChecked()); + ui->frameProgressionColor->setVisible(ui->showDualProgression->isChecked()); +} + +void ThemesFactory::setShowProgressionInTheTitle() +{ + if(optionsEngine!=NULL) + optionsEngine->setOptionValue(QStringLiteral("showProgressionInTheTitle"),ui->showProgressionInTheTitle->isChecked()); + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented"); +} diff --git a/plugins-alternative/Themes/Supercopier/factory.h b/plugins-alternative/Themes/Supercopier/factory.h new file mode 100644 index 0000000..11607d2 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/factory.h @@ -0,0 +1,83 @@ +/** \file factory.h +\brief Define the factory, to create instance of the interface +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef FACTORY_H +#define FACTORY_H + +#include <QObject> +#include <QWidget> +#include <QMenu> +#include <QCloseEvent> +#include <QFile> +#include <QIcon> +#include <QColor> +#include <QPixmap> + +#include "../../../interface/PluginInterface_Themes.h" +#include "ui_themesOptions.h" +#include "interface.h" +#include "Environment.h" + +namespace Ui { + class themesOptions; +} + +/// \brief Define the factory, to create instance of the interface +class ThemesFactory : public PluginInterface_ThemesFactory +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json") + Q_INTERFACES(PluginInterface_ThemesFactory) +public: + ThemesFactory(); + ~ThemesFactory(); + /// \brief to return the instance of the copy engine + PluginInterface_Themes * getInstance(); + /// \brief set the resources, to store options, to have facilityInterface + void setResources(OptionInterface * optionsEngine,const QString & + #ifdef ULTRACOPIER_PLUGIN_DEBUG + writePath + #endif + ,const QString & + #ifdef ULTRACOPIER_PLUGIN_DEBUG + pluginPath + #endif + ,FacilityInterface * facilityEngine,const bool &portableVersion); + /// \brief to get the default options widget + QWidget * options(); + /// \brief to get a resource icon + QIcon getIcon(const QString &fileName) const; +private slots: + void checkBoxShowSpeedHaveChanged(bool toggled); + void checkBoxStartWithMoreButtonPushedHaveChanged(bool toggled); + void comboBox_copyEnd(int value); + void speedWithProgressBar(bool toggled); + void checkBoxShowSpeed(bool checked); + void minimizeToSystray(bool checked); + void alwaysOnTop(bool checked); + void showDualProgression(bool checked); + void on_SliderSpeed_valueChanged(int value); + void uiUpdateSpeed(); + void updateSpeed(); + void progressColorWrite_clicked(); + void progressColorRead_clicked(); + void progressColorRemaining_clicked(); + void updateProgressionColorBar(); + void setShowProgressionInTheTitle(); +public slots: + void resetOptions(); + void newLanguageLoaded(); +private: + OptionInterface * optionsEngine; + Ui::themesOptions *ui; + QWidget *tempWidget; + FacilityInterface * facilityEngine; + qint32 currentSpeed;///< in KB/s, assume as 0KB/s as default like every where + QColor progressColorWrite,progressColorRead,progressColorRemaining; +signals: + void reloadLanguage() const; +}; + +#endif // FACTORY_H diff --git a/plugins-alternative/CopyEngine/Rsync/informations.xml b/plugins-alternative/Themes/Supercopier/informations.xml index 709df28..25a77f9 100644 --- a/plugins-alternative/CopyEngine/Rsync/informations.xml +++ b/plugins-alternative/Themes/Supercopier/informations.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <package> - <title xml:lang="en"><![CDATA[Rsync copy engine]]></title><!-- english is required --> - <title xml:lang="fr"><![CDATA[Moteur de copie rsync]]></title> + <title xml:lang="en"><![CDATA[Supercopier style for Ultracopier]]></title><!-- english is required --> + <title xml:lang="fr"><![CDATA[Style Supercopier pour Ultracopier]]></title> <!-- What kind of plugin this is --> - <category>CopyEngine</category> + <category>Themes</category> <!-- Who wrote this plugin --> <author><![CDATA[BRULE Herman, alpha_one_x86 (alpha_one_x86@first-world.info)]]></author> <!-- URL of page or site for this plugin (may provide additional information, bug reports, feature requests). --> @@ -14,14 +14,13 @@ <!-- the architecture code of this plugin, found PlatformMacro.h into ultracopier source --> <architecture>windows-x86</architecture> <!-- Detailed description --> - <description xml:lang="en"><![CDATA[Rsync copy engine, variant of the official copy engine to provide simple way to do backups]]></description> - <description xml:lang="fr"><![CDATA[Moteur de copie rsync, variante du moteur de copie officiel pour fournir une maniére simple de faire des backups]]></description> + <description xml:lang="en"><![CDATA[Supercopier style for Ultracopier]]></description> + <description xml:lang="fr"><![CDATA[Style Supercopier pour Ultracopier]]></description> <!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number --> - <version>0.3.1.0</version> + <version>1.2.3.6</version> <!-- This internal name should never change, because it is used to detect when a particular plugin is updated. It must comprise only lower case ASCII characters (a-z), numerical digits (0-9), "-", "." or "_", and it must be be unique within the category. And have size lower than 64 char. --> - <name>Rsync</name> + <name>Supercopier</name> <!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. --> <dependencies><![CDATA[ - >=ultracopier-0.3.1.0 ]]></dependencies> </package>
\ No newline at end of file diff --git a/plugins-alternative/Themes/Supercopier/interface.cpp b/plugins-alternative/Themes/Supercopier/interface.cpp new file mode 100644 index 0000000..7af05e8 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interface.cpp @@ -0,0 +1,1332 @@ +/** \file interface.cpp +\brief Define the interface core +\author alpha_one_x86 +*/ + +#include <QMessageBox> +#include <QMimeData> +#include <QScrollArea> +#include <QColorDialog> +#include <QRect> +#include <QPainter> +#include <cmath> +#ifdef Q_OS_WIN + #ifndef NOMINMAX + #define NOMINMAX + #endif + #include <windows.h> +#endif + +#include "interface.h" +#include "ui_interface.h" +#include "factory.h" + +// The cmath header from MSVC does not contain round() +#if (defined(_WIN64) || defined(_WIN32)) && defined(_MSC_VER) +inline double round(double d) { + return floor( d + 0.5 ); +} +#endif + +QIcon Themes::player_pause=QIcon(QStringLiteral(":/Themes/Supercopier/resources/player_pause.png")); +QIcon Themes::player_play=QIcon(QStringLiteral(":/Themes/Supercopier/resources/player_play.png")); + +Themes::Themes(const bool &alwaysOnTop, + const bool &showProgressionInTheTitle, + const QColor &progressColorWrite, + const QColor &progressColorRead, + const QColor &progressColorRemaining, + const bool &showDualProgression, + const quint8 &comboBox_copyEnd, + const bool &speedWithProgressBar, + const qint32 ¤tSpeed, + const bool &checkBoxShowSpeed, + FacilityInterface * facilityEngine, + const bool &moreButtonPushed, + const bool &minimizeToSystray) : + ui(new Ui::interfaceCopy()), + uiOptions(new Ui::themesOptions()) +{ + this->facilityEngine=facilityEngine; + ui->setupUi(this); + uiOptions->setupUi(ui->optionsTab); + + currentFile = 0; + totalFile = 0; + currentSize = 0; + totalSize = 0; + getOldProgression = 200; + haveError = false; + stat = status_never_started; + modeIsForced = false; + haveStarted = false; + storeIsInPause = false; + durationStarted = false; + + this->progressColorWrite = progressColorWrite; + this->progressColorRead = progressColorRead; + this->progressColorRemaining= progressColorRemaining; + this->currentSpeed = currentSpeed; + uiOptions->showProgressionInTheTitle->setChecked(showProgressionInTheTitle); + uiOptions->speedWithProgressBar->setChecked(speedWithProgressBar); + uiOptions->showDualProgression->setChecked(showDualProgression); + uiOptions->alwaysOnTop->setChecked(alwaysOnTop); + uiOptions->minimizeToSystray->setChecked(minimizeToSystray); + //uiOptions->setupUi(ui->tabWidget->widget(ui->tabWidget->count()-1)); + uiOptions->labelStartWithMoreButtonPushed->setVisible(false); + uiOptions->checkBoxStartWithMoreButtonPushed->setVisible(false); + uiOptions->label_Slider_speed->setVisible(false); + uiOptions->SliderSpeed->setVisible(false); + uiOptions->label_SpeedMaxValue->setVisible(false); + uiOptions->comboBox_copyEnd->setCurrentIndex(comboBox_copyEnd); + speedWithProgressBar_toggled(speedWithProgressBar); + showDualProgression_toggled(showDualProgression); + QPixmap pixmap(75,20); + pixmap.fill(progressColorWrite); + uiOptions->progressColorWrite->setIcon(pixmap); + pixmap.fill(progressColorRead); + uiOptions->progressColorRead->setIcon(pixmap); + pixmap.fill(progressColorRemaining); + uiOptions->progressColorRemaining->setIcon(pixmap); + + transferModel.setFacilityEngine(facilityEngine); + ui->TransferList->setModel(&transferModel); + ui->tabWidget->setCurrentIndex(0); + uiOptions->toolBox->setCurrentIndex(0); + uiOptions->checkBoxShowSpeed->setChecked(checkBoxShowSpeed); + menu=new QMenu(this); + ui->add->setMenu(menu); + + #ifdef Q_OS_WIN32 + pixmapTop=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png"); + pixmapBottom=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png"); + #else + pixmapTop=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png"); + pixmapBottom=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png"); + #endif + + //connect the options + checkBoxShowSpeed_toggled(uiOptions->checkBoxShowSpeed->isChecked()); + connect(uiOptions->checkBoxShowSpeed,&QCheckBox::stateChanged,this,&Themes::checkBoxShowSpeed_toggled); + connect(uiOptions->speedWithProgressBar,&QCheckBox::stateChanged,this,&Themes::speedWithProgressBar_toggled); + connect(uiOptions->showProgressionInTheTitle,&QCheckBox::stateChanged,this,&Themes::updateTitle); + connect(uiOptions->showDualProgression,&QCheckBox::stateChanged,this,&Themes::showDualProgression_toggled); + connect(uiOptions->progressColorWrite,&QAbstractButton::clicked,this,&Themes::progressColorWrite_clicked); + connect(uiOptions->progressColorRead, &QAbstractButton::clicked,this,&Themes::progressColorRead_clicked); + connect(uiOptions->progressColorRemaining,&QAbstractButton::clicked,this,&Themes::progressColorRemaining_clicked); + connect(uiOptions->alwaysOnTop,&QAbstractButton::clicked,this,&Themes::alwaysOnTop_clickedSlot); + + isInPause(false); + + connect(uiOptions->limitSpeed, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &Themes::uiUpdateSpeed); + connect(uiOptions->checkBox_limitSpeed,&QAbstractButton::toggled, this, &Themes::uiUpdateSpeed); + + connect(ui->actionAddFile,&QAction::triggered,this,&Themes::forcedModeAddFile); + connect(ui->actionAddFileToCopy,&QAction::triggered,this,&Themes::forcedModeAddFileToCopy); + connect(ui->actionAddFileToMove,&QAction::triggered,this,&Themes::forcedModeAddFileToMove); + connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&Themes::forcedModeAddFolderToCopy); + connect(ui->actionAddFolderToMove,&QAction::triggered,this,&Themes::forcedModeAddFolderToMove); + connect(ui->actionAddFolder,&QAction::triggered,this,&Themes::forcedModeAddFolder); + connect(ui->exportErrorToTransferList,&QToolButton::triggered,this,&Themes::exportErrorIntoTransferList); + + //setup the search part + closeTheSearchBox(); + TimerForSearch = new QTimer(this); + TimerForSearch->setInterval(500); + TimerForSearch->setSingleShot(true); + searchShortcut = new QShortcut(QKeySequence(QKeySequence::Find),this); + searchShortcut2 = new QShortcut(QKeySequence(QKeySequence::FindNext),this); + searchShortcut3 = new QShortcut(QKeySequence(Qt::Key_Escape),this); + + //connect the search part + connect(TimerForSearch, &QTimer::timeout, this, &Themes::hilightTheSearchSlot); + connect(searchShortcut, &QShortcut::activated, this, &Themes::searchBoxShortcut); + connect(searchShortcut2, &QShortcut::activated, this, &Themes::on_pushButtonSearchNext_clicked); + connect(ui->pushButtonCloseSearch, &QPushButton::clicked, this, &Themes::closeTheSearchBox); + connect(searchShortcut3, &QShortcut::activated, this, &Themes::closeTheSearchBox); + + //reload directly untranslatable text + newLanguageLoaded(); + + //unpush the more button + ui->moreButton->setChecked(moreButtonPushed); + on_moreButton_toggled(moreButtonPushed); + + /// \note important for drag and drop, \see dropEvent() + setAcceptDrops(true); + + shutdown=facilityEngine->haveFunctionality(QStringLiteral("shutdown")); + ui->shutdown->setVisible(shutdown); + + selectionModel=ui->TransferList->selectionModel(); + + #ifdef ULTRACOPIER_PLUGIN_DEBUG + connect(&transferModel,&TransferModel::debugInformation,this,&Themes::debugInformation); + #endif + + updateSpeed(); + alwaysOnTop_clicked(false); + /*#ifdef Q_OS_WIN32 + uiOptions->labelAlwaysOnTop->hide(); + uiOptions->alwaysOnTop->hide(); + #endif*/ + #ifdef ULTRACOPIER_VERSION_ULTIMATE + ui->ad_ultimate->hide(); + #else + QString ultimateUrl=facilityEngine->ultimateUrl(); + if(ultimateUrl.isEmpty()) + ui->ad_ultimate->hide(); + else + ui->ad_ultimate->setText(QStringLiteral("<a href=\"%1\">%2</a>").arg(ultimateUrl).arg(tr("Buy the Ultimate version to fund development"))); + #endif + + uiOptions->labelDualProgression->hide(); + uiOptions->showDualProgression->hide(); + ui->progressBar_all->setMaximumHeight(17); + ui->progressBar_file->setMaximumHeight(17); + ui->progressBarCurrentSpeed->setMaximumHeight(17); + ui->progressBar_all->setMinimumHeight(17); + ui->progressBar_file->setMinimumHeight(17); + ui->progressBarCurrentSpeed->setMinimumHeight(17); + ui->progressBar_all->setStyleSheet(QStringLiteral("QProgressBar{color:#fff;font-weight:bold;border:1px solid black;text-align:center;background-image:url(:/Themes/Supercopier/resources/progressbarright.png);}QProgressBar::chunk{background-image: url(:/Themes/Supercopier/resources/progressbarleft.png);}")); + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{color:#fff;font-weight:bold;border:1px solid black;text-align:center;background-image:url(:/Themes/Supercopier/resources/progressbarright.png);}QProgressBar::chunk{background-image: url(:/Themes/Supercopier/resources/progressbarleft.png);}")); + ui->progressBarCurrentSpeed->setStyleSheet(QStringLiteral("QProgressBar{color:#fff;font-weight:bold;border:1px solid black;text-align:center;background-image:url(:/Themes/Supercopier/resources/progressbarright.png);}QProgressBar::chunk{background-image: url(:/Themes/Supercopier/resources/progressbarleft.png);}")); + + show(); + + sysTrayIcon = new QSystemTrayIcon(this); + connect(sysTrayIcon,&QSystemTrayIcon::activated,this,&Themes::catchAction); +} + +Themes::~Themes() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + //disconnect(ui->actionAddFile); + //disconnect(ui->actionAddFolder); + delete selectionModel; + delete menu; + delete sysTrayIcon; +} + +QWidget * Themes::getOptionsEngineWidget() +{ + return &optionEngineWidget; +} + +void Themes::getOptionsEngineEnabled(const bool &isEnabled) +{ + if(isEnabled) + { + QScrollArea *scrollArea=new QScrollArea(ui->tabWidget); + scrollArea->setWidgetResizable(true); + scrollArea->setWidget(&optionEngineWidget); + ui->tabWidget->addTab(scrollArea,facilityEngine->translateText(QStringLiteral("Copy engine"))); + } +} + +void Themes::closeEvent(QCloseEvent *event) +{ + event->ignore(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + this->hide(); + if(uiOptions->minimizeToSystray->isChecked()) + { + updateSysTrayIcon(); + sysTrayIcon->show(); + } + else + emit cancel(); +} + +void Themes::updateSysTrayIcon() +{ + if(totalSize==0) + { + sysTrayIcon->setIcon(dynaIcon(0,QStringLiteral("-"))); + return; + } + quint64 currentNew=currentSize*100; + //update systray icon + quint16 getVarProgression=currentNew/totalSize; + if(getOldProgression!=getVarProgression) + { + getOldProgression=getVarProgression; + sysTrayIcon->setIcon(dynaIcon(getVarProgression)); + } +} + +void Themes::updateOverallInformation() +{ + if(uiOptions->showProgressionInTheTitle->isChecked()) + updateTitle(); + ui->overall->setText(tr("File %1/%2, size: %3/%4").arg(currentFile).arg(totalFile).arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize))); +} + +void Themes::actionInProgess(const Ultracopier::EngineActionInProgress &action) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("start: ")+QString::number(action)); + this->action=action; + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + ui->progressBar_all->setMaximum(65535); + ui->progressBar_all->setMinimum(0); + break; + case Ultracopier::Listing: + ui->progressBar_all->setMaximum(0); + ui->progressBar_all->setMinimum(0); + break; + case Ultracopier::Idle: + ui->progressBar_all->setMaximum(65535); + ui->progressBar_all->setMinimum(0); + if(haveStarted && transferModel.rowCount()<=0) + { + if(shutdown && ui->shutdown->isChecked()) + { + facilityEngine->callFunctionality(QStringLiteral("shutdown")); + return; + } + switch(uiOptions->comboBox_copyEnd->currentIndex()) + { + case 2: + emit cancel(); + break; + case 0: + if(!haveError) + emit cancel(); + else + ui->tabWidget->setCurrentWidget(ui->tab_error); + break; + default: + break; + } + stat = status_stopped; + if(durationStarted) + { + Ultracopier::TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(duration.elapsed()/1000); + ui->labelTimeRemaining->setText(QStringLiteral("<html><body style=\"white-space:nowrap;\">")+facilityEngine->translateText(QStringLiteral("Completed in %1")).arg( + QString::number(time.hour)+QStringLiteral(":")+QString::number(time.minute).rightJustified(2,'0')+QStringLiteral(":")+QString::number(time.second).rightJustified(2,'0') + )+QStringLiteral("</body></html>")); + } + } + break; + default: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"Very wrong switch case!"); + break; + } + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + ui->pauseButton->setEnabled(true); + if(!durationStarted) + { + duration.start(); + durationStarted=true; + } + haveStarted=true; + ui->cancelButton->setText(facilityEngine->translateText(QStringLiteral("Quit"))); + updatePause(); + break; + case Ultracopier::Listing: + ui->pauseButton->setEnabled(false); + haveStarted=true;//to close if skip at root folder collision + break; + case Ultracopier::Idle: + ui->pauseButton->setEnabled(false); + break; + default: + break; + } +} + +void Themes::newFolderListing(const QString &path) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + QString newPath=path; + if(newPath.size()>(64+3)) + newPath=newPath.mid(0,32)+QStringLiteral("...")+newPath.mid(newPath.size()-32,32); + if(action==Ultracopier::Listing) + ui->from->setText(newPath); +} + +void Themes::detectedSpeed(const quint64 &speed)//in byte per seconds +{ + if(uiOptions->speedWithProgressBar->isChecked()) + { + quint64 tempSpeed=speed; + if(tempSpeed>999999999) + tempSpeed=999999999; + if(tempSpeed>(quint64)ui->progressBarCurrentSpeed->maximum()) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("set max speed to: %1").arg(tempSpeed)); + ui->progressBarCurrentSpeed->setMaximum(tempSpeed); + } + ui->progressBarCurrentSpeed->setValue(tempSpeed); + ui->progressBarCurrentSpeed->setFormat(facilityEngine->speedToString(speed)); + } + else + ui->currentSpeed->setText(facilityEngine->speedToString(speed)); +} + +void Themes::remainingTime(const int &remainingSeconds) +{ + QString labelTimeRemaining(QStringLiteral("<html><body style=\"white-space:nowrap;\">")+facilityEngine->translateText(QStringLiteral("Time remaining:"))+QStringLiteral(" ")); + if(remainingSeconds==-1) + labelTimeRemaining+=QStringLiteral("∞"); + else + { + Ultracopier::TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds); + labelTimeRemaining+=QString::number(time.hour)+QStringLiteral(":")+QString::number(time.minute).rightJustified(2,'0')+QStringLiteral(":")+QString::number(time.second).rightJustified(2,'0'); + } + labelTimeRemaining+=QStringLiteral("</body></html>"); + ui->labelTimeRemaining->setText(labelTimeRemaining); +} + +void Themes::errorDetected() +{ + haveError=true; +} + +/// \brief new error +void Themes::errorToRetry(const QString &source,const QString &destination,const QString &error) +{ + ui->errorList->addTopLevelItem(new QTreeWidgetItem(QStringList() << source << destination << error)); +} + +/** \brief support speed limitation */ +void Themes::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool) +{ + if(!supportSpeedLimitationBool) + { + ui->label_Slider_speed->setVisible(false); + ui->SliderSpeed->setVisible(false); + ui->label_SpeedMaxValue->setVisible(false); + uiOptions->labelShowSpeedAsMain->setVisible(false); + uiOptions->checkBoxShowSpeed->setVisible(false); + } + else + emit newSpeedLimitation(currentSpeed); +} + +//get information about the copy +void Themes::setGeneralProgression(const quint64 ¤t,const quint64 &total) +{ + currentSize=current; + totalSize=total; + if(total>0) + { + int newIndicator=((double)current/total)*65535; + ui->progressBar_all->setValue(newIndicator); + } + else + ui->progressBar_all->setValue(0); + if(current>0) + stat = status_started; + updateOverallInformation(); + if(isHidden()) + updateSysTrayIcon(); +} + +void Themes::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList) +{ + QList<Ultracopier::ProgressionItem> progressionListBis=progressionList; + transferModel.setFileProgression(progressionListBis); + updateCurrentFileInformation(); +} + +//edit the transfer list +/// \todo check and re-enable to selection +void Themes::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start, returnActions.size(): ")+QString::number(returnActions.size())); + QList<quint64> returnValue=transferModel.synchronizeItems(returnActions); + totalFile+=returnValue.first(); + totalSize+=returnValue.at(1); + currentFile+=returnValue.last(); + if(transferModel.rowCount()==0) + { + ui->skipButton->setEnabled(false); + ui->progressBar_all->setValue(65535); + ui->progressBar_file->setValue(65535); + currentSize=totalSize; + if(isHidden()) + updateSysTrayIcon(); + } + else + ui->skipButton->setEnabled(true); + updateOverallInformation(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("transferModel.rowCount(): ")+QString::number(transferModel.rowCount())); +} + +void Themes::setCopyType(const Ultracopier::CopyType &type) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + this->type=type; + updateModeAndType(); +} + +void Themes::forceCopyMode(const Ultracopier::CopyMode &mode) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + modeIsForced=true; + this->mode=mode; + if(mode==Ultracopier::Copy) + ui->tabWidget->setTabText(0,tr("Copy list")); + else + ui->tabWidget->setTabText(0,tr("Move list")); + updateModeAndType(); + updateTitle(); +} + +void Themes::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation) +{ + ui->exportTransferList->setVisible(transferListOperation & Ultracopier::TransferListOperation_Export); + ui->importTransferList->setVisible(transferListOperation & Ultracopier::TransferListOperation_Import); +} + +void Themes::haveExternalOrder() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); +// ui->moreButton->toggle(); +} + +void Themes::isInPause(const bool &isInPause) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("isInPause: ")+QString::number(isInPause)); + //resume in auto the pause + storeIsInPause=isInPause; + updatePause(); +} + +void Themes::updatePause() +{ + if(storeIsInPause) + { + ui->pauseButton->setIcon(player_play); + if(stat == status_started) + ui->pauseButton->setText(facilityEngine->translateText(QStringLiteral("Resume"))); + else + ui->pauseButton->setText(facilityEngine->translateText(QStringLiteral("Start"))); + } + else + { + ui->pauseButton->setIcon(player_pause); + ui->pauseButton->setText(facilityEngine->translateText(QStringLiteral("Pause"))); + } +} + +void Themes::updateCurrentFileInformation() +{ + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(transfertItem.haveItem) + { + QString newPath=transfertItem.from; + if(newPath.size()>(64+3)) + newPath=newPath.mid(0,32)+QStringLiteral("...")+newPath.mid(newPath.size()-32,32); + ui->from->setText(newPath); + newPath=transfertItem.to; + if(newPath.size()>(64+3)) + newPath=newPath.mid(0,32)+QStringLiteral("...")+newPath.mid(newPath.size()-32,32); + ui->to->setText(newPath); + ui->current_file->setText(transfertItem.current_file); + if(transfertItem.progressBar_read!=-1) + { + ui->progressBar_file->setRange(0,65535); + if(uiOptions->showDualProgression->isChecked()) + { + if(transfertItem.progressBar_read!=transfertItem.progressBar_write) + { + float permilleread=round((float)transfertItem.progressBar_read/65535*1000)/1000; + float permillewrite=permilleread-0.001; + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border: 1px solid grey;text-align: center;background-color: qlineargradient(spread:pad, x1:%1, y1:0, x2:%2, y2:0, stop:0 %3, stop:1 %4);}QProgressBar::chunk{background-color:%5;}") + .arg(permilleread) + .arg(permillewrite) + .arg(progressColorRemaining.name()) + .arg(progressColorRead.name()) + .arg(progressColorWrite.name()) + ); + } + else + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + ui->progressBar_file->setValue(transfertItem.progressBar_write); + } + else + ui->progressBar_file->setValue((transfertItem.progressBar_read+transfertItem.progressBar_write)/2); + } + else + ui->progressBar_file->setRange(0,0); + } + else + { + ui->from->setText(QStringLiteral("")); + ui->to->setText(QStringLiteral("")); + ui->current_file->setText(QStringLiteral("-")); + if(haveStarted && transferModel.rowCount()==0) + ui->progressBar_file->setValue(65535); + else if(!haveStarted) + ui->progressBar_file->setValue(0); + } +} + + +void Themes::on_putOnTop_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + selectedItems=selectionModel->selectedRows(); + QList<int> ids; + int index=0; + const int &loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsOnTop(ids); +} + +void Themes::on_pushUp_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + selectedItems=selectionModel->selectedRows(); + QList<int> ids; + int index=0; + const int &loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsUp(ids); +} + +void Themes::on_pushDown_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + selectedItems=selectionModel->selectedRows(); + QList<int> ids; + int index=0; + const int &loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsDown(ids); +} + +void Themes::on_putOnBottom_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + selectedItems=selectionModel->selectedRows(); + QList<int> ids; + int index=0; + const int &loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit moveItemsOnBottom(ids); +} + +void Themes::on_del_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + selectedItems=selectionModel->selectedRows(); + QList<int> ids; + int index=0; + const int &loop_size=selectedItems.size(); + while(index<loop_size) + { + ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong(); + index++; + } + if(ids.size()>0) + emit removeItems(ids); +} + +void Themes::on_cancelButton_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + this->hide(); + emit cancel(); +} + + +void Themes::speedWithProgressBar_toggled(bool checked) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + ui->progressBarCurrentSpeed->setVisible(checked); + ui->currentSpeed->setVisible(!checked); +} + +void Themes::showDualProgression_toggled(bool checked) +{ + Q_UNUSED(checked); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + updateProgressionColorBar(); +} + +void Themes::checkBoxShowSpeed_toggled(bool checked) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + Q_UNUSED(checked); + updateSpeed(); +} + +void Themes::on_SliderSpeed_valueChanged(int value) +{ + if(!uiOptions->checkBoxShowSpeed->isChecked()) + return; + switch(value) + { + case 0: + currentSpeed=0; + break; + case 1: + currentSpeed=1024; + break; + case 2: + currentSpeed=1024*4; + break; + case 3: + currentSpeed=1024*16; + break; + case 4: + currentSpeed=1024*64; + break; + case 5: + currentSpeed=1024*128; + break; + } + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("value: %1").arg(value)); + emit newSpeedLimitation(currentSpeed); + updateSpeed(); +} + +void Themes::uiUpdateSpeed() +{ + if(uiOptions->checkBoxShowSpeed->isChecked()) + return; + if(!uiOptions->checkBox_limitSpeed->isChecked()) + currentSpeed=0; + else + currentSpeed=uiOptions->limitSpeed->value(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("emit newSpeedLimitation(%1)").arg(currentSpeed)); + emit newSpeedLimitation(currentSpeed); +} + +void Themes::updateSpeed() +{ + ui->label_Slider_speed->setVisible(uiOptions->checkBoxShowSpeed->isChecked()); + ui->SliderSpeed->setVisible(uiOptions->checkBoxShowSpeed->isChecked()); + ui->label_SpeedMaxValue->setVisible(uiOptions->checkBoxShowSpeed->isChecked()); + uiOptions->limitSpeed->setVisible(!uiOptions->checkBoxShowSpeed->isChecked()); + uiOptions->checkBox_limitSpeed->setVisible(!uiOptions->checkBoxShowSpeed->isChecked()); + + if(uiOptions->checkBoxShowSpeed->isChecked()) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("checked, currentSpeed: %1").arg(currentSpeed)); + uiOptions->limitSpeed->setEnabled(false); + if(currentSpeed==0) + { + ui->SliderSpeed->setValue(0); + ui->label_SpeedMaxValue->setText(facilityEngine->translateText(QStringLiteral("Unlimited"))); + } + else if(currentSpeed<=1024) + { + if(currentSpeed!=1024) + { + currentSpeed=1024; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(1); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*1)); + } + else if(currentSpeed<=1024*4) + { + if(currentSpeed!=1024*4) + { + currentSpeed=1024*4; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(2); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*4)); + } + else if(currentSpeed<=1024*16) + { + if(currentSpeed!=1024*16) + { + currentSpeed=1024*16; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(3); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*16)); + } + else if(currentSpeed<=1024*64) + { + if(currentSpeed!=1024*64) + { + currentSpeed=1024*64; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(4); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*64)); + } + else + { + if(currentSpeed!=1024*128) + { + currentSpeed=1024*128; + emit newSpeedLimitation(currentSpeed); + } + ui->SliderSpeed->setValue(5); + ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*128)); + } + } + else + { + uiOptions->checkBox_limitSpeed->setChecked(currentSpeed>0); + if(currentSpeed>0) + uiOptions->limitSpeed->setValue(currentSpeed); + uiOptions->checkBox_limitSpeed->setEnabled(currentSpeed!=-1); + uiOptions->limitSpeed->setEnabled(uiOptions->checkBox_limitSpeed->isChecked()); + } +} + +void Themes::on_pauseButton_clicked() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + if(storeIsInPause) + emit resume(); + else + emit pause(); +} + +void Themes::on_skipButton_clicked() +{ + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(transfertItem.haveItem) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at running: %1").arg(transfertItem.id)); + emit skip(transfertItem.id); + } + else + { + if(transferModel.rowCount()>1) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at idle: %1").arg(transferModel.firstId())); + emit skip(transferModel.firstId()); + } + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"unable to skip the transfer, because no transfer running"); + } +} + +void Themes::updateModeAndType() +{ + menu->clear(); + if(modeIsForced) + { + menu->addAction(ui->actionAddFile); + if(type==Ultracopier::FileAndFolder) + menu->addAction(ui->actionAddFolder); + } + else + { + menu->addAction(ui->actionAddFileToCopy); + menu->addAction(ui->actionAddFileToMove); + if(type==Ultracopier::FileAndFolder) + { + menu->addAction(ui->actionAddFolderToCopy); + menu->addAction(ui->actionAddFolderToMove); + } + } +} + +void Themes::forcedModeAddFile() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + emit userAddFile(mode); +} + +void Themes::forcedModeAddFolder() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + emit userAddFolder(mode); +} + +void Themes::forcedModeAddFileToCopy() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + emit userAddFile(Ultracopier::Copy); +} + +void Themes::forcedModeAddFolderToCopy() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + emit userAddFolder(Ultracopier::Copy); +} + +void Themes::forcedModeAddFileToMove() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + emit userAddFile(Ultracopier::Move); +} + +void Themes::forcedModeAddFolderToMove() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + emit userAddFolder(Ultracopier::Move); +} + +void Themes::newLanguageLoaded() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + if(modeIsForced) + forceCopyMode(mode); + ui->retranslateUi(this); + uiOptions->retranslateUi(this); + uiOptions->comboBox_copyEnd->setItemText(0,tr("Don't close if errors are found")); + uiOptions->comboBox_copyEnd->setItemText(1,tr("Never close")); + uiOptions->comboBox_copyEnd->setItemText(2,tr("Always close")); + if(!haveStarted) + ui->current_file->setText(tr("File Name, 0KB")); + else + updateCurrentFileInformation(); + updateOverallInformation(); + updateSpeed(); + if(ui->tabWidget->count()>=4) + ui->tabWidget->setTabText(ui->tabWidget->count()-1,facilityEngine->translateText(QStringLiteral("Copy engine"))); + on_moreButton_toggled(ui->moreButton->isChecked()); +} + +void Themes::on_pushButtonCloseSearch_clicked() +{ + closeTheSearchBox(); +} + +//close the search box +void Themes::closeTheSearchBox() +{ + currentIndexSearch = -1; + ui->lineEditSearch->clear(); + ui->lineEditSearch->hide(); + ui->pushButtonSearchPrev->hide(); + ui->pushButtonSearchNext->hide(); + ui->pushButtonCloseSearch->hide(); + ui->searchButton->setChecked(false); + hilightTheSearch(); +} + +//search box shortcut +void Themes::searchBoxShortcut() +{ +/* if(ui->lineEditSearch->isHidden()) + {*/ + ui->lineEditSearch->show(); + ui->pushButtonSearchPrev->show(); + ui->pushButtonSearchNext->show(); + ui->pushButtonCloseSearch->show(); + ui->lineEditSearch->setFocus(Qt::ShortcutFocusReason); + ui->searchButton->setChecked(true); +/* } + else + closeTheSearchBox();*/ +} + +//hilight the search +void Themes::hilightTheSearch(bool searchNext) +{ + int result=transferModel.search(ui->lineEditSearch->text(),searchNext); + if(ui->lineEditSearch->text().isEmpty()) + ui->lineEditSearch->setStyleSheet(""); + else + { + if(result==-1) + ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(255, 150, 150);")); + else + { + ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(193,255,176);")); + ui->TransferList->scrollTo(transferModel.index(result,0)); + } + } +} + +void Themes::hilightTheSearchSlot() +{ + hilightTheSearch(); +} + +void Themes::on_pushButtonSearchPrev_clicked() +{ + int result=transferModel.searchPrev(ui->lineEditSearch->text()); + if(ui->lineEditSearch->text().isEmpty()) + ui->lineEditSearch->setStyleSheet(""); + else + { + if(result==-1) + ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(255, 150, 150);")); + else + { + ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(193,255,176);")); + ui->TransferList->scrollTo(transferModel.index(result,0)); + } + } +} + +void Themes::on_pushButtonSearchNext_clicked() +{ + hilightTheSearch(true); +} + +void Themes::on_lineEditSearch_returnPressed() +{ + hilightTheSearch(); +} + +void Themes::on_lineEditSearch_textChanged(QString text) +{ + if(text=="") + { + TimerForSearch->stop(); + hilightTheSearch(); + } + else + TimerForSearch->start(); +} + +void Themes::on_moreButton_toggled(bool checked) +{ + if(checked) + this->setMaximumHeight(16777215); + else + this->setMaximumHeight(130); + // usefull under windows + this->updateGeometry(); + this->update(); + this->adjustSize(); +} + +/* drag event processing + +need setAcceptDrops(true); into the constructor +need implementation to accept the drop: +void dragEnterEvent(QDragEnterEvent* event); +void dragMoveEvent(QDragMoveEvent* event); +void dragLeaveEvent(QDragLeaveEvent* event); +*/ +void Themes::dropEvent(QDropEvent *event) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + const QMimeData* mimeData = event->mimeData(); + if(mimeData->hasUrls()) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("hasUrls")); + emit urlDropped(mimeData->urls()); + event->acceptProposedAction(); + } +} + +void Themes::dragEnterEvent(QDragEnterEvent* event) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + // if some actions should not be usable, like move, this code must be adopted + const QMimeData* mimeData = event->mimeData(); + if(mimeData->hasUrls()) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("hasUrls")); + event->acceptProposedAction(); + } +} + +void Themes::dragMoveEvent(QDragMoveEvent* event) +{ + // if some actions should not be usable, like move, this code must be adopted + const QMimeData* mimeData = event->mimeData(); + if(mimeData->hasUrls()) + event->acceptProposedAction(); +} + +void Themes::dragLeaveEvent(QDragLeaveEvent* event) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start")); + event->accept(); +} + +void Themes::on_searchButton_toggled(bool checked) +{ + if(checked) + searchBoxShortcut(); + else + closeTheSearchBox(); +} + +void Themes::on_exportTransferList_clicked() +{ + emit exportTransferList(); +} + +void Themes::on_importTransferList_clicked() +{ + emit importTransferList(); +} + +void Themes::progressColorWrite_clicked() +{ + QColor color=QColorDialog::getColor(progressColorWrite,this,tr("Select a color")); + if(!color.isValid()) + return; + progressColorWrite=color; + QPixmap pixmap(75,20); + pixmap.fill(progressColorWrite); + uiOptions->progressColorWrite->setIcon(pixmap); + updateProgressionColorBar(); +} + +void Themes::progressColorRead_clicked() +{ + QColor color=QColorDialog::getColor(progressColorRead,this,tr("Select a color")); + if(!color.isValid()) + return; + progressColorRead=color; + QPixmap pixmap(75,20); + pixmap.fill(progressColorRead); + uiOptions->progressColorRead->setIcon(pixmap); + updateProgressionColorBar(); +} + +void Themes::progressColorRemaining_clicked() +{ + QColor color=QColorDialog::getColor(progressColorRemaining,this,tr("Select a color")); + if(!color.isValid()) + return; + progressColorRemaining=color; + QPixmap pixmap(75,20); + pixmap.fill(progressColorRemaining); + uiOptions->progressColorRemaining->setIcon(pixmap); + updateProgressionColorBar(); +} + +void Themes::alwaysOnTop_clicked(bool reshow) +{ + Qt::WindowFlags flags = windowFlags(); + #ifdef Q_OS_WIN32 + if(uiOptions->alwaysOnTop->isChecked()) + SetWindowPos((HWND)this->winId(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); + else + SetWindowPos((HWND)this->winId(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); + #endif + #ifdef Q_OS_LINUX + if(uiOptions->alwaysOnTop->isChecked()) + flags=flags | Qt::X11BypassWindowManagerHint; + else + flags=flags & ~Qt::X11BypassWindowManagerHint; + #endif + if(uiOptions->alwaysOnTop->isChecked()) + flags=flags | Qt::WindowStaysOnTopHint; + else + flags=flags & ~Qt::WindowStaysOnTopHint; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"uiOptions->alwaysOnTop->isChecked(): "+QString::number(uiOptions->alwaysOnTop->isChecked())+", flags: "+QString::number(flags)); + setWindowFlags(flags); + if(reshow) + show(); +} + +void Themes::alwaysOnTop_clickedSlot() +{ + alwaysOnTop_clicked(true); +} + +void Themes::updateProgressionColorBar() +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + uiOptions->labelProgressionColor->setVisible(uiOptions->showDualProgression->isChecked()); + uiOptions->frameProgressionColor->setVisible(uiOptions->showDualProgression->isChecked()); + if(!uiOptions->showDualProgression->isChecked()) + { + /*ui->progressBar_all->setStyleSheet(""); + ui->progressBar_file->setStyleSheet(""); + ui->progressBarCurrentSpeed->setStyleSheet("");*/ + } + else + { + ui->progressBar_all->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + ui->progressBarCurrentSpeed->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + } + if(stat==status_never_started) + updateCurrentFileInformation(); +} + +void Themes::updateTitle() +{ + if(uiOptions->showProgressionInTheTitle->isChecked() && totalSize>0) + { + if(!modeIsForced) + this->setWindowTitle(tr("%1 %2% of %3").arg(facilityEngine->translateText("Transfer")).arg((currentSize*100)/totalSize).arg(facilityEngine->sizeToString(totalSize))+QStringLiteral(" - ")+facilityEngine->softwareName()); + else + { + if(mode==Ultracopier::Copy) + this->setWindowTitle(tr("%1 %2% of %3").arg(facilityEngine->translateText("Copy")).arg((currentSize*100)/totalSize).arg(facilityEngine->sizeToString(totalSize))+QStringLiteral(" - ")+facilityEngine->softwareName()); + else + this->setWindowTitle(tr("%1 %2% of %3").arg(facilityEngine->translateText("Move")).arg((currentSize*100)/totalSize).arg(facilityEngine->sizeToString(totalSize))+QStringLiteral(" - ")+facilityEngine->softwareName()); + } + } + else + { + if(!modeIsForced) + this->setWindowTitle(QStringLiteral("%1").arg(facilityEngine->translateText("Transfer"))+QStringLiteral(" - ")+facilityEngine->softwareName()); + else + { + if(mode==Ultracopier::Copy) + this->setWindowTitle(QStringLiteral("%1").arg(facilityEngine->translateText("Copy"))+QStringLiteral(" - ")+facilityEngine->softwareName()); + else + this->setWindowTitle(QStringLiteral("%1").arg(facilityEngine->translateText("Move"))+QStringLiteral(" - ")+facilityEngine->softwareName()); + } + } +} + +/** \brief Create progessive icon + +Do QIcon with top and bottom image mixed and percent writed on it. +The icon it be search in the style path. +Do by mongaulois, remake by alpha_one_x86. +\param percent indique how many percent need be showed, sould be between 0 and 100 +\param text The showed text if needed (optionnal) +\return QIcon of the final image +\note Can be used as it: dynaIcon(75,"...") +*/ +QIcon Themes::dynaIcon(int percent,QString text) const +{ + #ifdef ULTRACOPIER_PLUGIN_DEBUG + if(pixmapTop.isNull() || pixmapBottom.isNull()) + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Error loading the icons"); + #endif + if(percent==-1) + percent=getOldProgression; + if(percent<0) + percent=0; + if(percent>100) + percent=100; + //pixmap avec un fond transparent + #ifdef Q_OS_WIN32 + quint8 imageSize=16; + #else + quint8 imageSize=22; + #endif + QPixmap resultImage(imageSize,imageSize); + resultImage.fill(Qt::transparent); + { + QPainter painter(&resultImage); + #ifndef Q_OS_WIN32 + QFont font(QStringLiteral("Courier New"),9); + font.setBold(true); + font.setKerning(true); + painter.setFont(font); + #endif + #ifdef Q_OS_WIN32 + QFont font(QStringLiteral("Courier New"),8); + font.setBold(true); + font.setKerning(true); + painter.setFont(font); + #endif + + //preprocessing the calcul + quint8 bottomPixel=(percent*imageSize)/100; + quint8 topPixel=imageSize-bottomPixel; + + //top image + if(topPixel>0) + { + QRect target(0, 0, imageSize, topPixel); + QRect source(0, 0, imageSize, topPixel); + painter.drawPixmap(target, pixmapTop, source); + } + + //bottom image + if(bottomPixel>0) + { + QRect target2(0, topPixel, imageSize, bottomPixel); + QRect source2(0, topPixel, imageSize, bottomPixel); + painter.drawPixmap(target2, pixmapBottom, source2); + } + + qint8 textxOffset=0; + qint8 textyOffset=0; + if(text.isEmpty()) + { + if(percent!=100) + text=QString::number(percent); + else + { + text=QStringLiteral(":)"); + #ifdef Q_OS_WIN32 + textyOffset-=2; + #else + textyOffset-=1; + #endif + } + } + if(text.size()==1) + { + textxOffset+=3; + #ifdef Q_OS_WIN32 + textxOffset-=1; + #endif + } + else + { + #ifdef Q_OS_WIN32 + textxOffset-=1; + #endif + } + #ifndef Q_OS_WIN32 + textxOffset+=2; + textyOffset+=3; + #endif + painter.setPen(QPen(Qt::black)); + painter.drawText(3+textxOffset,13+textyOffset,text); + painter.setPen(QPen(Qt::white)); + painter.drawText(2+textxOffset,12+textyOffset,text); + } + return QIcon(resultImage); +} + +/** \brief For catch an action on the systray icon +\param reason Why it activated +*/ +void Themes::catchAction(QSystemTrayIcon::ActivationReason reason) +{ + if(reason==QSystemTrayIcon::DoubleClick || reason==QSystemTrayIcon::Trigger) + { + sysTrayIcon->hide(); + this->show(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"Double Click detected"); + } + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("reason: %1").arg(reason)); +} + +void Themes::on_exportErrorToTransferList_clicked() +{ + emit exportErrorIntoTransferList(); +} diff --git a/plugins-alternative/Themes/Supercopier/interface.h b/plugins-alternative/Themes/Supercopier/interface.h new file mode 100644 index 0000000..6929f07 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interface.h @@ -0,0 +1,221 @@ +/** \file interface.h +\brief Define the interface +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef INTERFACE_H +#define INTERFACE_H + +#include <QObject> +#include <QWidget> +#include <QMenu> +#include <QCloseEvent> +#include <QShortcut> +#include <QItemSelectionModel> +#include <QTimer> +#include <QTime> +#include <QSystemTrayIcon> +#include <QPixmap> + +#include "../../../interface/PluginInterface_Themes.h" + +#include "ui_interface.h" +#include "ui_themesOptions.h" +#include "Environment.h" +#include "TransferModel.h" + +// for windows progress bar +#ifndef __GNUC__ +#include <shobjidl.h> +#endif + +namespace Ui { + class interfaceCopy; + class themesOptions; +} + +/// \brief Define the interface +class Themes : public PluginInterface_Themes +{ + Q_OBJECT +public: + Themes(const bool &alwaysOnTop, + const bool &showProgressionInTheTitle, + const QColor &progressColorWrite, + const QColor &progressColorRead, + const QColor &progressColorRemaining, + const bool &showDualProgression, + const quint8 &comboBox_copyEnd, + const bool &speedWithProgressBar, + const qint32 ¤tSpeed, + const bool &checkBoxShowSpeed, + FacilityInterface * facilityEngine, + const bool &moreButtonPushed, + const bool &minimizeToSystray); + ~Themes(); + //send information about the copy + /// \brief to set the action in progress + void actionInProgess(const Ultracopier::EngineActionInProgress &); + /// \brief the new folder is listing + void newFolderListing(const QString &path); + /** \brief show the detected speed + * in byte per seconds */ + void detectedSpeed(const quint64 &speed); + /** \brief show the remaining time + * time in seconds */ + void remainingTime(const int &remainingSeconds); + /// \brief set the current collision action + void newCollisionAction(const QString &action); + /// \brief set the current error action + void newErrorAction(const QString &action); + /// \brief set one error is detected + void errorDetected(); + /// \brief new error + void errorToRetry(const QString &source,const QString &destination,const QString &error); + /** \brief support speed limitation */ + void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool); + //get information about the copy + /// \brief show the general progression + void setGeneralProgression(const quint64 ¤t,const quint64 &total); + /// \brief show the file progression + void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList); + /// \brief set the copyType -> file or folder + void setCopyType(const Ultracopier::CopyType &); + /// \brief set the copyMove -> copy or move, to force in copy or move, else support both + void forceCopyMode(const Ultracopier::CopyMode &); + /// \brief set if transfer list is exportable/importable + void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation); + //edit the transfer list + /// \brief get action on the transfer list (add/move/remove) + void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions); + /** \brief set if the order is external (like file manager copy) + * to notify the interface, which can hide add folder/filer button */ + void haveExternalOrder(); + /// \brief set if is in pause + void isInPause(const bool &); + /// \brief get the widget for the copy engine + QWidget * getOptionsEngineWidget(); + /// \brief to set if the copy engine is found + void getOptionsEngineEnabled(const bool &isEnabled); + enum status{status_never_started,status_started,status_stopped}; + status stat; +public slots: + /// \brief set the translate + void newLanguageLoaded(); +private slots: + void on_putOnTop_clicked(); + void on_pushUp_clicked(); + void on_pushDown_clicked(); + void on_putOnBottom_clicked(); + void on_del_clicked(); + void on_cancelButton_clicked(); + void speedWithProgressBar_toggled(bool checked); + void showDualProgression_toggled(bool checked); + void checkBoxShowSpeed_toggled(bool checked); + void on_SliderSpeed_valueChanged(int value); + void on_pauseButton_clicked(); + void on_skipButton_clicked(); + void forcedModeAddFile(); + void forcedModeAddFolder(); + void forcedModeAddFileToCopy(); + void forcedModeAddFolderToCopy(); + void forcedModeAddFileToMove(); + void forcedModeAddFolderToMove(); + void uiUpdateSpeed(); + void on_pushButtonCloseSearch_clicked(); + //close the search box + void closeTheSearchBox(); + //search box shortcut + void searchBoxShortcut(); + //hilight the search + void hilightTheSearch(bool searchNext=false); + void hilightTheSearchSlot(); + //auto connect + void on_pushButtonSearchPrev_clicked(); + void on_pushButtonSearchNext_clicked(); + void on_lineEditSearch_returnPressed(); + void on_lineEditSearch_textChanged(QString text); + void on_moreButton_toggled(bool checked); + void on_searchButton_toggled(bool checked); + void on_exportTransferList_clicked(); + void on_importTransferList_clicked(); + void progressColorWrite_clicked(); + void progressColorRead_clicked(); + void progressColorRemaining_clicked(); + void alwaysOnTop_clicked(bool reshow); + void alwaysOnTop_clickedSlot(); + void updateProgressionColorBar(); + void updateTitle(); + void catchAction(QSystemTrayIcon::ActivationReason reason); + void on_exportErrorToTransferList_clicked(); + +private: + QTime duration; + bool durationStarted; + QPixmap pixmapTop,pixmapBottom; + QColor progressColorWrite,progressColorRead,progressColorRemaining; + Ui::interfaceCopy *ui; + Ui::themesOptions *uiOptions; + quint64 currentFile; + quint64 totalFile; + quint64 currentSize; + quint64 totalSize; + quint8 getOldProgression; + QSystemTrayIcon *sysTrayIcon; + void updateOverallInformation(); + void updateCurrentFileInformation(); + QMenu *menu; + Ultracopier::EngineActionInProgress action; + void closeEvent(QCloseEvent *event); + qint32 currentSpeed;///< in KB/s, assume as 0KB/s as default like every where + void updateSpeed(); + bool storeIsInPause; + bool modeIsForced; + Ultracopier::CopyType type; + Ultracopier::CopyMode mode; + void updateModeAndType(); + bool haveStarted; + bool haveError; + QWidget optionEngineWidget; + QShortcut *searchShortcut; + QShortcut *searchShortcut2; + QShortcut *searchShortcut3; + QTimer *TimerForSearch; + int currentIndexSearch; ///< Current index search in starting at the end + FacilityInterface * facilityEngine; + QItemSelectionModel *selectionModel; + QModelIndexList selectedItems; + /// \brief the custom transfer model + TransferModel transferModel; + + static QIcon player_play,player_pause; + + /** \brief drag event processing + + need setAcceptDrops(true); into the constructor + need implementation to accept the drop: + void dragEnterEvent(QDragEnterEvent* event); + void dragMoveEvent(QDragMoveEvent* event); + void dragLeaveEvent(QDragLeaveEvent* event); + */ + void dropEvent(QDropEvent *event); + /** \brief accept all event to allow the drag and drop + \see dropEvent() */ + void dragEnterEvent(QDragEnterEvent* event); + /** \brief accept all event to allow the drag and drop + \see dropEvent() */ + void dragMoveEvent(QDragMoveEvent* event); + /** \brief accept all event to allow the drag and drop + \see dropEvent() */ + void dragLeaveEvent(QDragLeaveEvent* event); + //have functionality + bool shutdown; + void updatePause(); + QIcon dynaIcon(int percent,QString text="") const; + void updateSysTrayIcon(); +signals: + /// \brief To debug source + void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne) const; +}; + +#endif // INTERFACE_H diff --git a/plugins-alternative/Themes/Supercopier/interface.pro b/plugins-alternative/Themes/Supercopier/interface.pro new file mode 100644 index 0000000..809a84c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interface.pro @@ -0,0 +1,59 @@ +CONFIG += c++11 +QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra" +mac:QMAKE_CXXFLAGS+="-stdlib=libc++" + +QT += widgets +TEMPLATE = lib +CONFIG += plugin +HEADERS = interface.h \ + StructEnumDefinition.h \ + factory.h \ + DebugEngineMacro.h \ + Environment.h \ + Variable.h \ + ../../../interface/PluginInterface_Themes.h \ + ../../../interface/FacilityInterface.h \ + ../../../interface/OptionInterface.h \ + TransferModel.h +SOURCES = interface.cpp \ + factory.cpp \ + TransferModel.cpp +TARGET = $$qtLibraryTarget(interface) +TRANSLATIONS += Languages/ar/translation.ts \ + Languages/de/translation.ts \ + Languages/el/translation.ts \ + Languages/en/translation.ts \ + Languages/es/translation.ts \ + Languages/fr/translation.ts \ + Languages/hi/translation.ts \ + Languages/hu/translation.ts \ + Languages/id/translation.ts \ + Languages/it/translation.ts \ + Languages/ja/translation.ts \ + Languages/ko/translation.ts \ + Languages/nl/translation.ts \ + Languages/no/translation.ts \ + Languages/pl/translation.ts \ + Languages/pt/translation.ts \ + Languages/ru/translation.ts \ + Languages/th/translation.ts \ + Languages/tr/translation.ts \ + Languages/zh/translation.ts + +win32 { + RESOURCES += +} +!win32 { + RESOURCES += +} + +!CONFIG(static) { +RESOURCES += \ + interfaceResources.qrc \ + interfaceResources_unix.qrc \ + interfaceResources_windows.qrc +} + +FORMS += \ + interface.ui \ + themesOptions.ui diff --git a/plugins-alternative/Themes/Supercopier/interface.ui b/plugins-alternative/Themes/Supercopier/interface.ui new file mode 100644 index 0000000..e5b84a5 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interface.ui @@ -0,0 +1,845 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>interfaceCopy</class> + <widget class="QWidget" name="interfaceCopy"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>508</width> + <height>448</height> + </rect> + </property> + <property name="windowTitle"> + <string notr="true">Supercopier</string> + </property> + <property name="windowIcon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/main.png</normaloff>:/Themes/Supercopier/resources/main.png</iconset> + </property> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>1</number> + </property> + <item> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>2</number> + </property> + <item> + <widget class="QLabel" name="from_label"> + <property name="text"> + <string>From:</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="from"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="textFormat"> + <enum>Qt::PlainText</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="ad_ultimate"> + <property name="openExternalLinks"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>5</number> + </property> + <item> + <widget class="QLabel" name="to_label"> + <property name="text"> + <string>To:</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="to"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="textFormat"> + <enum>Qt::PlainText</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QLabel" name="overall"> + <property name="text"> + <string notr="true">File 0/0, Total: 0KB</string> + </property> + <property name="textFormat"> + <enum>Qt::PlainText</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="labelTimeRemaining"> + <property name="textFormat"> + <enum>Qt::RichText</enum> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="shutdown"> + <property name="maximumSize"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + <property name="toolTip"> + <string>Close at the end of the transfers</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/SystemTrayIcon/exit.png</normaloff>:/Themes/Supercopier/resources/SystemTrayIcon/exit.png</iconset> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QProgressBar" name="progressBar_all"> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16</height> + </size> + </property> + <property name="maximum"> + <number>65535</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="current_file"> + <property name="text"> + <string notr="true">File Name, 0KB</string> + </property> + <property name="textFormat"> + <enum>Qt::PlainText</enum> + </property> + </widget> + </item> + <item> + <widget class="QProgressBar" name="progressBar_file"> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16</height> + </size> + </property> + <property name="maximum"> + <number>65535</number> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>4</number> + </property> + <item> + <widget class="QLabel" name="currentSpeed"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>60</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string notr="true">0KB/sec</string> + </property> + </widget> + </item> + <item> + <widget class="QProgressBar" name="progressBarCurrentSpeed"> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16</height> + </size> + </property> + <property name="maximum"> + <number>1</number> + </property> + <property name="value"> + <number>0</number> + </property> + <property name="format"> + <string notr="true">0KB/sec</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="moreButton"> + <property name="text"> + <string>&More</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/moveDown.png</normaloff>:/Themes/Supercopier/resources/moveDown.png</iconset> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pauseButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>&Pause</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/player_pause.png</normaloff>:/Themes/Supercopier/resources/player_pause.png</iconset> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="skipButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>&Skip</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/player_end.png</normaloff>:/Themes/Supercopier/resources/player_end.png</iconset> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="cancelButton"> + <property name="text"> + <string>&Cancel</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/cancel.png</normaloff>:/Themes/Supercopier/resources/cancel.png</iconset> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="limitSpeedAsMain"> + <item> + <widget class="QLabel" name="label_Slider_speed"> + <property name="text"> + <string>Limit copy speed to:</string> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="SliderSpeed"> + <property name="maximum"> + <number>5</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_SpeedMaxValue"> + <property name="text"> + <string notr="true">Unlimited</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QTabWidget" name="tabWidget"> + <property name="currentIndex"> + <number>0</number> + </property> + <widget class="QWidget" name="tab_main"> + <attribute name="title"> + <string>Transfer list</string> + </attribute> + <layout class="QHBoxLayout"> + <item> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>1</number> + </property> + <item> + <widget class="QToolButton" name="putOnTop"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Move the selected items to the top</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/putOnTop.png</normaloff>:/Themes/Supercopier/resources/putOnTop.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="pushUp"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Move up the selected items</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/moveUp.png</normaloff>:/Themes/Supercopier/resources/moveUp.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="pushDown"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Move down the selected items</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/moveDown.png</normaloff>:/Themes/Supercopier/resources/moveDown.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="putOnBottom"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Move the selected items to the bottom</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/putOnBottom.png</normaloff>:/Themes/Supercopier/resources/putOnBottom.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="add"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Add file/folder</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="popupMode"> + <enum>QToolButton::InstantPopup</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="del"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Delete the selected items</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/remove.png</normaloff>:/Themes/Supercopier/resources/remove.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="searchButton"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Search</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/search.png</normaloff>:/Themes/Supercopier/resources/search.png</iconset> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="exportTransferList"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Export the transfer list</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="importTransferList"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Import the transfer list</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/import-transfer-list.png</normaloff>:/Themes/Supercopier/resources/import-transfer-list.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <spacer> + <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> + <item> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <widget class="QTreeView" name="TransferList"> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="uniformRowHeights"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayoutSearch"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <widget class="QLineEdit" name="lineEditSearch"/> + </item> + <item> + <widget class="QPushButton" name="pushButtonSearchPrev"> + <property name="text"> + <string>Previous</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pushButtonSearchNext"> + <property name="text"> + <string>Next</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pushButtonCloseSearch"> + <property name="minimumSize"> + <size> + <width>25</width> + <height>25</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>25</width> + <height>25</height> + </size> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/remove.png</normaloff>:/Themes/Supercopier/resources/remove.png</iconset> + </property> + <property name="flat"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_error"> + <attribute name="title"> + <string>Error</string> + </attribute> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QToolButton" name="exportErrorToTransferList"> + <property name="minimumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolTip"> + <string>Export the errors into transfer list</string> + </property> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</iconset> + </property> + <property name="autoRaise"> + <bool>true</bool> + </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> + <item> + <widget class="QTreeWidget" name="errorList"> + <property name="selectionMode"> + <enum>QAbstractItemView::NoSelection</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="uniformRowHeights"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>Source</string> + </property> + </column> + <column> + <property name="text"> + <string>Destination</string> + </property> + </column> + <column> + <property name="text"> + <string>Error</string> + </property> + </column> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_interface"> + <attribute name="title"> + <string>Interface</string> + </attribute> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QScrollArea" name="optionsTab"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>492</width> + <height>243</height> + </rect> + </property> + </widget> + </widget> + </item> + </layout> + </widget> + </widget> + </item> + </layout> + <action name="actionAddFile"> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="text"> + <string>Add file</string> + </property> + </action> + <action name="actionAddFolder"> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="text"> + <string>Add folder</string> + </property> + </action> + <action name="actionAddFileToMove"> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="text"> + <string>Move file(s)</string> + </property> + </action> + <action name="actionAddFolderToMove"> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="text"> + <string>Move folder</string> + </property> + </action> + <action name="actionAddFileToCopy"> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="text"> + <string>Copy file(s)</string> + </property> + </action> + <action name="actionAddFolderToCopy"> + <property name="icon"> + <iconset resource="interfaceResources.qrc"> + <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset> + </property> + <property name="text"> + <string>Copy folder</string> + </property> + </action> + </widget> + <resources> + <include location="interfaceResources.qrc"/> + </resources> + <connections> + <connection> + <sender>moreButton</sender> + <signal>toggled(bool)</signal> + <receiver>tabWidget</receiver> + <slot>setVisible(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>218</x> + <y>144</y> + </hint> + <hint type="destinationlabel"> + <x>149</x> + <y>305</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/plugins-alternative/Themes/Supercopier/interfaceResources.qrc b/plugins-alternative/Themes/Supercopier/interfaceResources.qrc new file mode 100644 index 0000000..d8990aa --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interfaceResources.qrc @@ -0,0 +1,24 @@ +<RCC> + <qresource prefix="/Themes/Supercopier"> + <file>resources/add.png</file> + <file>resources/cancel.png</file> + <file>resources/main.png</file> + <file>resources/moveDown.png</file> + <file>resources/moveUp.png</file> + <file>resources/player_end.png</file> + <file>resources/player_pause.png</file> + <file>resources/player_play.png</file> + <file>resources/putOnBottom.png</file> + <file>resources/putOnTop.png</file> + <file>resources/remove.png</file> + <file>resources/search.png</file> + <file>resources/export-transfer-list.png</file> + <file>resources/import-transfer-list.png</file> + <file>resources/SystemTrayIcon/add.png</file> + <file>resources/SystemTrayIcon/exit.png</file> + <file>resources/SystemTrayIcon/informations.png</file> + <file>resources/SystemTrayIcon/options.png</file> + <file>resources/progressbarleft.png</file> + <file>resources/progressbarright.png</file> + </qresource> +</RCC> diff --git a/plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc b/plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc new file mode 100644 index 0000000..52bc325 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc @@ -0,0 +1,9 @@ +<RCC> + <qresource prefix="/Themes/Supercopier"> + <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file> + <file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file> + <file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file> + <file>resources/SystemTrayIcon/systray_Top_Progress_Unix.png</file> + <file>resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png</file> + </qresource> +</RCC> diff --git a/plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc b/plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc new file mode 100644 index 0000000..aed7063 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc @@ -0,0 +1,9 @@ +<RCC> + <qresource prefix="/Themes/Supercopier"> + <file>resources/SystemTrayIcon/systray_Caught_Windows.png</file> + <file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file> + <file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file> + <file>resources/SystemTrayIcon/systray_Top_Progress_Windows.png</file> + <file>resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png</file> + </qresource> +</RCC> diff --git a/plugins-alternative/Themes/Supercopier/plugin.json b/plugins-alternative/Themes/Supercopier/plugin.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/plugin.json @@ -0,0 +1 @@ +{}
\ No newline at end of file diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.png Binary files differnew file mode 100644 index 0000000..d41fce6 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.png Binary files differnew file mode 100644 index 0000000..9599bba --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.png Binary files differnew file mode 100644 index 0000000..86c9ba6 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.png Binary files differnew file mode 100644 index 0000000..cf699d5 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png Binary files differnew file mode 100644 index 0000000..543aaf1 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png Binary files differnew file mode 100644 index 0000000..ff110d9 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.png Binary files differnew file mode 100644 index 0000000..be2ba20 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.png Binary files differnew file mode 100644 index 0000000..9c597af --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png Binary files differnew file mode 100644 index 0000000..be2ba20 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png Binary files differnew file mode 100644 index 0000000..9c597af --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png Binary files differnew file mode 100644 index 0000000..1d93cb1 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png Binary files differnew file mode 100644 index 0000000..2074ee8 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.png Binary files differnew file mode 100644 index 0000000..4da8cc0 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.png diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.png Binary files differnew file mode 100644 index 0000000..8bfbcf9 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.png diff --git a/plugins-alternative/Themes/Supercopier/resources/add.png b/plugins-alternative/Themes/Supercopier/resources/add.png Binary files differnew file mode 100644 index 0000000..af8a401 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/add.png diff --git a/plugins-alternative/Themes/Supercopier/resources/cancel.png b/plugins-alternative/Themes/Supercopier/resources/cancel.png Binary files differnew file mode 100644 index 0000000..1e7579c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/cancel.png diff --git a/plugins-alternative/Themes/Supercopier/resources/export-transfer-list.png b/plugins-alternative/Themes/Supercopier/resources/export-transfer-list.png Binary files differnew file mode 100644 index 0000000..2bcc455 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/export-transfer-list.png diff --git a/plugins-alternative/Themes/Supercopier/resources/import-transfer-list.png b/plugins-alternative/Themes/Supercopier/resources/import-transfer-list.png Binary files differnew file mode 100644 index 0000000..d208342 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/import-transfer-list.png diff --git a/plugins-alternative/Themes/Supercopier/resources/main.png b/plugins-alternative/Themes/Supercopier/resources/main.png Binary files differnew file mode 100644 index 0000000..9bec399 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/main.png diff --git a/plugins-alternative/Themes/Supercopier/resources/moveDown.png b/plugins-alternative/Themes/Supercopier/resources/moveDown.png Binary files differnew file mode 100644 index 0000000..7f4ff27 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/moveDown.png diff --git a/plugins-alternative/Themes/Supercopier/resources/moveUp.png b/plugins-alternative/Themes/Supercopier/resources/moveUp.png Binary files differnew file mode 100644 index 0000000..9397b76 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/moveUp.png diff --git a/plugins-alternative/Themes/Supercopier/resources/player_end.png b/plugins-alternative/Themes/Supercopier/resources/player_end.png Binary files differnew file mode 100644 index 0000000..9730302 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/player_end.png diff --git a/plugins-alternative/Themes/Supercopier/resources/player_pause.png b/plugins-alternative/Themes/Supercopier/resources/player_pause.png Binary files differnew file mode 100644 index 0000000..429ae43 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/player_pause.png diff --git a/plugins-alternative/Themes/Supercopier/resources/player_play.png b/plugins-alternative/Themes/Supercopier/resources/player_play.png Binary files differnew file mode 100644 index 0000000..a28ac73 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/player_play.png diff --git a/plugins-alternative/Themes/Supercopier/resources/progressbarleft.png b/plugins-alternative/Themes/Supercopier/resources/progressbarleft.png Binary files differnew file mode 100644 index 0000000..bbee9c8 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/progressbarleft.png diff --git a/plugins-alternative/Themes/Supercopier/resources/progressbarright.png b/plugins-alternative/Themes/Supercopier/resources/progressbarright.png Binary files differnew file mode 100644 index 0000000..93e5781 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/progressbarright.png diff --git a/plugins-alternative/Themes/Supercopier/resources/putOnBottom.png b/plugins-alternative/Themes/Supercopier/resources/putOnBottom.png Binary files differnew file mode 100644 index 0000000..9ac517c --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/putOnBottom.png diff --git a/plugins-alternative/Themes/Supercopier/resources/putOnTop.png b/plugins-alternative/Themes/Supercopier/resources/putOnTop.png Binary files differnew file mode 100644 index 0000000..5682829 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/putOnTop.png diff --git a/plugins-alternative/Themes/Supercopier/resources/remove.png b/plugins-alternative/Themes/Supercopier/resources/remove.png Binary files differnew file mode 100644 index 0000000..3a2a9f1 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/remove.png diff --git a/plugins-alternative/Themes/Supercopier/resources/search.png b/plugins-alternative/Themes/Supercopier/resources/search.png Binary files differnew file mode 100644 index 0000000..567f498 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/resources/search.png diff --git a/plugins-alternative/Themes/Supercopier/themesOptions.ui b/plugins-alternative/Themes/Supercopier/themesOptions.ui new file mode 100644 index 0000000..46c7f97 --- /dev/null +++ b/plugins-alternative/Themes/Supercopier/themesOptions.ui @@ -0,0 +1,384 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>themesOptions</class> + <widget class="QWidget" name="themesOptions"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>540</width> + <height>325</height> + </rect> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QToolBox" name="toolBox"> + <property name="currentIndex"> + <number>0</number> + </property> + <widget class="QWidget" name="page"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>530</width> + <height>237</height> + </rect> + </property> + <attribute name="label"> + <string>Use</string> + </attribute> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" colspan="2"> + <widget class="QLabel" name="labelStartWithMoreButtonPushed"> + <property name="text"> + <string>Start with the "more button" pushed</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QCheckBox" name="checkBoxStartWithMoreButtonPushed"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="labelAlwaysOnTop"> + <property name="text"> + <string>Always on top</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QCheckBox" name="alwaysOnTop"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Minimize on close to systray</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QCheckBox" name="minimizeToSystray"/> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>At the end of the copy</string> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QComboBox" name="comboBox_copyEnd"> + <item> + <property name="text"> + <string notr="true">Don't close if errors are found</string> + </property> + </item> + <item> + <property name="text"> + <string notr="true">Never close</string> + </property> + </item> + <item> + <property name="text"> + <string notr="true">Always close</string> + </property> + </item> + </widget> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_Slider_speed"> + <property name="text"> + <string>Limit copy speed to</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QSlider" name="SliderSpeed"> + <property name="maximum"> + <number>5</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QLabel" name="label_SpeedMaxValue"> + <property name="text"> + <string notr="true">Unlimited</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QCheckBox" name="checkBox_limitSpeed"> + <property name="text"> + <string>Limit copy speed to</string> + </property> + </widget> + </item> + <item row="5" column="1"> + <widget class="QSpinBox" name="limitSpeed"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> KB/s</string> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999</number> + </property> + </widget> + </item> + <item row="6" column="2"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>71</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="page_3"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>241</width> + <height>33</height> + </rect> + </property> + <attribute name="label"> + <string>Informations</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QLabel" name="labelShowSpeedAsMain"> + <property name="text"> + <string>Show speed as main information</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="checkBoxShowSpeed"/> + </item> + <item row="1" column="1"> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>201</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="page_2"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>441</width> + <height>107</height> + </rect> + </property> + <attribute name="label"> + <string>Display</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="0" column="0"> + <widget class="QLabel" name="labelSpeedWithProgressBar"> + <property name="text"> + <string>Speed with progress bar</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QCheckBox" name="speedWithProgressBar"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Show progression in the title</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QCheckBox" name="showProgressionInTheTitle"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="labelDualProgression"> + <property name="text"> + <string>Show dual progression</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QCheckBox" name="showDualProgression"/> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="labelProgressionColor"> + <property name="text"> + <string>Progression color</string> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QFrame" name="frameProgressionColor"> + <property name="minimumSize"> + <size> + <width>225</width> + <height>20</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>225</width> + <height>20</height> + </size> + </property> + <property name="toolTip"> + <string>Click to edit the color</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QPushButton" name="progressColorWrite"> + <property name="minimumSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="iconSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="flat"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="progressColorRead"> + <property name="minimumSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="iconSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="flat"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="progressColorRemaining"> + <property name="minimumSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="iconSize"> + <size> + <width>75</width> + <height>20</height> + </size> + </property> + <property name="flat"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="4" column="1"> + <spacer name="verticalSpacer_3"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>127</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>checkBox_limitSpeed</sender> + <signal>clicked(bool)</signal> + <receiver>limitSpeed</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>109</x> + <y>144</y> + </hint> + <hint type="destinationlabel"> + <x>199</x> + <y>144</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h b/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h index a3dd648..4582010 100644 --- a/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h +++ b/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h @@ -1,12 +1,15 @@ /** \file DebugEngineMacro.h \brief Define the macro for the debug \author alpha_one_x86 -\version 0.3 -\date 2010 */ +\licence GPL3, see the file COPYING */ #ifndef DEBUGENGINEMACRO_H #define DEBUGENGINEMACRO_H +#ifdef WIN32 +# define __func__ __FUNCTION__ +#endif + /// \brief Macro for the debug log #ifdef ULTRACOPIER_PLUGIN_DEBUG #if defined (__FILE__) && defined (__LINE__) diff --git a/plugins-alternative/Themes/Teracopy/Environment.h b/plugins-alternative/Themes/Teracopy/Environment.h index 94fd104..265a5a6 100644 --- a/plugins-alternative/Themes/Teracopy/Environment.h +++ b/plugins-alternative/Themes/Teracopy/Environment.h @@ -1,8 +1,7 @@ /** \file Environment.h
\brief Define the environment variable and global function
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#include "Variable.h"
/// \brief The global include
diff --git a/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts index 237dc4f..a2da10c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0" language="de" sourcelanguage="en"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation>Total: %1 von %2</translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation>%1 von %2</translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation>%1% erledigt</translation> </message> @@ -24,27 +24,27 @@ <message> <location filename="../../interface.ui" line="159"/> <source>&More</source> - <translation>Mehr</translation> + <translation>&Mehr</translation> </message> <message> <location filename="../../interface.ui" line="172"/> <source>...</source> - <translation></translation> + <translation>...</translation> </message> <message> <location filename="../../interface.ui" line="210"/> <source>&Pause</source> - <translation></translation> + <translation>&Pause</translation> </message> <message> <location filename="../../interface.ui" line="232"/> <source>&Skip</source> - <translation>überspringen</translation> + <translation>überspringen (&S)</translation> </message> <message> <location filename="../../interface.ui" line="251"/> <source>&Cancel</source> - <translation>Stornieren</translation> + <translation>Abbrechen (&C)</translation> </message> <message> <location filename="../../interface.ui" line="281"/> @@ -72,22 +72,22 @@ p, li { white-space: pre-wrap; } <message> <location filename="../../interface.ui" line="326"/> <source>Move file(s)</source> - <translation>Bewegen Sie Datei (en)</translation> + <translation>Datei (en) verschieben</translation> </message> <message> <location filename="../../interface.ui" line="335"/> <source>Move folder</source> - <translation>bewegen Sie Ordner</translation> + <translation>Ordner verschieben</translation> </message> <message> <location filename="../../interface.ui" line="344"/> <source>Copy file(s)</source> - <translation>Kopieren Sie die Datei (en)</translation> + <translation>Datei (en) kopieren</translation> </message> <message> <location filename="../../interface.ui" line="353"/> <source>Copy folder</source> - <translation>kopieren Sie das Verzeichnis</translation> + <translation>Verzeichnis kopieren</translation> </message> </context> </TS> diff --git a/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/en/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/en/translation.ts new file mode 100644 index 0000000..d9fb1d6 --- /dev/null +++ b/plugins-alternative/Themes/Teracopy/Languages/en/translation.ts @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="95"/> + <source>Total: %1 of %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="96"/> + <source>%1 of %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="250"/> + <source>%1% done</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="159"/> + <source>&More</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="172"/> + <source>...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="210"/> + <source>&Pause</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="232"/> + <source>&Skip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="251"/> + <source>&Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="281"/> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://ultracopier.first-world.info/"><span style=" font-size:8pt; text-decoration: underline; color:#0057ae;">Support Ultracopier</span></a></p></body></html></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="308"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="317"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="335"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="344"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="353"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts index fe526da..5081c0f 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts @@ -2,21 +2,21 @@ <!DOCTYPE TS> <TS version="2.0" language="es" sourcelanguage="en"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> - <translation>Total: %1 de %2</translation> + <translation type="unfinished">Total: %1 de %2</translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> - <translation>%1 de %2</translation> + <translation type="unfinished">%1 de %2</translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> - <translation>%1% hecho</translation> + <translation type="unfinished">%1% hecho</translation> </message> </context> <context> diff --git a/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts index 42ac61d..fd6eaa1 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts @@ -2,20 +2,21 @@ <!DOCTYPE TS> <TS version="2.0" language="fr" sourcelanguage="en"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation>Total: %1 sur %2</translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation>%1 sur %2</translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> + <translatorcomment>Exemple: 90% fait</translatorcomment> <translation>%1% fait</translation> </message> </context> diff --git a/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts new file mode 100644 index 0000000..3d940b4 --- /dev/null +++ b/plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="hu"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="95"/> + <source>Total: %1 of %2</source> + <translation>Összesen: %1 / %2</translation> + </message> + <message> + <location filename="../../interface.cpp" line="96"/> + <source>%1 of %2</source> + <translation>%1 / %2</translation> + </message> + <message> + <location filename="../../interface.cpp" line="250"/> + <source>%1% done</source> + <translation>%1% kész</translation> + </message> +</context> +<context> + <name>interfaceCopy</name> + <message> + <location filename="../../interface.ui" line="159"/> + <source>&More</source> + <translation>&Több</translation> + </message> + <message> + <location filename="../../interface.ui" line="172"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location filename="../../interface.ui" line="210"/> + <source>&Pause</source> + <translation>&Szünet</translation> + </message> + <message> + <location filename="../../interface.ui" line="232"/> + <source>&Skip</source> + <translation>&Kihagy</translation> + </message> + <message> + <location filename="../../interface.ui" line="251"/> + <source>&Cancel</source> + <translation>&Mégse</translation> + </message> + <message> + <location filename="../../interface.ui" line="281"/> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://ultracopier.first-world.info/"><span style=" font-size:8pt; text-decoration: underline; color:#0057ae;">Support Ultracopier</span></a></p></body></html></source> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://ultracopier.first-world.info/"><span style=" font-size:8pt; text-decoration: underline; color:#0057ae;">Támogasd az Ultracopier-t</span></a></p></body></html></translation> + </message> + <message> + <location filename="../../interface.ui" line="308"/> + <source>Add file</source> + <translation>Fájl hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="317"/> + <source>Add folder</source> + <translation>Mappa hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="326"/> + <source>Move file(s)</source> + <translation>Fájl(ok) mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="335"/> + <source>Move folder</source> + <translation>Mappa mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="344"/> + <source>Copy file(s)</source> + <translation>Fájl(ok) másolása</translation> + </message> + <message> + <location filename="../../interface.ui" line="353"/> + <source>Copy folder</source> + <translation>Mappa másolása</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts index 746b8a6..31d775e 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0" language="it" sourcelanguage="en"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation>Totale: %1 di %2</translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation>%1 di %2</translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation>%1% fatto</translation> </message> @@ -24,27 +24,27 @@ <message> <location filename="../../interface.ui" line="159"/> <source>&More</source> - <translation>Di più</translation> + <translation>Alt&o</translation> </message> <message> <location filename="../../interface.ui" line="172"/> <source>...</source> - <translation></translation> + <translation>...</translation> </message> <message> <location filename="../../interface.ui" line="210"/> <source>&Pause</source> - <translation>Pausa</translation> + <translation>&Pausa</translation> </message> <message> <location filename="../../interface.ui" line="232"/> <source>&Skip</source> - <translation>Saltare</translation> + <translation>&Salta</translation> </message> <message> <location filename="../../interface.ui" line="251"/> <source>&Cancel</source> - <translation>Annullare</translation> + <translation>&Annulla</translation> </message> <message> <location filename="../../interface.ui" line="281"/> @@ -57,7 +57,7 @@ p, li { white-space: pre-wrap; } <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://ultracopier.first-world.info/"><span style=" font-size:8pt; text-decoration: underline; color:#0057ae;">Sostenere Ultracopier</span></a></p></body></html></translation> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://ultracopier.first-world.info/"><span style=" font-size:8pt; text-decoration: underline; color:#0057ae;">Supporto Ultracopier</span></a></p></body></html></translation> </message> <message> <location filename="../../interface.ui" line="308"/> @@ -72,17 +72,17 @@ p, li { white-space: pre-wrap; } <message> <location filename="../../interface.ui" line="326"/> <source>Move file(s)</source> - <translation>Spostare file(s)</translation> + <translation>Sposta file</translation> </message> <message> <location filename="../../interface.ui" line="335"/> <source>Move folder</source> - <translation>Spostare la cartella</translation> + <translation>Sposta la cartella</translation> </message> <message> <location filename="../../interface.ui" line="344"/> <source>Copy file(s)</source> - <translation>Copiare il file(s)</translation> + <translation>Copia file</translation> </message> <message> <location filename="../../interface.ui" line="353"/> diff --git a/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts index 6c66c5a..06946e9 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts @@ -2,9 +2,9 @@ <!DOCTYPE TS> <TS version="2.0" language="ko_KR"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="+76"/> + <location filename="../../interface.cpp" line="+95"/> <source>Total: %1 of %2</source> <translation type="unfinished">전체: %3 / %2 {1 ?}</translation> </message> @@ -14,7 +14,7 @@ <translation type="unfinished">%1 / %2</translation> </message> <message> - <location line="+135"/> + <location line="+154"/> <source>%1% done</source> <translation type="unfinished">%1% 완료</translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts index 1219c56..db1059e 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts @@ -2,21 +2,21 @@ <!DOCTYPE TS> <TS version="2.0" language="ru" sourcelanguage="et"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> - <translation>Всего: %1 из %2</translation> + <translation type="unfinished">Всего: %1 из %2</translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> - <translation>%1 из %2</translation> + <translation type="unfinished">%1 из %2</translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> - <translation>%1% сделанный</translation> + <translation type="unfinished">%1% сделанный</translation> </message> </context> <context> diff --git a/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts index 33cd084..b76694c 100644 --- a/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts +++ b/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts @@ -2,19 +2,19 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>InterfacePlugin</name> + <name>Themes</name> <message> - <location filename="../../interface.cpp" line="76"/> + <location filename="../../interface.cpp" line="95"/> <source>Total: %1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="77"/> + <location filename="../../interface.cpp" line="96"/> <source>%1 of %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../interface.cpp" line="212"/> + <location filename="../../interface.cpp" line="250"/> <source>%1% done</source> <translation type="unfinished"></translation> </message> diff --git a/plugins-alternative/Themes/Teracopy/TransferModel.cpp b/plugins-alternative/Themes/Teracopy/TransferModel.cpp index 569d31c..24812a0 100644 --- a/plugins-alternative/Themes/Teracopy/TransferModel.cpp +++ b/plugins-alternative/Themes/Teracopy/TransferModel.cpp @@ -6,145 +6,146 @@ TransferModel::TransferModel() { - iconStart=QIcon(":/resources/player_play.png"); - iconPause=QIcon(":/resources/player_pause.png"); - iconStop=QIcon(":/resources/checkbox.png"); - currentIndexSearch=0; - haveSearchItem=false; + iconStart=QIcon(":/Themes/Teracopy/resources/player_play.png"); + iconPause=QIcon(":/Themes/Teracopy/resources/player_pause.png"); + iconStop=QIcon(":/Themes/Teracopy/resources/checkbox.png"); + currentIndexSearch=0; + haveSearchItem=false; + facilityEngine=NULL; } int TransferModel::columnCount( const QModelIndex& parent ) const { - return parent == QModelIndex() ? COLUMN_COUNT : 0; + return parent == QModelIndex() ? COLUMN_COUNT : 0; } QVariant TransferModel::data( const QModelIndex& index, int role ) const { - int row,column; - row=index.row(); - column=index.column(); - if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT) - return QVariant(); + int row,column; + row=index.row(); + column=index.column(); + if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT) + return QVariant(); - const transfertItem& item = transfertItemList[row]; - if(role==Qt::UserRole) - return item.id; - else if(role==Qt::DisplayRole) - { - switch(column) - { - case 0: - return item.source; - break; - case 1: - return item.size; - break; - case 2: - return item.destination; - break; - default: - return QVariant(); - } - } - else if(role==Qt::DecorationRole) - { - switch(column) - { - case 0: - /*if(item.done) - return iconStop; - else */if(stopId.contains(item.id)) - return iconPause; - else if(startId.contains(item.id)) - return iconStart; - else - return QVariant(); - break; - default: - return QVariant(); - } - } - else if(role==Qt::BackgroundRole) - { - if(!search_text.isEmpty() && (item.source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || item.destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)) - { - if(haveSearchItem && searchId==item.id) - return QColor(255,150,150,100); - else - return QColor(255,255,0,100); - } - else - return QVariant(); - } - return QVariant(); + const transfertItem& item = transfertItemList[row]; + if(role==Qt::UserRole) + return item.id; + else if(role==Qt::DisplayRole) + { + switch(column) + { + case 0: + return item.source; + break; + case 1: + return item.size; + break; + case 2: + return item.destination; + break; + default: + return QVariant(); + } + } + else if(role==Qt::DecorationRole) + { + switch(column) + { + case 0: + /*if(item.done) + return iconStop; + else */if(stopId.contains(item.id)) + return iconPause; + else if(startId.contains(item.id)) + return iconStart; + else + return QVariant(); + break; + default: + return QVariant(); + } + } + else if(role==Qt::BackgroundRole) + { + if(!search_text.isEmpty() && (item.source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || item.destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)) + { + if(haveSearchItem && searchId==item.id) + return QColor(255,150,150,100); + else + return QColor(255,255,0,100); + } + else + return QVariant(); + } + return QVariant(); } int TransferModel::rowCount( const QModelIndex& parent ) const { - return parent == QModelIndex() ? transfertItemList.count() : 0; + return parent == QModelIndex() ? transfertItemList.count() : 0; } quint64 TransferModel::firstId() { - if(transfertItemList.count()>0) - return transfertItemList[0].id; - else - return 0; + if(transfertItemList.count()>0) + return transfertItemList[0].id; + else + return 0; } QVariant TransferModel::headerData( int section, Qt::Orientation orientation, int role ) const { - if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) { - switch ( section ) { - case 0: - return facilityEngine->translateText("Source"); - case 1: - return facilityEngine->translateText("Size"); - case 2: - return facilityEngine->translateText("Destination"); - } - } + if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) { + switch ( section ) { + case 0: + return facilityEngine->translateText("Source"); + case 1: + return facilityEngine->translateText("Size"); + case 2: + return facilityEngine->translateText("Destination"); + } + } - return QAbstractTableModel::headerData( section, orientation, role ); + return QAbstractTableModel::headerData( section, orientation, role ); } bool TransferModel::setData( const QModelIndex& index, const QVariant& value, int role ) { - row=index.row(); - column=index.column(); - if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT) - return false; + row=index.row(); + column=index.column(); + if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT) + return false; - transfertItem& item = transfertItemList[row]; - if(role==Qt::UserRole) - { - item.id=value.toULongLong(); - return true; - } - else if(role==Qt::DisplayRole) - { - switch(column) - { - case 0: - item.source=value.toString(); - emit dataChanged(index,index); - return true; - break; - case 1: - item.size=value.toString(); - emit dataChanged(index,index); - return true; - break; - case 2: - item.destination=value.toString(); - emit dataChanged(index,index); - return true; - break; - default: - return false; - } - } - return false; + transfertItem& item = transfertItemList[row]; + if(role==Qt::UserRole) + { + item.id=value.toULongLong(); + return true; + } + else if(role==Qt::DisplayRole) + { + switch(column) + { + case 0: + item.source=value.toString(); + emit dataChanged(index,index); + return true; + break; + case 1: + item.size=value.toString(); + emit dataChanged(index,index); + return true; + break; + case 2: + item.destination=value.toString(); + emit dataChanged(index,index); + return true; + break; + default: + return false; + } + } + return false; } /* @@ -152,290 +153,376 @@ bool TransferModel::setData( const QModelIndex& index, const QVariant& value, in Return[1]: totalSize Return[2]: currentFile */ -QList<quint64> TransferModel::synchronizeItems(const QList<returnActionOnCopyList>& returnActions) +QList<quint64> TransferModel::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions) { - loop_size=returnActions.size(); - index_for_loop=0; - totalFile=0; - totalSize=0; - currentFile=0; - emit layoutAboutToBeChanged(); - while(index_for_loop<loop_size) - { - const returnActionOnCopyList& action=returnActions.at(index_for_loop); - switch(action.type) - { - case AddingItem: - { - transfertItem newItem; - newItem.id=action.addAction.id; - newItem.source=action.addAction.sourceFullPath; - newItem.size=facilityEngine->sizeToString(action.addAction.size); - newItem.destination=action.addAction.destinationFullPath; + loop_size=returnActions.size(); + index_for_loop=0; + totalFile=0; + totalSize=0; + currentFile=0; + emit layoutAboutToBeChanged(); + while(index_for_loop<loop_size) + { + const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop); + switch(action.type) + { + case Ultracopier::AddingItem: + { + transfertItem newItem; + newItem.id=action.addAction.id; + newItem.source=action.addAction.sourceFullPath; + newItem.size=facilityEngine->sizeToString(action.addAction.size); + newItem.destination=action.addAction.destinationFullPath; // newItem.done=false; - transfertItemList<<newItem; - totalFile++; - totalSize+=action.addAction.size; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, size: %2, name: %3").arg(action.addAction.id).arg(action.addAction.size).arg(action.addAction.sourceFullPath)); - } - break; - case MoveItem: - { - //bool current_entry= - if(action.userAction.position<0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); - break; - } - if(action.userAction.position>(transfertItemList.size()-1)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); - break; - } - if(action.userAction.moveAt<0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); - break; - } - if(action.userAction.moveAt>(transfertItemList.size()-1)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); - break; - } - transfertItemList.move(action.userAction.position,action.userAction.moveAt); - } - break; - case RemoveItem: - { - if(currentIndexSearch>0 && action.userAction.position<=currentIndexSearch) - currentIndexSearch--; - if(action.userAction.position<0) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); - break; - } - if(action.userAction.position>(transfertItemList.size()-1)) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); - break; - } - transfertItemList.removeAt(action.userAction.position); - currentFile++; - startId.remove(action.addAction.id); - stopId.remove(action.addAction.id); - } - break; - case PreOperation: - { - ItemOfCopyListWithMoreInformations tempItem; - tempItem.currentProgression=0; - tempItem.generalData=action.addAction; - tempItem.actionType=action.type; - internalRunningOperation[action.addAction.id]=tempItem; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("set for file %1: actionType: PreOperation").arg(action.addAction.id)); - } - break; - case Transfer: - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("found entry for file %1: actionType: Transfer").arg(action.addAction.id)); - if(!startId.contains(action.addAction.id)) - startId << action.addAction.id; - stopId.remove(action.addAction.id); - if(internalRunningOperation.contains(action.addAction.id)) - internalRunningOperation[action.addAction.id].actionType=action.type; - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id)); - } - break; - case PostOperation: - { - if(!stopId.contains(action.addAction.id)) - stopId << action.addAction.id; - startId.remove(action.addAction.id); - internalRunningOperation.remove(action.addAction.id); - } - break; - case CustomOperation: - { - bool custom_with_progression=(action.addAction.size==1); - //without progression - if(custom_with_progression) - { - if(startId.remove(action.addAction.id)) - if(!stopId.contains(action.addAction.id)) - stopId << action.addAction.id; - } - //with progression - else - { - stopId.remove(action.addAction.id); - if(!startId.contains(action.addAction.id)) - startId << action.addAction.id; - } - if(internalRunningOperation.contains(action.addAction.id)) - { - ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id]; - item.actionType=action.type; - item.custom_with_progression=custom_with_progression; - item.currentProgression=0; - } - } - break; - default: - //unknow code, ignore it - break; - } - index_for_loop++; - } - emit layoutChanged(); - return QList<quint64>() << totalFile << totalSize << currentFile; + transfertItemList<<newItem; + totalFile++; + totalSize+=action.addAction.size; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, size: %2, name: %3").arg(action.addAction.id).arg(action.addAction.size).arg(action.addAction.sourceFullPath)); + } + break; + case Ultracopier::MoveItem: + { + //bool current_entry= + if(action.userAction.position<0) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.position>(transfertItemList.size()-1)) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.moveAt<0) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.moveAt>(transfertItemList.size()-1)) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + transfertItemList.move(action.userAction.position,action.userAction.moveAt); + } + break; + case Ultracopier::RemoveItem: + { + if(currentIndexSearch>0 && action.userAction.position<=currentIndexSearch) + currentIndexSearch--; + if(action.userAction.position<0) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + if(action.userAction.position>(transfertItemList.size()-1)) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position)); + break; + } + transfertItemList.removeAt(action.userAction.position); + currentFile++; + startId.remove(action.addAction.id); + stopId.remove(action.addAction.id); + internalRunningOperation.remove(action.addAction.id); + } + break; + case Ultracopier::PreOperation: + { + ItemOfCopyListWithMoreInformations tempItem; + tempItem.currentReadProgression=0; + tempItem.currentWriteProgression=0; + tempItem.generalData=action.addAction; + tempItem.actionType=action.type; + internalRunningOperation[action.addAction.id]=tempItem; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("set for file %1: actionType: PreOperation").arg(action.addAction.id)); + } + break; + case Ultracopier::Transfer: + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("found entry for file %1: actionType: Transfer").arg(action.addAction.id)); + if(!startId.contains(action.addAction.id)) + startId << action.addAction.id; + stopId.remove(action.addAction.id); + if(internalRunningOperation.contains(action.addAction.id)) + internalRunningOperation[action.addAction.id].actionType=action.type; + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id)); + } + break; + case Ultracopier::PostOperation: + { + if(!stopId.contains(action.addAction.id)) + stopId << action.addAction.id; + startId.remove(action.addAction.id); + } + break; + case Ultracopier::CustomOperation: + { + bool custom_with_progression=(action.addAction.size==1); + //without progression + if(custom_with_progression) + { + if(startId.remove(action.addAction.id)) + if(!stopId.contains(action.addAction.id)) + stopId << action.addAction.id; + } + //with progression + else + { + stopId.remove(action.addAction.id); + if(!startId.contains(action.addAction.id)) + startId << action.addAction.id; + } + if(internalRunningOperation.contains(action.addAction.id)) + { + ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id]; + item.actionType=action.type; + item.custom_with_progression=custom_with_progression; + item.currentReadProgression=0; + item.currentWriteProgression=0; + } + } + break; + default: + //unknow code, ignore it + break; + } + index_for_loop++; + } + emit layoutChanged(); + return QList<quint64>() << totalFile << totalSize << currentFile; } void TransferModel::setFacilityEngine(FacilityInterface * facilityEngine) { - this->facilityEngine=facilityEngine; + this->facilityEngine=facilityEngine; } int TransferModel::search(const QString &text,bool searchNext) { - emit layoutAboutToBeChanged(); - search_text=text; - emit layoutChanged(); - if(transfertItemList.size()==0) - return -1; - if(text.isEmpty()) - return -1; - if(searchNext) - { - currentIndexSearch++; - if(currentIndexSearch>=loop_size) - currentIndexSearch=0; - } - index_for_loop=0; - loop_size=transfertItemList.size(); - while(index_for_loop<loop_size) - { - if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1) - { - haveSearchItem=true; - searchId=transfertItemList.at(currentIndexSearch).id; - return currentIndexSearch; - } - currentIndexSearch++; - if(currentIndexSearch>=loop_size) - currentIndexSearch=0; - index_for_loop++; - } - haveSearchItem=false; - return -1; + emit layoutAboutToBeChanged(); + search_text=text; + emit layoutChanged(); + if(transfertItemList.size()==0) + return -1; + if(text.isEmpty()) + return -1; + if(searchNext) + { + currentIndexSearch++; + if(currentIndexSearch>=loop_size) + currentIndexSearch=0; + } + index_for_loop=0; + loop_size=transfertItemList.size(); + while(index_for_loop<loop_size) + { + if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1) + { + haveSearchItem=true; + searchId=transfertItemList.at(currentIndexSearch).id; + return currentIndexSearch; + } + currentIndexSearch++; + if(currentIndexSearch>=loop_size) + currentIndexSearch=0; + index_for_loop++; + } + haveSearchItem=false; + return -1; } int TransferModel::searchPrev(const QString &text) { - emit layoutAboutToBeChanged(); - search_text=text; - emit layoutChanged(); - if(transfertItemList.size()==0) - return -1; - if(text.isEmpty()) - return -1; - if(currentIndexSearch==0) - currentIndexSearch=loop_size-1; - else - currentIndexSearch--; - index_for_loop=0; - loop_size=transfertItemList.size(); - while(index_for_loop<loop_size) - { - if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1) - { - haveSearchItem=true; - searchId=transfertItemList.at(currentIndexSearch).id; - return currentIndexSearch; - } - if(currentIndexSearch==0) - currentIndexSearch=loop_size-1; - else - currentIndexSearch--; - index_for_loop++; - } - haveSearchItem=false; - return -1; + emit layoutAboutToBeChanged(); + search_text=text; + emit layoutChanged(); + if(transfertItemList.size()==0) + return -1; + if(text.isEmpty()) + return -1; + if(currentIndexSearch==0) + currentIndexSearch=loop_size-1; + else + currentIndexSearch--; + index_for_loop=0; + loop_size=transfertItemList.size(); + while(index_for_loop<loop_size) + { + if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1) + { + haveSearchItem=true; + searchId=transfertItemList.at(currentIndexSearch).id; + return currentIndexSearch; + } + if(currentIndexSearch==0) + currentIndexSearch=loop_size-1; + else + currentIndexSearch--; + index_for_loop++; + } + haveSearchItem=false; + return -1; } -void TransferModel::setFileProgression(QList<ProgressionItem> &progressionList) +void TransferModel::setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList) { - loop_size=progressionList.size(); - index_for_loop=0; - while(index_for_loop<loop_size) - { - if(internalRunningOperation.contains(progressionList.at(index_for_loop).id)) - { - internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total; - internalRunningOperation[progressionList.at(index_for_loop).id].currentProgression=progressionList.at(index_for_loop).current; - #ifdef ULTRACOPIER_PLUGIN_DEBUG - progressionList.removeAt(index_for_loop); - #endif - } - index_for_loop++; - } - #ifdef ULTRACOPIER_PLUGIN_DEBUG - if(progressionList.size()>0) - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"progression remaning items"); - #endif + loop_size=progressionList.size(); + index_for_loop=0; + while(index_for_loop<loop_size) + { + if(internalRunningOperation.contains(progressionList.at(index_for_loop).id)) + { + internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total; + internalRunningOperation[progressionList.at(index_for_loop).id].currentReadProgression=progressionList.at(index_for_loop).currentRead; + internalRunningOperation[progressionList.at(index_for_loop).id].currentWriteProgression=progressionList.at(index_for_loop).currentWrite; + #ifdef ULTRACOPIER_PLUGIN_DEBUG + progressionList.removeAt(index_for_loop); + index_for_loop--; + loop_size--; + #endif + } + index_for_loop++; + } + #ifdef ULTRACOPIER_PLUGIN_DEBUG + if(progressionList.size()>0) + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"progression remaning items"); + #endif } TransferModel::currentTransfertItem TransferModel::getCurrentTransfertItem() { - currentTransfertItem returnItem; - returnItem.haveItem=startId.size()>0; - if(returnItem.haveItem) - { - if(!internalRunningOperation.contains(*startId.constBegin())) - { - returnItem.haveItem=false; - return returnItem; - } - const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*startId.constBegin()]; - returnItem.from=itemTransfer.generalData.sourceFullPath; - returnItem.to=itemTransfer.generalData.destinationFullPath; - returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); - switch(itemTransfer.actionType) - { - case CustomOperation: - if(!itemTransfer.custom_with_progression) - returnItem.progressBar_file=-1; - else - { - if(itemTransfer.generalData.size>0) - returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; - else - returnItem.progressBar_file=-1; - } - break; - case Transfer: - if(itemTransfer.generalData.size>0) - returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; - else - returnItem.progressBar_file=0; - break; - //should never pass here - case PostOperation: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); - returnItem.progressBar_file=65535; - break; - //should never pass here - case PreOperation: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); - returnItem.progressBar_file=0; - break; - default: - returnItem.progressBar_file=0; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); - break; - } - } -/* else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("No have running item"));*/ - return returnItem; + currentTransfertItem returnItem; + returnItem.progressBar_read=-1; + returnItem.progressBar_write=0; + returnItem.haveItem=startId.size()>0; + if(returnItem.haveItem) + { + if(!internalRunningOperation.contains(*startId.constBegin())) + { + returnItem.haveItem=false; + return returnItem; + } + const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*startId.constBegin()]; + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); + returnItem.id=itemTransfer.generalData.id; + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_read=-1; + else + { + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + returnItem.progressBar_read=-1; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + { + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + } + break; + //should never pass here + case Ultracopier::PostOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=65535; + returnItem.progressBar_write=65535; + break; + //should never pass here + case Ultracopier::PreOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + break; + default: + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + break; + } + } + else + { + returnItem.haveItem=stopId.size()>0; + if(returnItem.haveItem) + { + if(!internalRunningOperation.contains(*stopId.constBegin())) + { + returnItem.haveItem=false; + return returnItem; + } + const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*stopId.constBegin()]; + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); + returnItem.id=itemTransfer.generalData.id; + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_read=-1; + else + { + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + returnItem.progressBar_read=-1; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + { + returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535; + returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535; + } + else + { + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + } + break; + case Ultracopier::PostOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=65535; + returnItem.progressBar_write=65535; + break; + //should never pass here + case Ultracopier::PreOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_read=0; + returnItem.progressBar_write=0; + break; + default: + returnItem.progressBar_read=65535; + returnItem.progressBar_write=65535; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + break; + } + } + } + if(returnItem.haveItem && returnItem.progressBar_read!=-1 && returnItem.progressBar_write>returnItem.progressBar_read) + { + int tempVar=returnItem.progressBar_write; + returnItem.progressBar_write=returnItem.progressBar_read; + returnItem.progressBar_read=tempVar; + } + return returnItem; } diff --git a/plugins-alternative/Themes/Teracopy/TransferModel.h b/plugins-alternative/Themes/Teracopy/TransferModel.h index 486532e..977c986 100644 --- a/plugins-alternative/Themes/Teracopy/TransferModel.h +++ b/plugins-alternative/Themes/Teracopy/TransferModel.h @@ -17,76 +17,76 @@ /// \brief model to store the transfer list class TransferModel : public QAbstractTableModel { - Q_OBJECT + Q_OBJECT public: - /// \brief the transfer item displayed - struct transfertItem - { - quint64 id; - QString source; - QString size; - QString destination; - }; - /// \brief the transfer item with progression - struct ItemOfCopyListWithMoreInformations - { - quint64 currentProgression; - ItemOfCopyList generalData; - ActionTypeCopyList actionType; - bool custom_with_progression; - }; - /// \brief returned first transfer item - struct currentTransfertItem - { - quint64 id; - bool haveItem; - QString from; - QString to; - QString current_file; - int progressBar_file; - }; + /// \brief the transfer item displayed + struct transfertItem + { + quint64 id; + QString source; + QString size; + QString destination; + }; + /// \brief the transfer item with progression + struct ItemOfCopyListWithMoreInformations + { + quint64 currentReadProgression,currentWriteProgression; + Ultracopier::ItemOfCopyList generalData; + Ultracopier::ActionTypeCopyList actionType; + bool custom_with_progression; + }; + /// \brief returned first transfer item + struct currentTransfertItem + { + quint64 id; + bool haveItem; + QString from; + QString to; + QString current_file; + int progressBar_read,progressBar_write; + }; - TransferModel(); + TransferModel(); - virtual int columnCount(const QModelIndex& parent = QModelIndex()) const; - virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; - virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; - virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); - - QList<quint64> synchronizeItems(const QList<returnActionOnCopyList>& returnActions); - void setFacilityEngine(FacilityInterface * facilityEngine); + virtual int columnCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); - int search(const QString &text,bool searchNext); - int searchPrev(const QString &text); + QList<quint64> synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions); + void setFacilityEngine(FacilityInterface * facilityEngine); - void setFileProgression(QList<ProgressionItem> &progressionList); + int search(const QString &text,bool searchNext); + int searchPrev(const QString &text); - currentTransfertItem getCurrentTransfertItem(); + void setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList); - quint64 firstId(); + currentTransfertItem getCurrentTransfertItem(); + + quint64 firstId(); protected: - QList<transfertItem> transfertItemList;///< To have a transfer list for the user - QList<transfertItem> transfertItemListDone;///< To have a transfer list for the user - QSet<quint64> startId,stopId;///< To show what is started, what is stopped - QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat - QIcon iconStart,iconPause,iconStop; + QList<transfertItem> transfertItemList;///< To have a transfer list for the user + QList<transfertItem> transfertItemListDone;///< To have a transfer list for the user + QSet<quint64> startId,stopId;///< To show what is started, what is stopped + QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat + QIcon iconStart,iconPause,iconStop; private: - int loop_size,index_for_loop; - int sub_loop_size,sub_index_for_loop; - int row,column; - quint64 totalFile,totalSize,currentFile; - FacilityInterface * facilityEngine; - QString search_text; - /// \brief index from start the search, decresed by remove before it - int currentIndexSearch; - bool haveSearchItem; - quint64 searchId; + int loop_size,index_for_loop; + int sub_loop_size,sub_index_for_loop; + int row,column; + quint64 totalFile,totalSize,currentFile; + FacilityInterface * facilityEngine; + QString search_text; + /// \brief index from start the search, decresed by remove before it + int currentIndexSearch; + bool haveSearchItem; + quint64 searchId; signals: - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif + #ifdef ULTRACOPIER_PLUGIN_DEBUG + /// \brief To debug source + void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); + #endif }; #endif // TRANSFERMODEL_H diff --git a/plugins-alternative/Themes/Teracopy/Variable.h b/plugins-alternative/Themes/Teracopy/Variable.h index 8179c93..963d0c8 100644 --- a/plugins-alternative/Themes/Teracopy/Variable.h +++ b/plugins-alternative/Themes/Teracopy/Variable.h @@ -1,8 +1,7 @@ /** \file Variable.h
\brief Define the environment variable
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#ifndef VARIABLE_H
#define VARIABLE_H
diff --git a/plugins-alternative/Themes/Teracopy/documentation.dox b/plugins-alternative/Themes/Teracopy/documentation.dox index a61692b..c1720d2 100755..100644 --- a/plugins-alternative/Themes/Teracopy/documentation.dox +++ b/plugins-alternative/Themes/Teracopy/documentation.dox @@ -11,12 +11,12 @@ \section mainpage_overview Overview It's Teracopy interface, to come from Teracopy to Ultracopier.\n - More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier 0.3 project as alternative plugin. + More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier project as alternative plugin. \section mainpage_platforms Platforms - This plugin might be usable in all environments where you find Qt 4.\n - To be compatible with the official Ultracopier plugins, you need compil it with Gcc, Qt4.8, and same env as Ultracopier have been compiled, see the documentation. + Ultracopier might be usable in all environments where you find Qt 5.\n + Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0. \section mainpage_downloads Downloads diff --git a/plugins-alternative/Themes/Teracopy/factory.cpp b/plugins-alternative/Themes/Teracopy/factory.cpp index 89c3787..2b176bf 100644 --- a/plugins-alternative/Themes/Teracopy/factory.cpp +++ b/plugins-alternative/Themes/Teracopy/factory.cpp @@ -1,83 +1,70 @@ /** \file factory.cpp \brief Define the factory core \author alpha_one_x86 -\version 0.3 -\date 2010 */ - -#include <QtCore> +*/ #include "factory.h" -PluginInterface_Themes * Factory::getInstance() +PluginInterface_Themes * ThemesFactory::getInstance() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - PluginInterface_Themes * newInterface=new InterfacePlugin(facilityEngine); - connect(newInterface,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int))); - connect(this,SIGNAL(reloadLanguage()),newInterface,SLOT(newLanguageLoaded())); - return newInterface; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + Themes * newInterface=new Themes(facilityEngine); + #ifdef ULTRACOPIER_PLUGIN_DEBUG + connect(newInterface,&Themes::debugInformation,this,&PluginInterface_ThemesFactory::debugInformation); + #endif + connect(this,&ThemesFactory::reloadLanguage,newInterface,&Themes::newLanguageLoaded); + return newInterface; } -void Factory::setResources(OptionInterface *,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion) +void ThemesFactory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion) { - this->facilityEngine=facilityEngine; - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath: "+pluginPath); - Q_UNUSED(portableVersion); + Q_UNUSED(writePath); + Q_UNUSED(pluginPath); + this->facilityEngine=facilityInterface; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath: "+pluginPath); + Q_UNUSED(portableVersion); + Q_UNUSED(options); } -QWidget * Factory::options() +QWidget * ThemesFactory::options() { - return NULL; + return NULL; } -void Factory::resetOptions() +void ThemesFactory::resetOptions() { } -QIcon Factory::getIcon(const QString &fileName) +QIcon ThemesFactory::getIcon(const QString &fileName) const { - if(fileName=="SystemTrayIcon/exit.png") - { - QIcon tempIcon=QIcon::fromTheme("application-exit"); - if(!tempIcon.isNull()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName)); - return tempIcon; - } - } - if(fileName=="SystemTrayIcon/add.png") - { - QIcon tempIcon=QIcon::fromTheme("list-add"); - if(!tempIcon.isNull()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName)); - return tempIcon; - } - } - if(fileName=="SystemTrayIcon/informations.png") - { - QIcon tempIcon=QIcon::fromTheme("help-about"); - if(!tempIcon.isNull()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName)); - return tempIcon; - } - } - if(fileName=="SystemTrayIcon/options.png") - { - QIcon tempIcon=QIcon::fromTheme("applications-system"); - if(!tempIcon.isNull()) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName)); - return tempIcon; - } - } - return QIcon(":/resources/"+fileName); + if(fileName=="SystemTrayIcon/exit.png") + { + QIcon tempIcon=QIcon::fromTheme("application-exit"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/add.png") + { + QIcon tempIcon=QIcon::fromTheme("list-add"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/informations.png") + { + QIcon tempIcon=QIcon::fromTheme("help-about"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/options.png") + { + QIcon tempIcon=QIcon::fromTheme("applications-system"); + if(!tempIcon.isNull()) + return tempIcon; + } + return QIcon(":/Themes/Teracopy/resources/"+fileName); } -void Factory::newLanguageLoaded() +void ThemesFactory::newLanguageLoaded() { - emit reloadLanguage(); + emit reloadLanguage(); } - -Q_EXPORT_PLUGIN2(interface, Factory); - diff --git a/plugins-alternative/Themes/Teracopy/factory.h b/plugins-alternative/Themes/Teracopy/factory.h index babac47..0b3bb3f 100644 --- a/plugins-alternative/Themes/Teracopy/factory.h +++ b/plugins-alternative/Themes/Teracopy/factory.h @@ -1,8 +1,7 @@ /** \file factory.h \brief Define the factory \author alpha_one_x86 -\version 0.3 -\date 2010 */ +\licence GPL3, see the file COPYING */ #ifndef FACTORY_H #define FACTORY_H @@ -17,30 +16,27 @@ #include "Environment.h" /// \brief Define the factory, to create instance of the interface -class Factory : public PluginInterface_ThemesFactory +class ThemesFactory : public PluginInterface_ThemesFactory { - Q_OBJECT - Q_INTERFACES(PluginInterface_ThemesFactory) + Q_OBJECT + Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json") + Q_INTERFACES(PluginInterface_ThemesFactory) public: - /// \brief to return the instance of the copy engine - PluginInterface_Themes * getInstance(); - /// \brief set the resources, to store options, to have facilityInterface - void setResources(OptionInterface * optionsEngine,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion); - /// \brief to get the default options widget - QWidget * options(); - /// \brief to get a resource icon - QIcon getIcon(const QString &fileName); + /// \brief to return the instance of the copy engine + PluginInterface_Themes * getInstance(); + /// \brief set the resources, to store options, to have facilityInterface + void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion); + /// \brief to get the default options widget + QWidget * options(); + /// \brief to get a resource icon + QIcon getIcon(const QString &fileName) const; public slots: - void resetOptions(); - void newLanguageLoaded(); + void resetOptions(); + void newLanguageLoaded(); signals: - void reloadLanguage(); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif + void reloadLanguage(); private: - FacilityInterface * facilityEngine; + FacilityInterface * facilityEngine; }; #endif // FACTORY_H diff --git a/plugins-alternative/Themes/Teracopy/informations.xml b/plugins-alternative/Themes/Teracopy/informations.xml index 5fd194d..534db9a 100644 --- a/plugins-alternative/Themes/Teracopy/informations.xml +++ b/plugins-alternative/Themes/Teracopy/informations.xml @@ -17,11 +17,10 @@ <description xml:lang="en"><![CDATA[Teracopy style for Ultracopier, reproduct with screenshot on internet]]></description> <description xml:lang="fr"><![CDATA[Style Teracopy pour Ultracopier, reproduit avec les screenshots vu sur internet]]></description> <!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number --> - <version>0.3.1.0</version> + <version>1.2.3.6</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>Teracopy</name> <!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. --> <dependencies><![CDATA[ - >=ultracopier-0.3.1.0 ]]></dependencies> </package>
\ No newline at end of file diff --git a/plugins-alternative/Themes/Teracopy/interface.cpp b/plugins-alternative/Themes/Teracopy/interface.cpp index a7014dd..64220d0 100644 --- a/plugins-alternative/Themes/Teracopy/interface.cpp +++ b/plugins-alternative/Themes/Teracopy/interface.cpp @@ -1,376 +1,431 @@ /** \file interface.cpp \brief Define the interface core \author alpha_one_x86 -\version 0.3 -\date 2010 */ +*/ -#include <QtCore> #include <QMessageBox> +#include <cmath> #include "interface.h" #include "ui_interface.h" -InterfacePlugin::InterfacePlugin(FacilityInterface * facilityEngine) : - ui(new Ui::interfaceCopy()) +// The cmath header from MSVC does not contain round() +#if (defined(_WIN64) || defined(_WIN32)) && defined(_MSC_VER) +inline double round(double d) { + return floor( d + 0.5 ); +} +#endif + +Themes::Themes(FacilityInterface * facilityEngine) : + ui(new Ui::interfaceCopy()) { - this->facilityEngine=facilityEngine; - ui->setupUi(this); - ui->TransferList->setModel(&transferModel); - transferModel.setFacilityEngine(facilityEngine); + this->facilityEngine=facilityEngine; + ui->setupUi(this); + transferModel.setFacilityEngine(facilityEngine); + ui->TransferList->setModel(&transferModel); + + currentFile = 0; + totalFile = 0; + currentSize = 0; + totalSize = 0; + storeIsInPause = false; + modeIsForced = false; + haveStarted = false; + speedString = facilityEngine->speedToString(0); + ui->toolButtonMenu->setMenu(&menu); - currentFile = 0; - totalFile = 0; - currentSize = 0; - totalSize = 0; - this->show(); - storeIsInPause = false; - isInPause(false); - modeIsForced = false; - haveStarted = false; - speedString = facilityEngine->speedToString(0); - ui->toolButtonMenu->setMenu(&menu); - - connect(ui->actionAddFile,SIGNAL(triggered()),this,SLOT(forcedModeAddFile())); - connect(ui->actionAddFileToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToCopy())); - connect(ui->actionAddFileToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToMove())); - connect(ui->actionAddFolderToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToCopy())); - connect(ui->actionAddFolderToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToMove())); - connect(ui->actionAddFolder,SIGNAL(triggered()),this,SLOT(forcedModeAddFolder())); + connect(ui->actionAddFile,&QAction::triggered,this,&Themes::forcedModeAddFile); + connect(ui->actionAddFileToCopy,&QAction::triggered,this,&Themes::forcedModeAddFileToCopy); + connect(ui->actionAddFileToMove,&QAction::triggered,this,&Themes::forcedModeAddFileToMove); + connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&Themes::forcedModeAddFolderToCopy); + connect(ui->actionAddFolderToMove,&QAction::triggered,this,&Themes::forcedModeAddFolderToMove); + connect(ui->actionAddFolder,&QAction::triggered,this,&Themes::forcedModeAddFolder); - #ifdef ULTRACOPIER_PLUGIN_DEBUG - connect(&transferModel,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int))); - #endif + #ifdef ULTRACOPIER_PLUGIN_DEBUG + connect(&transferModel,&TransferModel::debugInformation,this,&Themes::debugInformation); + #endif + + progressColorWrite=QApplication::palette().color(QPalette::Highlight); + progressColorRead=QApplication::palette().color(QPalette::AlternateBase); + progressColorRemaining=QApplication::palette().color(QPalette::Base); + + ui->progressBar_all->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + show(); + isInPause(false); } -InterfacePlugin::~InterfacePlugin() +Themes::~Themes() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); } -QWidget * InterfacePlugin::getOptionsEngineWidget() +QWidget * Themes::getOptionsEngineWidget() { - return &optionEngineWidget; + return &optionEngineWidget; } -void InterfacePlugin::getOptionsEngineEnabled(bool isEnabled) +void Themes::getOptionsEngineEnabled(const bool &isEnabled) { - Q_UNUSED(isEnabled); + Q_UNUSED(isEnabled); } /// \brief set if transfer list is exportable/importable -void InterfacePlugin::setTransferListOperation(TransferListOperation transferListOperation) +void Themes::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation) +{ + Q_UNUSED(transferListOperation); +} + +void Themes::closeEvent(QCloseEvent *event) +{ + event->ignore(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + this->hide(); + emit cancel(); +} + +void Themes::updateOverallInformation() { - Q_UNUSED(transferListOperation); + ui->overall->setText(tr("Total: %1 of %2").arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize))); + ui->labelNumberFile->setText(tr("%1 of %2").arg(currentFile).arg(totalFile)); } -void InterfacePlugin::closeEvent(QCloseEvent *event) +void Themes::actionInProgess(const Ultracopier::EngineActionInProgress &action) { - event->ignore(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - this->hide(); - emit cancel(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"start: "+QString::number(action)); + this->action=action; + ui->pauseButton->setEnabled(action!=Ultracopier::Idle); + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + ui->progressBar_all->setMaximum(65535); + ui->progressBar_all->setMinimum(0); + break; + case Ultracopier::Listing: + ui->progressBar_all->setMaximum(0); + ui->progressBar_all->setMinimum(0); + break; + case Ultracopier::Idle: + if(haveStarted) + emit cancel(); + break; + default: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"Very wrong switch case!"); + break; + } + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + haveStarted=true; + ui->cancelButton->setText(facilityEngine->translateText("Quit")); + if(storeIsInPause) + ui->pauseButton->setText(facilityEngine->translateText("Start")); + else + ui->pauseButton->setText(facilityEngine->translateText("Pause")); + break; + case Ultracopier::Idle: + ui->cancelButton->setText(facilityEngine->translateText("Quit")); + break; + default: + break; + } } -void InterfacePlugin::updateOverallInformation() +void Themes::newFolderListing(const QString &path) { - ui->overall->setText(tr("Total: %1 of %2").arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize))); - ui->labelNumberFile->setText(tr("%1 of %2").arg(currentFile).arg(totalFile)); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + if(action==Ultracopier::Listing) + ui->from->setText(path); } -void InterfacePlugin::actionInProgess(EngineActionInProgress action) +void Themes::detectedSpeed(const quint64 &speed)//in byte per seconds { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"start: "+QString::number(action)); - this->action=action; - ui->pauseButton->setEnabled(action!=Idle); - switch(action) - { - case Copying: - case CopyingAndListing: - ui->progressBar_all->setMaximum(65535); - ui->progressBar_all->setMinimum(0); - break; - case Listing: - ui->progressBar_all->setMaximum(0); - ui->progressBar_all->setMinimum(0); - break; - case Idle: - if(haveStarted) - emit cancel(); - break; - default: - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"Very wrong switch case!"); - break; - } - switch(action) - { - case Copying: - case CopyingAndListing: - haveStarted=true; - break; - case Idle: - ui->cancelButton->setText(facilityEngine->translateText("Quit")); - break; - default: - break; - } + speedString=facilityEngine->speedToString(speed); } -void InterfacePlugin::newFolderListing(const QString &path) +/** \brief support speed limitation */ +void Themes::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool) { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(action==Listing) - ui->from->setText(path); + Q_UNUSED(supportSpeedLimitationBool); } -void InterfacePlugin::detectedSpeed(const quint64 &speed)//in byte per seconds +void Themes::remainingTime(const int &remainingSeconds) { - speedString=facilityEngine->speedToString(speed); + if(remainingSeconds==-1) + ui->labelTimeRemaining->setText("<html><body>∞</body></html>"); + else + { + Ultracopier::TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds); + ui->labelTimeRemaining->setText(QString::number(time.hour)+":"+QString::number(time.minute)+":"+QString::number(time.second)); + } } -void InterfacePlugin::remainingTime(const int &remainingSeconds) +void Themes::newCollisionAction(const QString &action) { - if(remainingSeconds==-1) - ui->labelTimeRemaining->setText("<html><body>∞</body></html>"); - else - { - TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds); - ui->labelTimeRemaining->setText(QString::number(time.hour)+":"+QString::number(time.minute)+":"+QString::number(time.second)); - } + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + Q_UNUSED(action); } -void InterfacePlugin::newCollisionAction(const QString &action) +void Themes::newErrorAction(const QString &action) { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - Q_UNUSED(action); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + Q_UNUSED(action); } -void InterfacePlugin::newErrorAction(const QString &action) +void Themes::errorDetected() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - Q_UNUSED(action); } -void InterfacePlugin::errorDetected() +/// \brief new error +void Themes::errorToRetry(const QString &source,const QString &destination,const QString &error) { + Q_UNUSED(source); + Q_UNUSED(destination); + Q_UNUSED(error); } //speed limitation -bool InterfacePlugin::setSpeedLimitation(const qint64 &speedLimitation) +bool Themes::setSpeedLimitation(const qint64 &speedLimitation) { - if(speedLimitation>0) - emit newSpeedLimitation(0); - return true; + if(speedLimitation>0) + emit newSpeedLimitation(0); + return true; } //get information about the copy -void InterfacePlugin::setGeneralProgression(const quint64 ¤t,const quint64 &total) +void Themes::setGeneralProgression(const quint64 ¤t,const quint64 &total) { - currentSize=current; - totalSize=total; - if(total>0) - { - int newIndicator=((double)current/total)*65535; - ui->progressBar_all->setValue(newIndicator); - } - else - ui->progressBar_all->setValue(0); + currentSize=current; + totalSize=total; + if(total>0) + { + int newIndicator=((double)current/total)*65535; + ui->progressBar_all->setValue(newIndicator); + } + else + ui->progressBar_all->setValue(0); } -void InterfacePlugin::setCollisionAction(const QList<QPair<QString,QString> > &list) +void Themes::setCollisionAction(const QList<QPair<QString,QString> > &list) { - Q_UNUSED(list); + Q_UNUSED(list); } -void InterfacePlugin::setErrorAction(const QList<QPair<QString,QString> > &list) +void Themes::setErrorAction(const QList<QPair<QString,QString> > &list) { - Q_UNUSED(list); + Q_UNUSED(list); } -void InterfacePlugin::setCopyType(CopyType type) +void Themes::setCopyType(const Ultracopier::CopyType &type) { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - this->type=type; - updateModeAndType(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + this->type=type; + updateModeAndType(); } -void InterfacePlugin::forceCopyMode(CopyMode mode) +void Themes::forceCopyMode(const Ultracopier::CopyMode &mode) { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - modeIsForced=true; - this->mode=mode; - if(mode==Copy) - this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Copy")); - else - this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Move")); - updateModeAndType(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + modeIsForced=true; + this->mode=mode; + if(mode==Ultracopier::Copy) + this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Copy")); + else + this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Move")); + updateModeAndType(); } -void InterfacePlugin::updateTitle() +void Themes::updateTitle() { - QString startString; - if(action==Copying || action==CopyingAndListing) - startString=tr("%1% done").arg(((double)currentSize/totalSize)*100); - else - startString="Ultracopier"; - startString+=" - "; - if(mode==Copy) - this->setWindowTitle(startString+facilityEngine->translateText("Copy")+" ("+speedString+")"); - else - this->setWindowTitle(startString+facilityEngine->translateText("Move")+" ("+speedString+")"); + QString startString; + if(action==Ultracopier::Copying || action==Ultracopier::CopyingAndListing) + startString=tr("%1% done").arg(((double)currentSize/totalSize)*100); + else + startString="Ultracopier"; + startString+=" - "; + if(mode==Ultracopier::Copy) + this->setWindowTitle(startString+facilityEngine->translateText("Copy")+" ("+speedString+")"); + else + this->setWindowTitle(startString+facilityEngine->translateText("Move")+" ("+speedString+")"); } -void InterfacePlugin::haveExternalOrder() +void Themes::haveExternalOrder() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); // ui->moreButton->toggle(); } -void InterfacePlugin::isInPause(bool isInPause) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"isInPause: "+QString::number(isInPause)); - //resume in auto the pause - storeIsInPause=isInPause; - if(isInPause) - ui->pauseButton->setText(facilityEngine->translateText("Resume")); - else - ui->pauseButton->setText(facilityEngine->translateText("Pause")); -} - -void InterfacePlugin::updateCurrentFileInformation() -{ - TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); - if(transfertItem.haveItem) - { - ui->from->setText(transfertItem.from); - //commented because not displayed on this interface - //ui->to->setText(transfertItem.to); - //ui->current_file->setText(transfertItem.current_file); - if(transfertItem.progressBar_file!=-1) - { - ui->progressBar_file->setRange(0,65535); - ui->progressBar_file->setValue(transfertItem.progressBar_file); - } - else - ui->progressBar_file->setRange(0,0); - } - else - { - ui->from->setText(""); - //commented because not displayed on this interface - //ui->to->setText(""); - //ui->current_file->setText("-"); - if(haveStarted && transferModel.rowCount()==0) - ui->progressBar_file->setValue(65535); - else if(!haveStarted) - ui->progressBar_file->setValue(0); - } +void Themes::isInPause(const bool &isInPause) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"isInPause: "+QString::number(isInPause)); + //resume in auto the pause + storeIsInPause=isInPause; + if(isInPause) + ui->pauseButton->setText(facilityEngine->translateText("Resume")); + else + ui->pauseButton->setText(facilityEngine->translateText("Pause")); +} + +void Themes::updateCurrentFileInformation() +{ + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(transfertItem.haveItem) + { + ui->from->setText(transfertItem.from); + //commented because not displayed on this interface + //ui->to->setText(transfertItem.to); + //ui->current_file->setText(transfertItem.current_file); + if(transfertItem.progressBar_read!=-1) + { + ui->progressBar_file->setRange(0,65535); + if(transfertItem.progressBar_read!=transfertItem.progressBar_write) + { + float permilleread=round((float)transfertItem.progressBar_read/65535*1000)/1000; + float permillewrite=permilleread-0.001; + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border: 1px solid grey;text-align: center;background-color: qlineargradient(spread:pad, x1:%1, y1:0, x2:%2, y2:0, stop:0 %3, stop:1 %4);}QProgressBar::chunk{background-color:%5;}") + .arg(permilleread) + .arg(permillewrite) + .arg(progressColorRemaining.name()) + .arg(progressColorRead.name()) + .arg(progressColorWrite.name()) + ); + } + else + ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}") + .arg(progressColorRemaining.name()) + .arg(progressColorWrite.name()) + ); + ui->progressBar_file->setValue(transfertItem.progressBar_write); + } + else + ui->progressBar_file->setRange(0,0); + } + else + { + ui->from->setText(""); + //commented because not displayed on this interface + //ui->to->setText(""); + //ui->current_file->setText("-"); + if(haveStarted && transferModel.rowCount()==0) + ui->progressBar_file->setValue(65535); + else if(!haveStarted) + ui->progressBar_file->setValue(0); + } } -void InterfacePlugin::on_cancelButton_clicked() +void Themes::on_cancelButton_clicked() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - this->hide(); - emit cancel(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + this->hide(); + emit cancel(); } -void InterfacePlugin::on_pauseButton_clicked() +void Themes::on_pauseButton_clicked() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(storeIsInPause) - emit resume(); - else - emit pause(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + if(storeIsInPause) + emit resume(); + else + emit pause(); } -void InterfacePlugin::on_skipButton_clicked() +void Themes::on_skipButton_clicked() { - TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); - if(transfertItem.haveItem) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("skip at running: %1").arg(transfertItem.id)); - emit skip(transfertItem.id); - } - else - { - if(transferModel.rowCount()>1) - { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("skip at idle: %1").arg(transferModel.firstId())); - emit skip(transferModel.firstId()); - } - else - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to skip the transfer, because no transfer running"); - } + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(transfertItem.haveItem) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at running: %1").arg(transfertItem.id)); + emit skip(transfertItem.id); + } + else + { + if(transferModel.rowCount()>1) + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at idle: %1").arg(transferModel.firstId())); + emit skip(transferModel.firstId()); + } + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"unable to skip the transfer, because no transfer running"); + } } -void InterfacePlugin::updateModeAndType() +void Themes::updateModeAndType() { - menu.clear(); - if(modeIsForced) - { - menu.addAction(ui->actionAddFile); - if(type==FileAndFolder) - menu.addAction(ui->actionAddFolder); - } - else - { - menu.addAction(ui->actionAddFileToCopy); - menu.addAction(ui->actionAddFileToMove); - if(type==FileAndFolder) - { - menu.addAction(ui->actionAddFolderToCopy); - menu.addAction(ui->actionAddFolderToMove); - } - } + menu.clear(); + if(modeIsForced) + { + menu.addAction(ui->actionAddFile); + if(type==Ultracopier::FileAndFolder) + menu.addAction(ui->actionAddFolder); + } + else + { + menu.addAction(ui->actionAddFileToCopy); + menu.addAction(ui->actionAddFileToMove); + if(type==Ultracopier::FileAndFolder) + { + menu.addAction(ui->actionAddFolderToCopy); + menu.addAction(ui->actionAddFolderToMove); + } + } } -void InterfacePlugin::forcedModeAddFile() +void Themes::forcedModeAddFile() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit userAddFile(mode); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + emit userAddFile(mode); } -void InterfacePlugin::forcedModeAddFolder() +void Themes::forcedModeAddFolder() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit userAddFolder(mode); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + emit userAddFolder(mode); } -void InterfacePlugin::forcedModeAddFileToCopy() +void Themes::forcedModeAddFileToCopy() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit userAddFile(Copy); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + emit userAddFile(Ultracopier::Copy); } -void InterfacePlugin::forcedModeAddFolderToCopy() +void Themes::forcedModeAddFolderToCopy() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit userAddFolder(Copy); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + emit userAddFolder(Ultracopier::Copy); } -void InterfacePlugin::forcedModeAddFileToMove() +void Themes::forcedModeAddFileToMove() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit userAddFile(Move); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + emit userAddFile(Ultracopier::Move); } -void InterfacePlugin::forcedModeAddFolderToMove() +void Themes::forcedModeAddFolderToMove() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - emit userAddFolder(Move); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + emit userAddFolder(Ultracopier::Move); } //set the translate -void InterfacePlugin::newLanguageLoaded() +void Themes::newLanguageLoaded() { - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); - if(modeIsForced) - forceCopyMode(mode); - ui->retranslateUi(this); - if(haveStarted) - updateCurrentFileInformation(); - updateOverallInformation(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); + if(modeIsForced) + forceCopyMode(mode); + ui->retranslateUi(this); + if(haveStarted) + updateCurrentFileInformation(); + updateOverallInformation(); } /* @@ -378,68 +433,68 @@ void InterfacePlugin::newLanguageLoaded() Return[1]: totalSize Return[2]: currentFile */ -void InterfacePlugin::getActionOnList(const QList<returnActionOnCopyList>& returnActions) -{ - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, returnActions.size(): "+QString::number(returnActions.size())); - QList<quint64> returnValue=transferModel.synchronizeItems(returnActions); - totalFile+=returnValue[0]; - totalSize+=returnValue[1]; - currentFile+=returnValue[2]; - if(transferModel.rowCount()==0) - { - ui->skipButton->setEnabled(false); - ui->progressBar_all->setValue(65535); - ui->progressBar_file->setValue(65535); - currentSize=totalSize; - } - else - ui->skipButton->setEnabled(true); - updateOverallInformation(); - ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"transferModel.rowCount(): "+QString::number(transferModel.rowCount())); -} - -void InterfacePlugin::setFileProgression(const QList<ProgressionItem> &progressionList) -{ - QList<ProgressionItem> progressionListBis=progressionList; - transferModel.setFileProgression(progressionListBis); - updateCurrentFileInformation(); -} - -InterfacePlugin::currentTransfertItem InterfacePlugin::getCurrentTransfertItem() -{ - currentTransfertItem returnItem; - returnItem.haveItem=InternalRunningOperation.size()>0; - if(returnItem.haveItem) - { - const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first(); - returnItem.from=itemTransfer.generalData.sourceFullPath; - returnItem.to=itemTransfer.generalData.destinationFullPath; - returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); - switch(itemTransfer.actionType) - { - case CustomOperation: - if(!itemTransfer.custom_with_progression) - returnItem.progressBar_file=0; - else - { - if(itemTransfer.generalData.size>0) - returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; - else - returnItem.progressBar_file=0; - } - break; - case Transfer: - if(itemTransfer.generalData.size>0) - returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; - else - returnItem.progressBar_file=0; - break; - case PostOperation: - returnItem.progressBar_file=65535; - break; - default: - returnItem.progressBar_file=0; - } - } - return returnItem; +void Themes::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions) +{ + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, returnActions.size(): "+QString::number(returnActions.size())); + QList<quint64> returnValue=transferModel.synchronizeItems(returnActions); + totalFile+=returnValue[0]; + totalSize+=returnValue[1]; + currentFile+=returnValue[2]; + if(transferModel.rowCount()==0) + { + ui->skipButton->setEnabled(false); + ui->progressBar_all->setValue(65535); + ui->progressBar_file->setValue(65535); + currentSize=totalSize; + } + else + ui->skipButton->setEnabled(true); + updateOverallInformation(); + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"transferModel.rowCount(): "+QString::number(transferModel.rowCount())); +} + +void Themes::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList) +{ + QList<Ultracopier::ProgressionItem> progressionListBis=progressionList; + transferModel.setFileProgression(progressionListBis); + updateCurrentFileInformation(); +} + +Themes::currentTransfertItem Themes::getCurrentTransfertItem() +{ + currentTransfertItem returnItem; + returnItem.haveItem=InternalRunningOperation.size()>0; + if(returnItem.haveItem) + { + const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first(); + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size); + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_file=0; + else + { + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=0; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=0; + break; + case Ultracopier::PostOperation: + returnItem.progressBar_file=65535; + break; + default: + returnItem.progressBar_file=0; + } + } + return returnItem; } diff --git a/plugins-alternative/Themes/Teracopy/interface.h b/plugins-alternative/Themes/Teracopy/interface.h index 899a03b..b2f6a70 100644 --- a/plugins-alternative/Themes/Teracopy/interface.h +++ b/plugins-alternative/Themes/Teracopy/interface.h @@ -1,16 +1,16 @@ /** \file interface.h \brief Define the interface test \author alpha_one_x86 -\version 0.3 -\date 2010 */ +\licence GPL3, see the file COPYING */ -#ifndef INTERFACE_TEST_H -#define INTERFACE_TEST_H +#ifndef INTERFACE_H +#define INTERFACE_H #include <QObject> #include <QWidget> #include <QCloseEvent> #include <QMenu> +#include <QColor> #include "../../../interface/PluginInterface_Themes.h" @@ -19,151 +19,158 @@ #include "TransferModel.h" namespace Ui { - class interfaceCopy; + class interfaceCopy; } /// \brief Define the interface -class InterfacePlugin : public PluginInterface_Themes +class Themes : public PluginInterface_Themes { - Q_OBJECT + Q_OBJECT private: - struct ItemOfCopyListWithMoreInformations - { - quint64 currentProgression; - ItemOfCopyList generalData; - ActionTypeCopyList actionType; - bool custom_with_progression; - }; - struct currentTransfertItem - { - quint64 id; - bool haveItem; - QString from; - QString to; - QString current_file; - int progressBar_file; - }; - Ui::interfaceCopy *ui; - quint64 currentFile; - quint64 totalFile; - quint64 currentSize; - quint64 totalSize; - void updateOverallInformation(); - void updateCurrentFileInformation(); - EngineActionInProgress action; - void closeEvent(QCloseEvent *event); - QList<ItemOfCopyListWithMoreInformations> currentProgressList; - QString speedString; - bool storeIsInPause; - bool modeIsForced; - CopyType type; - CopyMode mode; - void updateModeAndType(); - bool haveStarted; - QWidget optionEngineWidget; - void updateTitle(); - QMenu menu; - FacilityInterface * facilityEngine; - int loop_size,loop_sub_size,indexAction,index; - int index_for_loop,sub_loop_size,sub_index_for_loop; - currentTransfertItem getCurrentTransfertItem(); - QList<quint64> startId,stopId;///< To show what is started, what is stopped - QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;///< to have progression and stat - /// \brief the custom transfer model - TransferModel transferModel; + struct ItemOfCopyListWithMoreInformations + { + quint64 currentProgression; + Ultracopier::ItemOfCopyList generalData; + Ultracopier::ActionTypeCopyList actionType; + bool custom_with_progression; + }; + struct currentTransfertItem + { + quint64 id; + bool haveItem; + QString from; + QString to; + QString current_file; + int progressBar_file; + }; + Ui::interfaceCopy *ui; + quint64 currentFile; + quint64 totalFile; + quint64 currentSize; + quint64 totalSize; + void updateOverallInformation(); + void updateCurrentFileInformation(); + Ultracopier::EngineActionInProgress action; + void closeEvent(QCloseEvent *event); + QList<ItemOfCopyListWithMoreInformations> currentProgressList; + QString speedString; + bool storeIsInPause; + bool modeIsForced; + Ultracopier::CopyType type; + Ultracopier::CopyMode mode; + void updateModeAndType(); + bool haveStarted; + QWidget optionEngineWidget; + void updateTitle(); + QMenu menu; + FacilityInterface * facilityEngine; + int loop_size,loop_sub_size,indexAction,index; + int index_for_loop,sub_loop_size,sub_index_for_loop; + currentTransfertItem getCurrentTransfertItem(); + QList<quint64> startId,stopId;///< To show what is started, what is stopped + QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;///< to have progression and stat + /// \brief the custom transfer model + TransferModel transferModel; + QColor progressColorWrite; + QColor progressColorRead; + QColor progressColorRemaining; public: - //send information about the copy - /// \brief to set the action in progress - void actionInProgess(EngineActionInProgress); - /// \brief new transfer have started - void newTransferStart(const ItemOfCopyList &item); - /** \brief one transfer have been stopped - * is stopped, example: because error have occurred, and try later, don't remove the item! */ - void newTransferStop(const quint64 &id); - /// \brief the new folder is listing - void newFolderListing(const QString &path); - /** \brief show the detected speed - * in byte per seconds */ - void detectedSpeed(const quint64 &speed); - /** \brief show the remaining time - * time in seconds */ - void remainingTime(const int &remainingSeconds); - /// \brief set the current collision action - void newCollisionAction(const QString &action); - /// \brief set the current error action - void newErrorAction(const QString &action); - /// \brief set one error is detected - void errorDetected(); - //speed limitation - /** \brief the max speed used - * in byte per seconds, -1 if not able, 0 if disabled */ - bool setSpeedLimitation(const qint64 &speedLimitation); - InterfacePlugin(FacilityInterface * facilityEngine); - ~InterfacePlugin(); - //get information about the copy - /// \brief show the general progression - void setGeneralProgression(const quint64 ¤t,const quint64 &total); - /// \brief show the file progression - void setFileProgression(const QList<ProgressionItem> &progressionList); - /// \brief set collision action - void setCollisionAction(const QList<QPair<QString,QString> > &); - /// \brief set error action - void setErrorAction(const QList<QPair<QString,QString> > &); - /// \brief set the copyType -> file or folder - void setCopyType(CopyType); - /// \brief set the copyMove -> copy or move, to force in copy or move, else support both - void forceCopyMode(CopyMode); - /// \brief set if transfer list is exportable/importable - void setTransferListOperation(TransferListOperation transferListOperation); - /** \brief set if the order is external (like file manager copy) - * to notify the interface, which can hide add folder/filer button */ - void haveExternalOrder(); - /// \brief set if is in pause - void isInPause(bool); - /// \brief get the widget for the copy engine - QWidget * getOptionsEngineWidget(); - /// \brief to set if the copy engine is found - void getOptionsEngineEnabled(bool isEnabled); + //send information about the copy + /// \brief to set the action in progress + void actionInProgess(const Ultracopier::EngineActionInProgress &); + /// \brief new transfer have started + void newTransferStart(const Ultracopier::ItemOfCopyList &item); + /** \brief one transfer have been stopped + * is stopped, example: because error have occurred, and try later, don't remove the item! */ + void newTransferStop(const quint64 &id); + /// \brief the new folder is listing + void newFolderListing(const QString &path); + /** \brief show the detected speed + * in byte per seconds */ + void detectedSpeed(const quint64 &speed); + /** \brief support speed limitation */ + void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool); + /** \brief show the remaining time + * time in seconds */ + void remainingTime(const int &remainingSeconds); + /// \brief set the current collision action + void newCollisionAction(const QString &action); + /// \brief set the current error action + void newErrorAction(const QString &action); + /// \brief set one error is detected + void errorDetected(); + /// \brief new error + void errorToRetry(const QString &source,const QString &destination,const QString &error); + //speed limitation + /** \brief the max speed used + * in byte per seconds, -1 if not able, 0 if disabled */ + bool setSpeedLimitation(const qint64 &speedLimitation); + Themes(FacilityInterface * facilityEngine); + ~Themes(); + //get information about the copy + /// \brief show the general progression + void setGeneralProgression(const quint64 ¤t,const quint64 &total); + /// \brief show the file progression + void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList); + /// \brief set collision action + void setCollisionAction(const QList<QPair<QString,QString> > &); + /// \brief set error action + void setErrorAction(const QList<QPair<QString,QString> > &); + /// \brief set the copyType -> file or folder + void setCopyType(const Ultracopier::CopyType &); + /// \brief set the copyMove -> copy or move, to force in copy or move, else support both + void forceCopyMode(const Ultracopier::CopyMode &); + /// \brief set if transfer list is exportable/importable + void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation); + /** \brief set if the order is external (like file manager copy) + * to notify the interface, which can hide add folder/filer button */ + void haveExternalOrder(); + /// \brief set if is in pause + void isInPause(const bool &); + /// \brief get the widget for the copy engine + QWidget * getOptionsEngineWidget(); + /// \brief to set if the copy engine is found + void getOptionsEngineEnabled(const bool &isEnabled); private slots: - void on_cancelButton_clicked(); - void on_pauseButton_clicked(); - void on_skipButton_clicked(); - void forcedModeAddFile(); - void forcedModeAddFolder(); - void forcedModeAddFileToCopy(); - void forcedModeAddFolderToCopy(); - void forcedModeAddFileToMove(); - void forcedModeAddFolderToMove(); + void on_cancelButton_clicked(); + void on_pauseButton_clicked(); + void on_skipButton_clicked(); + void forcedModeAddFile(); + void forcedModeAddFolder(); + void forcedModeAddFileToCopy(); + void forcedModeAddFolderToCopy(); + void forcedModeAddFileToMove(); + void forcedModeAddFolderToMove(); signals: - #ifdef ULTRACOPIER_PLUGIN_DEBUG - /// \brief To debug source - void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne); - #endif - //set the transfer list - void removeItems(QList<int> ids); - void moveItemsOnTop(QList<int> ids); - void moveItemsUp(QList<int> ids); - void moveItemsDown(QList<int> ids); - void moveItemsOnBottom(QList<int> ids); - void exportTransferList(); - void importTransferList(); - //user ask ask to add folder (add it with interface ask source/destination) - void userAddFolder(CopyMode); - void userAddFile(CopyMode); - void urlDropped(QList<QUrl> urls); - //action on the copy - void pause(); - void resume(); - void skip(quint64 id); - void cancel(); - //edit the action - void sendCollisionAction(QString action); - void sendErrorAction(QString action); - void newSpeedLimitation(qint64); + #ifdef ULTRACOPIER_PLUGIN_DEBUG + /// \brief To debug source + void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); + #endif + //set the transfer list + /*void removeItems(QList<int> ids); + void moveItemsOnTop(QList<int> ids); + void moveItemsUp(QList<int> ids); + void moveItemsDown(QList<int> ids); + void moveItemsOnBottom(QList<int> ids); + void exportTransferList(); + void importTransferList(); + //user ask ask to add folder (add it with interface ask source/destination) + void userAddFolder(Ultracopier::CopyMode); + void userAddFile(Ultracopier::CopyMode); + void urlDropped(QList<QUrl> urls); + //action on the copy + void pause(); + void resume(); + void skip(quint64 id); + void cancel(); + //edit the action + void sendCollisionAction(QString action); + void sendErrorAction(QString action); + void newSpeedLimitation(qint64);*/ public slots: - //set the translate - void newLanguageLoaded(); - void getActionOnList(const QList<returnActionOnCopyList>& returnActions); + //set the translate + void newLanguageLoaded(); + void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions); }; -#endif // INTERFACE_TEST_H +#endif // INTERFACE_H diff --git a/plugins-alternative/Themes/Teracopy/interface.pro b/plugins-alternative/Themes/Teracopy/interface.pro index 4cecacb..5049e19 100644 --- a/plugins-alternative/Themes/Teracopy/interface.pro +++ b/plugins-alternative/Themes/Teracopy/interface.pro @@ -1,8 +1,12 @@ +CONFIG += c++11 +QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra" +mac:QMAKE_CXXFLAGS+="-stdlib=libc++" + +QT += widgets TEMPLATE = lib CONFIG += plugin HEADERS = interface.h \ - interface/PluginInterface_Themes.h \ - StructEnumDefinition.h \ + StructEnumDefinition.h \ factory.h \ DebugEngineMacro.h \ Environment.h \ @@ -13,24 +17,25 @@ SOURCES = interface.cpp \ factory.cpp \ TransferModel.cpp TARGET = $$qtLibraryTarget(interface) -TRANSLATIONS += Languages/fr/translation.ts \ - Languages/ar/translation.ts \ - Languages/zh/translation.ts \ - Languages/es/translation.ts \ +TRANSLATIONS += Languages/ar/translation.ts \ Languages/de/translation.ts \ Languages/el/translation.ts \ + Languages/en/translation.ts \ + Languages/es/translation.ts \ + Languages/fr/translation.ts \ + Languages/hi/translation.ts \ + Languages/hu/translation.ts \ + Languages/id/translation.ts \ Languages/it/translation.ts \ Languages/ja/translation.ts \ - Languages/id/translation.ts \ + Languages/ko/translation.ts \ + Languages/nl/translation.ts \ + Languages/no/translation.ts \ Languages/pl/translation.ts \ Languages/ru/translation.ts \ - Languages/tr/translation.ts \ Languages/th/translation.ts \ - Languages/hi/translation.ts \ - Languages/nl/translation.ts \ - Languages/no/translation.ts \ - Languages/pt/translation.ts \ - Languages/ko/translation.ts + Languages/tr/translation.ts \ + Languages/zh/translation.ts RESOURCES += resources.qrc diff --git a/plugins-alternative/Themes/Teracopy/interface.ui b/plugins-alternative/Themes/Teracopy/interface.ui index 1bccf44..a5274b3 100644 --- a/plugins-alternative/Themes/Teracopy/interface.ui +++ b/plugins-alternative/Themes/Teracopy/interface.ui @@ -27,7 +27,7 @@ </property> <property name="windowIcon"> <iconset resource="resources.qrc"> - <normaloff>:/resources/main.png</normaloff>:/resources/main.png</iconset> + <normaloff>:/Themes/Teracopy/resources/main.png</normaloff>:/Themes/Teracopy/resources/main.png</iconset> </property> <layout class="QVBoxLayout" name="verticalLayout"> <property name="spacing"> @@ -302,7 +302,7 @@ p, li { white-space: pre-wrap; } <action name="actionAddFile"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset> </property> <property name="text"> <string>Add file</string> @@ -311,7 +311,7 @@ p, li { white-space: pre-wrap; } <action name="actionAddFolder"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset> </property> <property name="text"> <string>Add folder</string> @@ -320,7 +320,7 @@ p, li { white-space: pre-wrap; } <action name="actionAddFileToMove"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset> </property> <property name="text"> <string>Move file(s)</string> @@ -329,7 +329,7 @@ p, li { white-space: pre-wrap; } <action name="actionAddFolderToMove"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset> </property> <property name="text"> <string>Move folder</string> @@ -338,7 +338,7 @@ p, li { white-space: pre-wrap; } <action name="actionAddFileToCopy"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset> </property> <property name="text"> <string>Copy file(s)</string> @@ -347,7 +347,7 @@ p, li { white-space: pre-wrap; } <action name="actionAddFolderToCopy"> <property name="icon"> <iconset> - <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset> + <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset> </property> <property name="text"> <string>Copy folder</string> diff --git a/plugins-alternative/Themes/Teracopy/plugin.json b/plugins-alternative/Themes/Teracopy/plugin.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/plugins-alternative/Themes/Teracopy/plugin.json @@ -0,0 +1 @@ +{}
\ No newline at end of file diff --git a/plugins-alternative/Themes/Teracopy/resources.qrc b/plugins-alternative/Themes/Teracopy/resources.qrc index 7f9a82c..39105a8 100644 --- a/plugins-alternative/Themes/Teracopy/resources.qrc +++ b/plugins-alternative/Themes/Teracopy/resources.qrc @@ -1,5 +1,5 @@ <RCC> - <qresource prefix="/"> + <qresource prefix="/Themes/Teracopy"> <file>resources/SystemTrayIcon/add.png</file> <file>resources/SystemTrayIcon/exit.png</file> <file>resources/SystemTrayIcon/informations.png</file> diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png Binary files differindex 1e03be9..7932127 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png Binary files differindex 201353e..ae3c4e8 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png Binary files differindex e1eb797..5b7b255 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png Binary files differindex d35365c..23ec531 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png Binary files differindex a81e70d..6f5d1cf 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png Binary files differindex 8072aea..5464856 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png Binary files differindex f40ea82..3961215 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png Binary files differindex 8d673e4..45d6315 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png Binary files differindex 9ce4779..ac4299a 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png Binary files differindex d0fca1b..6e6bae7 100644 --- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png +++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png diff --git a/plugins-alternative/Themes/Teracopy/resources/checkbox.png b/plugins-alternative/Themes/Teracopy/resources/checkbox.png Binary files differindex 1c311e2..f7f4388 100644 --- a/plugins-alternative/Themes/Teracopy/resources/checkbox.png +++ b/plugins-alternative/Themes/Teracopy/resources/checkbox.png diff --git a/plugins-alternative/Themes/Teracopy/resources/main.png b/plugins-alternative/Themes/Teracopy/resources/main.png Binary files differindex 8072aea..5464856 100644 --- a/plugins-alternative/Themes/Teracopy/resources/main.png +++ b/plugins-alternative/Themes/Teracopy/resources/main.png diff --git a/plugins-alternative/Themes/Teracopy/resources/player_pause.png b/plugins-alternative/Themes/Teracopy/resources/player_pause.png Binary files differindex a9b3113..68ee21f 100644 --- a/plugins-alternative/Themes/Teracopy/resources/player_pause.png +++ b/plugins-alternative/Themes/Teracopy/resources/player_pause.png diff --git a/plugins-alternative/Themes/Teracopy/resources/player_play.png b/plugins-alternative/Themes/Teracopy/resources/player_play.png Binary files differindex 80ff3a1..a1c5b83 100644 --- a/plugins-alternative/Themes/Teracopy/resources/player_play.png +++ b/plugins-alternative/Themes/Teracopy/resources/player_play.png diff --git a/plugins-alternative/Themes/Teracopy/resources_unix.qrc b/plugins-alternative/Themes/Teracopy/resources_unix.qrc index ae3894b..46e3020 100644 --- a/plugins-alternative/Themes/Teracopy/resources_unix.qrc +++ b/plugins-alternative/Themes/Teracopy/resources_unix.qrc @@ -1,6 +1,6 @@ <RCC> - <qresource prefix="/"> - <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file> + <qresource prefix="/Themes/Teracopy"> + <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file> <file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file> <file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file> </qresource> diff --git a/plugins-alternative/Themes/Teracopy/resources_windows.qrc b/plugins-alternative/Themes/Teracopy/resources_windows.qrc index 99829b3..165123a 100644 --- a/plugins-alternative/Themes/Teracopy/resources_windows.qrc +++ b/plugins-alternative/Themes/Teracopy/resources_windows.qrc @@ -1,5 +1,5 @@ <RCC> - <qresource prefix="/"> + <qresource prefix="/Themes/Teracopy"> <file>resources/SystemTrayIcon/systray_Caught_Windows.png</file> <file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file> <file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file> diff --git a/plugins-alternative/Themes/Windows/DebugEngineMacro.h b/plugins-alternative/Themes/Windows/DebugEngineMacro.h new file mode 100644 index 0000000..4582010 --- /dev/null +++ b/plugins-alternative/Themes/Windows/DebugEngineMacro.h @@ -0,0 +1,28 @@ +/** \file DebugEngineMacro.h +\brief Define the macro for the debug +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef DEBUGENGINEMACRO_H +#define DEBUGENGINEMACRO_H + +#ifdef WIN32 +# define __func__ __FUNCTION__ +#endif + +/// \brief Macro for the debug log +#ifdef ULTRACOPIER_PLUGIN_DEBUG + #if defined (__FILE__) && defined (__LINE__) + #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b,__FILE__,__LINE__) + #else + #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b) + #endif +#else // ULTRACOPIER_DEBUG + #define ULTRACOPIER_DEBUGCONSOLE(a,b) void() +#endif // ULTRACOPIER_DEBUG + +#endif // DEBUGENGINEMACRO_H + + + + diff --git a/plugins-alternative/Themes/Windows/Environment.h b/plugins-alternative/Themes/Windows/Environment.h new file mode 100644 index 0000000..265a5a6 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Environment.h @@ -0,0 +1,10 @@ +/** \file Environment.h
+\brief Define the environment variable and global function
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "Variable.h"
+/// \brief The global include
+#include "StructEnumDefinition.h"
+#include "DebugEngineMacro.h"
+
diff --git a/plugins-alternative/Themes/Windows/Languages/ar/translation.ts b/plugins-alternative/Themes/Windows/Languages/ar/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/ar/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/de/translation.ts b/plugins-alternative/Themes/Windows/Languages/de/translation.ts new file mode 100644 index 0000000..7657f03 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/de/translation.ts @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation>Verbleibende Zeit unbekannt</translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation> + <numerusform>Übertrage %n Element (%2)</numerusform> + <numerusform>Übertrage %n Elemente (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation> + <numerusform>Kopiere %n Element (%2)</numerusform> + <numerusform>Kopiere %n Elemente (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation> + <numerusform>Verschiebe %n Element (%2)</numerusform> + <numerusform>Verschiebe %n Elemente (%2)</numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation>von <b>%1</b> (%2) bis <b>%3</b> (%4)<br />%5</translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation>Warten...</translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation>Name:</translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation>Von:</translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation>Nach:</translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation>verbleibende Zeit:</translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation>verbleibende Elemente:</translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation>Geschwindigkeit:</translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation>Mehr Informationen</translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation>Abbrechen</translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation>Datei hinzufügen</translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation>Ordner hinzufügen</translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation>Datei (en) verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation>Ordner verschieben</translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation>Datei (en) kopieren</translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation>Ordner kopieren</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/el/translation.ts b/plugins-alternative/Themes/Windows/Languages/el/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/el/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/en/translation.ts b/plugins-alternative/Themes/Windows/Languages/en/translation.ts new file mode 100644 index 0000000..27cfd09 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/en/translation.ts @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation> + <numerusform>Transferring %n item (%2)</numerusform> + <numerusform>Transferring %n items (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation> + <numerusform>Copying %n item (%2)</numerusform> + <numerusform>Copying %n items (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation> + <numerusform>Moving %n item (%2)</numerusform> + <numerusform>Moving %n items (%2)</numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/es/translation.ts b/plugins-alternative/Themes/Windows/Languages/es/translation.ts new file mode 100644 index 0000000..cc4de8a --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/es/translation.ts @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="es" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished">desde <b>%1</b> (%2) hasta <b>%3</b> (%4)<br />%5</translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished">En espera</translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation>Nombre:</translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation>Desde:</translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation>Hasta:</translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation>Tiempo restante:</translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation>Items restantes:</translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation>Velocidad:</translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation>Más información</translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation>Cancelar</translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation>Añadir archivo</translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation>Añadir carpeta</translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation>Mover archivo(s)</translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation>Mueva la carpeta</translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation>Copia el archivo(s)</translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation>Copia la carpeta</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/fr/translation.ts b/plugins-alternative/Themes/Windows/Languages/fr/translation.ts new file mode 100644 index 0000000..7f99e83 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/fr/translation.ts @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="fr" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation>Temps restant inconnu</translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation> + <numerusform>Transfert de %n élément (%2)</numerusform> + <numerusform>Transfert de %n éléments (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation> + <numerusform>Copie de %n élément (%2)</numerusform> + <numerusform>Copie de %n éléments (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation> + <numerusform>Déplacement de %n élément (%2)</numerusform> + <numerusform>Déplacement de %n éléments (%2)</numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation>depuis <b>%1</b> (%2) vers <b>%3</b> (%4)<br />%5</translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation>En attente</translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation>Déplacer des fichiers</translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation>Déplacer un dossier</translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation>Copier des fichiers</translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation>Copier un dossier</translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation>Ajouter un dossier</translation> + </message> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation>Nom:</translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation>Depuis:</translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation>Vers:</translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation>Temps restant:</translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation>Éléments restants:</translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation>Vitesse:</translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation>Plus d'information</translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation>Annuler</translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation>Ajout de fichier</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/hi/translation.ts b/plugins-alternative/Themes/Windows/Languages/hi/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/hi/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/hu/translation.ts b/plugins-alternative/Themes/Windows/Languages/hu/translation.ts new file mode 100644 index 0000000..ef4bf6d --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/hu/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="hu"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation>Ismeretlen hátralévő idő</translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation> + <numerusform>%n elem áthelyezése(%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation> + <numerusform>%n elem átmásolása(%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation> + <numerusform>%n elem mozgatása(%2)</numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation><b>%1</b> (%2) helyről-> <b>%3</b> (%4) helyre<br />%5</translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation>Várakozik</translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation>Név:</translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation>Forrás:</translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation>Cél:</translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation>Hátralévő idő:</translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation>Hátralévő elemek:</translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation>Sebesség:</translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation>Több információ</translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation>Mégse</translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation>Fájl hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation>Mappa hozzáadása</translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation>Fájl(ok) mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation>Mappa mozgatása</translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation>Fájl(ok) másolása</translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation>Mappa másolása</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/id/translation.ts b/plugins-alternative/Themes/Windows/Languages/id/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/id/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/it/translation.ts b/plugins-alternative/Themes/Windows/Languages/it/translation.ts new file mode 100644 index 0000000..c3d5a73 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/it/translation.ts @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="it" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation>Tempo rediduo indeterminato</translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation> + <numerusform>Trasferimento di %n elemento (%2)</numerusform> + <numerusform>Trasferimento di %n elementi (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation> + <numerusform>Copia di %n elemento (%2)</numerusform> + <numerusform>Copia di %n elementi (%2)</numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation> + <numerusform>Spostamento di %n elemento (%2)</numerusform> + <numerusform>Spostamento di %n elementi (%2)</numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translatorcomment>Per esempio: da <b>Cartella di origine</b> (e: precedente origine) to <b>Cartella di destinazione</b> (d: destinazione desktop)<br />Circa 5 ore rimanenti</translatorcomment> + <translation>da <b>%1</b> (%2) a <b>%3</b> (%4)<br />%5</translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation>In attesa</translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation>Nome:</translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation>Da:</translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation>A:</translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation>Tempo residuo:</translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation>Elementi rimanenti:</translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation>Velocità:</translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation>Maggiori informazioni</translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation>Annulla</translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation>Aggiungi file</translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation>Aggiungi cartella</translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation>Sposta file</translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation>Sposta la cartella</translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation>Copia file</translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation>Copia la cartella</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/ja/translation.ts b/plugins-alternative/Themes/Windows/Languages/ja/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/ja/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/ko/translation.ts b/plugins-alternative/Themes/Windows/Languages/ko/translation.ts new file mode 100644 index 0000000..4d682a3 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/ko/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ko_KR"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="+204"/> + <location line="+188"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location line="-55"/> + <location line="+2"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+7"/> + <location line="+2"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+5"/> + <location line="+2"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location line="+48"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="+176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+65"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+40"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Add file</source> + <translation type="unfinished">파일 추가</translation> + </message> + <message> + <location line="+9"/> + <source>Add folder</source> + <translation type="unfinished">폴더 추가</translation> + </message> + <message> + <location line="+9"/> + <source>Move file(s)</source> + <translation type="unfinished">파일 이동</translation> + </message> + <message> + <location line="+9"/> + <source>Move folder</source> + <translation type="unfinished">폴더 이동</translation> + </message> + <message> + <location line="+9"/> + <source>Copy file(s)</source> + <translation type="unfinished">파일 복사</translation> + </message> + <message> + <location line="+9"/> + <source>Copy folder</source> + <translation type="unfinished">폴더 복사</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/nl/translation.ts b/plugins-alternative/Themes/Windows/Languages/nl/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/nl/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/no/translation.ts b/plugins-alternative/Themes/Windows/Languages/no/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/no/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/pl/translation.ts b/plugins-alternative/Themes/Windows/Languages/pl/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/pl/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/ru/translation.ts b/plugins-alternative/Themes/Windows/Languages/ru/translation.ts new file mode 100644 index 0000000..02e9260 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/ru/translation.ts @@ -0,0 +1,127 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru" sourcelanguage="en"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation>Добавить файл</translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation>Добавить папку</translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation>Перемещение файла (ов)</translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation>Перемещение папки</translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation>Копировать файл (ы)</translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation>Копировать папку</translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/th/translation.ts b/plugins-alternative/Themes/Windows/Languages/th/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/th/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/tr/translation.ts b/plugins-alternative/Themes/Windows/Languages/tr/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/tr/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/Languages/zh/translation.ts b/plugins-alternative/Themes/Windows/Languages/zh/translation.ts new file mode 100644 index 0000000..fe6d20c --- /dev/null +++ b/plugins-alternative/Themes/Windows/Languages/zh/translation.ts @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>Themes</name> + <message> + <location filename="../../interface.cpp" line="204"/> + <location filename="../../interface.cpp" line="392"/> + <source>Unknown remaining time</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="337"/> + <location filename="../../interface.cpp" line="339"/> + <source>Transferring %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="346"/> + <location filename="../../interface.cpp" line="348"/> + <source>Copying %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location filename="../../interface.cpp" line="353"/> + <location filename="../../interface.cpp" line="355"/> + <source>Moving %n item(s) (%2)</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message> + <location filename="../../interface.cpp" line="403"/> + <source>from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5</source> + <extracomment>Sample: from <b>sources</b> (e:<byte value="xc"/>oldersource) to <b>destination</b> (d:desktopdestination)<br />About 5 Hours remaining</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.cpp" line="412"/> + <source>In waiting</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>interface</name> + <message> + <location filename="../../interface.ui" line="176"/> + <source>Name:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="186"/> + <source>From:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="196"/> + <source>To:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="206"/> + <source>Time remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="216"/> + <source>Items remaining:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="226"/> + <source>Speed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="291"/> + <source>More information</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="331"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="345"/> + <source>Add file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="354"/> + <source>Add folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="363"/> + <source>Move file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="372"/> + <source>Move folder</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="381"/> + <source>Copy file(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../interface.ui" line="390"/> + <source>Copy folder</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/plugins-alternative/Themes/Windows/StructEnumDefinition.h b/plugins-alternative/Themes/Windows/StructEnumDefinition.h new file mode 100644 index 0000000..c1758f4 --- /dev/null +++ b/plugins-alternative/Themes/Windows/StructEnumDefinition.h @@ -0,0 +1 @@ +#include "../../../StructEnumDefinition.h" diff --git a/plugins-alternative/Themes/Windows/TransferModel.cpp b/plugins-alternative/Themes/Windows/TransferModel.cpp new file mode 100644 index 0000000..7743266 --- /dev/null +++ b/plugins-alternative/Themes/Windows/TransferModel.cpp @@ -0,0 +1,286 @@ +#include "TransferModel.h" + +#define COLUMN_COUNT 3 + +// Model + +TransferModel::TransferModel() +{ + iconStart=QIcon(":/Themes/Windows/resources/player_play.png"); + iconPause=QIcon(":/Themes/Windows/resources/player_pause.png"); + iconStop=QIcon(":/Themes/Windows/resources/checkbox.png"); + currentIndexSearch=0; + currentFile = 0; + totalFile = 0; + currentSize = 0; + totalSize = 0; + haveSearchItem=false; +} + +int TransferModel::columnCount( const QModelIndex& parent ) const +{ + return parent == QModelIndex() ? COLUMN_COUNT : 0; +} + +QVariant TransferModel::data( const QModelIndex& index, int role ) const +{ + Q_UNUSED(role); + Q_UNUSED(index); + return QVariant(); +} + +int TransferModel::rowCount( const QModelIndex& parent ) const +{ + Q_UNUSED(parent); + return 0; +} + +QVariant TransferModel::headerData( int section, Qt::Orientation orientation, int role ) const +{ + if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) { + switch ( section ) { + case 0: + return facilityEngine->translateText("Source"); + case 1: + return facilityEngine->translateText("Size"); + case 2: + return facilityEngine->translateText("Destination"); + } + } + + return QAbstractTableModel::headerData( section, orientation, role ); +} + +bool TransferModel::setData( const QModelIndex& index, const QVariant& value, int role ) +{ + Q_UNUSED(index); + Q_UNUSED(value); + Q_UNUSED(role); + return true; +} + +/* + Return[0]: totalFile + Return[1]: totalSize + Return[2]: currentFile + */ +QList<quint64> TransferModel::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions) +{ + loop_size=returnActions.size(); + index_for_loop=0; + emit layoutAboutToBeChanged(); + while(index_for_loop<loop_size) + { + const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop); + switch(action.type) + { + case Ultracopier::AddingItem: + { + this->totalFile++; + this->totalSize+=action.addAction.size; + } + break; + case Ultracopier::RemoveItem: + internalRunningOperation.remove(action.addAction.id); + startId.remove(action.addAction.id); + stopId.remove(action.addAction.id); + this->currentFile++; + break; + case Ultracopier::PreOperation: + { + ItemOfCopyListWithMoreInformations tempItem; + tempItem.currentProgression=0; + tempItem.generalData=action.addAction; + tempItem.generalData.destinationFullPath.remove(tempItem.generalData.destinationFullPath.size()-tempItem.generalData.destinationFileName.size(),tempItem.generalData.destinationFileName.size()); + tempItem.generalData.sourceFullPath.remove(tempItem.generalData.sourceFullPath.size()-tempItem.generalData.sourceFileName.size(),tempItem.generalData.sourceFileName.size()); + tempItem.actionType=action.type; + internalRunningOperation[action.addAction.id]=tempItem; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("set for file %1: actionType: PreOperation").arg(action.addAction.id)); + } + break; + case Ultracopier::Transfer: + { + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("found entry for file %1: actionType: Transfer").arg(action.addAction.id)); + if(!startId.contains(action.addAction.id)) + startId << action.addAction.id; + stopId.remove(action.addAction.id); + if(internalRunningOperation.contains(action.addAction.id)) + internalRunningOperation[action.addAction.id].actionType=action.type; + else + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id)); + } + break; + case Ultracopier::PostOperation: + { + if(!stopId.contains(action.addAction.id)) + stopId << action.addAction.id; + startId.remove(action.addAction.id); + } + break; + case Ultracopier::CustomOperation: + { + bool custom_with_progression=(action.addAction.size==1); + //without progression + if(custom_with_progression) + { + if(startId.remove(action.addAction.id)) + if(!stopId.contains(action.addAction.id)) + stopId << action.addAction.id; + } + //with progression + else + { + stopId.remove(action.addAction.id); + if(!startId.contains(action.addAction.id)) + startId << action.addAction.id; + } + if(internalRunningOperation.contains(action.addAction.id)) + { + ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id]; + item.actionType=action.type; + item.custom_with_progression=custom_with_progression; + item.currentProgression=0; + } + } + break; + default: + //unknow code, ignore it + break; + } + index_for_loop++; + } + emit layoutChanged(); + return QList<quint64>() << totalFile << totalSize << currentFile; +} + +void TransferModel::setFacilityEngine(FacilityInterface * facilityEngine) +{ + this->facilityEngine=facilityEngine; +} + +void TransferModel::setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList) +{ + loop_size=progressionList.size(); + index_for_loop=0; + while(index_for_loop<loop_size) + { + if(internalRunningOperation.contains(progressionList.at(index_for_loop).id)) + { + internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total; + internalRunningOperation[progressionList.at(index_for_loop).id].currentProgression=(progressionList.at(index_for_loop).currentRead+progressionList.at(index_for_loop).currentWrite)/2; + #ifdef ULTRACOPIER_PLUGIN_DEBUG + progressionList.removeAt(index_for_loop); + index_for_loop--; + loop_size--; + #endif + } + index_for_loop++; + } + #ifdef ULTRACOPIER_PLUGIN_DEBUG + if(progressionList.size()>0) + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"progression remaning items"); + #endif +} + +TransferModel::currentTransfertItem TransferModel::getCurrentTransfertItem() +{ + currentTransfertItem returnItem; + returnItem.haveItem=startId.size()>0; + if(returnItem.haveItem) + { + if(!internalRunningOperation.contains(*startId.constBegin())) + { + returnItem.haveItem=false; + return returnItem; + } + const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*startId.constBegin()]; + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName; + returnItem.size=facilityEngine->sizeToString(itemTransfer.generalData.size); + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_file=-1; + else + { + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=-1; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=0; + break; + //should never pass here + case Ultracopier::PostOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_file=65535; + break; + //should never pass here + case Ultracopier::PreOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_file=0; + break; + default: + returnItem.progressBar_file=0; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + break; + } + } + else + { + if(!internalRunningOperation.contains(*stopId.constBegin())) + { + returnItem.haveItem=false; + return returnItem; + } + else + returnItem.haveItem=true; + const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*stopId.constBegin()]; + returnItem.from=itemTransfer.generalData.sourceFullPath; + returnItem.to=itemTransfer.generalData.destinationFullPath; + returnItem.current_file=itemTransfer.generalData.destinationFileName; + returnItem.size=facilityEngine->sizeToString(itemTransfer.generalData.size); + switch(itemTransfer.actionType) + { + case Ultracopier::CustomOperation: + if(!itemTransfer.custom_with_progression) + returnItem.progressBar_file=-1; + else + { + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=-1; + } + break; + case Ultracopier::Transfer: + if(itemTransfer.generalData.size>0) + returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535; + else + returnItem.progressBar_file=0; + break; + //should never pass here + case Ultracopier::PostOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_file=65535; + break; + //should never pass here + case Ultracopier::PreOperation: + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + returnItem.progressBar_file=0; + break; + default: + returnItem.progressBar_file=65535; + ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType)); + break; + } + } + return returnItem; +} diff --git a/plugins-alternative/Themes/Windows/TransferModel.h b/plugins-alternative/Themes/Windows/TransferModel.h new file mode 100644 index 0000000..c2d89aa --- /dev/null +++ b/plugins-alternative/Themes/Windows/TransferModel.h @@ -0,0 +1,90 @@ +#ifndef TRANSFERMODEL_H +#define TRANSFERMODEL_H + +#include <QAbstractTableModel> +#include <QModelIndex> +#include <QVariant> +#include <QList> +#include <QSet> +#include <QIcon> +#include <QString> + +#include "StructEnumDefinition.h" +#include "Environment.h" + +#include "../../../interface/FacilityInterface.h" + +/// \brief model to store the transfer list +class TransferModel : public QAbstractTableModel +{ + Q_OBJECT +public: + /// \brief the transfer item displayed + struct transfertItem + { + quint64 id; + QString source; + QString size; + QString destination; + }; + /// \brief the transfer item with progression + struct ItemOfCopyListWithMoreInformations + { + quint64 currentProgression; + Ultracopier::ItemOfCopyList generalData; + Ultracopier::ActionTypeCopyList actionType; + bool custom_with_progression; + }; + /// \brief returned first transfer item + struct currentTransfertItem + { + quint64 id; + bool haveItem; + QString from; + QString to; + QString current_file; + QString size; + int progressBar_file; + }; + + TransferModel(); + + virtual int columnCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); + + QList<quint64> synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions); + void setFacilityEngine(FacilityInterface * facilityEngine); + + void setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList); + + currentTransfertItem getCurrentTransfertItem(); + + quint64 currentFile; + quint64 totalFile; + quint64 currentSize; + quint64 totalSize; +protected: + QSet<quint64> startId,stopId;///< To show what is started, what is stopped + QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat + QIcon iconStart,iconPause,iconStop; +private: + int loop_size,index_for_loop; + int sub_loop_size,sub_index_for_loop; + int row,column; + FacilityInterface * facilityEngine; + QString search_text; + /// \brief index from start the search, decresed by remove before it + int currentIndexSearch; + bool haveSearchItem; + quint64 searchId; +signals: + #ifdef ULTRACOPIER_PLUGIN_DEBUG + /// \brief To debug source + void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); + #endif +}; + +#endif // TRANSFERMODEL_H diff --git a/plugins-alternative/Themes/Windows/Variable.h b/plugins-alternative/Themes/Windows/Variable.h new file mode 100644 index 0000000..963d0c8 --- /dev/null +++ b/plugins-alternative/Themes/Windows/Variable.h @@ -0,0 +1,15 @@ +/** \file Variable.h
+\brief Define the environment variable
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef VARIABLE_H
+#define VARIABLE_H
+
+//Un-comment this next line to put ultracopier plugin in debug mode
+#define ULTRACOPIER_PLUGIN_DEBUG
+
+#endif // VARIABLE_H
+
+
+
diff --git a/plugins-alternative/Themes/Windows/documentation.dox b/plugins-alternative/Themes/Windows/documentation.dox new file mode 100644 index 0000000..df43161 --- /dev/null +++ b/plugins-alternative/Themes/Windows/documentation.dox @@ -0,0 +1,29 @@ +/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/ + +/* + This file contains NO source code, just some documentation for doxygen to + parse. +*/ + +/*! + \mainpage Windows + + \section mainpage_overview Overview + + It's interface to have interface like windows for Ultracopier.\n + More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier project as alternative plugin. + + \section mainpage_platforms Platforms + + Ultracopier might be usable in all environments where you find Qt 5.\n + Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0. + + \section mainpage_downloads Downloads + + You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ... + + \section license GPL Version 3 + The code source is under GPL3. + +*/ + diff --git a/plugins-alternative/Themes/Windows/factory.cpp b/plugins-alternative/Themes/Windows/factory.cpp new file mode 100644 index 0000000..dbce51a --- /dev/null +++ b/plugins-alternative/Themes/Windows/factory.cpp @@ -0,0 +1,74 @@ +/** \file factory.cpp +\brief Define the factory core +\author alpha_one_x86 +*/ + +#include "factory.h" + +QRegularExpression ThemesFactory::slashEnd; +QRegularExpression ThemesFactory::isolateName; + +ThemesFactory::ThemesFactory() +{ + slashEnd=QRegularExpression("/$"); + isolateName=QRegularExpression("^.*/([^/]+)$"); +} + +PluginInterface_Themes * ThemesFactory::getInstance() +{ + Themes * newInterface=new Themes(facilityEngine); + connect(this,&ThemesFactory::reloadLanguage,newInterface,&Themes::newLanguageLoaded); + return newInterface; +} + +void ThemesFactory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,const bool &portableVersion) +{ + Q_UNUSED(options) + Q_UNUSED(writePath) + Q_UNUSED(pluginPath) + this->facilityEngine=facilityEngine; + Q_UNUSED(portableVersion) +} + +QWidget * ThemesFactory::options() +{ + return NULL; +} + +QIcon ThemesFactory::getIcon(const QString &fileName) const +{ + if(fileName=="SystemTrayIcon/exit.png") + { + QIcon tempIcon=QIcon::fromTheme("application-exit"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/add.png") + { + QIcon tempIcon=QIcon::fromTheme("list-add"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/informations.png") + { + QIcon tempIcon=QIcon::fromTheme("help-about"); + if(!tempIcon.isNull()) + return tempIcon; + } + if(fileName=="SystemTrayIcon/options.png") + { + QIcon tempIcon=QIcon::fromTheme("applications-system"); + if(!tempIcon.isNull()) + return tempIcon; + } + return QIcon(":/Themes/Windows/resources/"+fileName); +} + +void ThemesFactory::resetOptions() +{ +} + +void ThemesFactory::newLanguageLoaded() +{ + emit reloadLanguage(); +} diff --git a/plugins-alternative/Themes/Windows/factory.h b/plugins-alternative/Themes/Windows/factory.h new file mode 100644 index 0000000..32ea9f1 --- /dev/null +++ b/plugins-alternative/Themes/Windows/factory.h @@ -0,0 +1,45 @@ +/** \file factory.h +\brief Define the factory, to create instance of the interface +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef FACTORY_H +#define FACTORY_H + +#include <QObject> +#include <QWidget> +#include <QIcon> +#include <QRegularExpression> + +#include "interface.h" +#include "../../../interface/PluginInterface_Themes.h" + +/// \brief Define the factory, to create instance of the interface +class ThemesFactory : public PluginInterface_ThemesFactory +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json") + Q_INTERFACES(PluginInterface_ThemesFactory) + public: + ThemesFactory(); + /// \brief to return the instance of the copy engine + PluginInterface_Themes * getInstance(); + /// \brief set the resources, to store options, to have facilityInterface + void setResources(OptionInterface * optionsEngine,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,const bool &portableVersion); + /// \brief to get the default options widget + QWidget * options(); + /// \brief to get a resource icon + QIcon getIcon(const QString &fileName) const; + //regex + static QRegularExpression slashEnd; + static QRegularExpression isolateName; + signals: + void reloadLanguage(); + public slots: + void resetOptions(); + void newLanguageLoaded(); + private: + FacilityInterface * facilityEngine; +}; + +#endif // FACTORY_H diff --git a/plugins-alternative/Themes/Windows/informations.xml b/plugins-alternative/Themes/Windows/informations.xml new file mode 100644 index 0000000..b0d6f22 --- /dev/null +++ b/plugins-alternative/Themes/Windows/informations.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package> + <title xml:lang="en"><![CDATA[Windows dialog for Ultracopier]]></title><!-- english is required --> + <title xml:lang="fr"><![CDATA[Dialogue de Windows pour Ultracopier]]></title> + <!-- What kind of plugin this is --> + <category>Themes</category> + <!-- Who wrote this plugin --> + <author><![CDATA[BRULE Herman, alpha_one_x86 (alpha_one_x86@first-world.info)]]></author> + <!-- URL of page or site for this plugin (may provide additional information, bug reports, feature requests). --> + <website xml:lang="en"><![CDATA[http://ultracopier.first-world.info/]]></website><!-- not required --> + <website xml:lang="fr"><![CDATA[http://ultracopier-fr.first-world.info/]]></website><!-- not required --> + <!-- the date-time format should be in RFC822 format --> + <pubDate>1287496800</pubDate> + <!-- the architecture code of this plugin, found PlatformMacro.h into ultracopier source --> + <architecture>windows-x86</architecture> + <!-- Detailed description --> + <description xml:lang="en"><![CDATA[Windows dialog for Ultracopier, to have same copy dialog than windows vista/7/8]]></description> + <description xml:lang="fr"><![CDATA[Dialogue de Windows pour Ultracopier, pour avoir une boite de dialogue pour la copie comme windows vista/7/8]]></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>1.2.3.6</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>Windows</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[ + ]]></dependencies> +</package>
\ No newline at end of file diff --git a/plugins-alternative/Themes/Windows/interface.cpp b/plugins-alternative/Themes/Windows/interface.cpp new file mode 100644 index 0000000..e358f9c --- /dev/null +++ b/plugins-alternative/Themes/Windows/interface.cpp @@ -0,0 +1,414 @@ +/** \file interface.cpp +\brief Define the interface core +\author alpha_one_x86 +*/ + +#include "interface.h" +#include "factory.h" +#include "ui_interface.h" + +Themes::Themes(FacilityInterface * facilityEngine) : + ui(new Ui::interface()) +{ + ui->setupUi(this); + remainingSeconds= 0; + speed = 0; + progression_current=0; + progression_total=0; + modeIsForced = false; + haveStarted = false; + this->facilityEngine = facilityEngine; + transferModel.setFacilityEngine(facilityEngine); + menu=new QMenu(this); + ui->toolButton->setMenu(menu); + updateModeAndType(); + + connect(ui->actionAddFile,&QAction::triggered,this,&Themes::forcedModeAddFile); + connect(ui->actionAddFileToCopy,&QAction::triggered,this,&Themes::forcedModeAddFileToCopy); + connect(ui->actionAddFileToMove,&QAction::triggered,this,&Themes::forcedModeAddFileToMove); + connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&Themes::forcedModeAddFolderToCopy); + connect(ui->actionAddFolderToMove,&QAction::triggered,this,&Themes::forcedModeAddFolderToMove); + connect(ui->actionAddFolder,&QAction::triggered,this,&Themes::forcedModeAddFolder); + + updateDetails(); + + #ifdef ULTRACOPIER_PLUGIN_DEBUG + connect(&transferModel,&TransferModel::debugInformation,this,&Themes::debugInformation); + #endif + #ifndef Q_OS_WIN32 + ui->widget_bottom->setStyleSheet("background-color: rgb(237, 237, 237);"); + #endif + show(); +} + +Themes::~Themes() +{ + delete menu; +} + +void Themes::forcedModeAddFile() +{ + emit userAddFile(mode); +} + +void Themes::forcedModeAddFolder() +{ + emit userAddFolder(mode); +} + +void Themes::forcedModeAddFileToCopy() +{ + emit userAddFile(Ultracopier::Copy); +} + +void Themes::forcedModeAddFolderToCopy() +{ + emit userAddFolder(Ultracopier::Copy); +} + +void Themes::forcedModeAddFileToMove() +{ + emit userAddFile(Ultracopier::Move); +} + +void Themes::forcedModeAddFolderToMove() +{ + emit userAddFolder(Ultracopier::Move); +} + +void Themes::updateModeAndType() +{ + menu->clear(); + if(modeIsForced) + { + menu->addAction(ui->actionAddFile); + if(type==Ultracopier::FileAndFolder) + menu->addAction(ui->actionAddFolder); + } + else + { + menu->addAction(ui->actionAddFileToCopy); + menu->addAction(ui->actionAddFileToMove); + if(type==Ultracopier::FileAndFolder) + { + menu->addAction(ui->actionAddFolderToCopy); + menu->addAction(ui->actionAddFolderToMove); + } + } +} + +void Themes::closeEvent(QCloseEvent *event) +{ + event->ignore(); + this->hide(); + emit cancel(); +} + +void Themes::detectedSpeed(const quint64 &speed) +{ + this->speed=speed; + if(ui->more->isChecked()) + ui->label_speed->setText(facilityEngine->speedToString(speed)); +} + +void Themes::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool) +{ + Q_UNUSED(supportSpeedLimitationBool); +} + +QWidget * Themes::getOptionsEngineWidget() +{ + return NULL; +} + +void Themes::getOptionsEngineEnabled(const bool &isEnabled) +{ + Q_UNUSED(isEnabled) +} + +void Themes::setCopyType(const Ultracopier::CopyType &type) +{ + this->type=type; + updateModeAndType(); +} + +void Themes::forceCopyMode(const Ultracopier::CopyMode &mode) +{ + modeIsForced=true; + this->mode=mode; + updateModeAndType(); + updateInformations(); +} + +void Themes::updateTitle() +{ + remainingTime(remainingSeconds); +} + +void Themes::actionInProgess(const Ultracopier::EngineActionInProgress &action) +{ + this->action=action; + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + ui->progressBar->setMaximum(65535); + ui->progressBar->setMinimum(0); + break; + case Ultracopier::Listing: + ui->progressBar->setMaximum(0); + ui->progressBar->setMinimum(0); + break; + case Ultracopier::Idle: + if(haveStarted) + emit cancel(); + break; + default: + break; + } + switch(action) + { + case Ultracopier::Copying: + case Ultracopier::CopyingAndListing: + haveStarted=true; + break; + default: + break; + } +} + +void Themes::newTransferStart(const Ultracopier::ItemOfCopyList &item) +{ + ui->text->setText(item.sourceFullPath); +} + +void Themes::newTransferStop(const quint64 &id) +{ + Q_UNUSED(id) +} + +void Themes::newFolderListing(const QString &path) +{ + if(action==Ultracopier::Listing) + ui->text->setText(path); +} + +void Themes::remainingTime(const int &remainingSeconds) +{ + this->remainingSeconds=remainingSeconds; + + QString remainingTime; + if(remainingSeconds>=0) + remainingTime=facilityEngine->simplifiedRemainingTime(remainingSeconds); + else + remainingTime=facilityEngine->translateText(tr("Unknown remaining time")); + + this->setWindowTitle(remainingTime); + + if(ui->more->isChecked()) + ui->label_remaining_time->setText(remainingTime); + else + updateInformations(); +} + +void Themes::newCollisionAction(const QString &action) +{ + Q_UNUSED(action) +} + +void Themes::newErrorAction(const QString &action) +{ + Q_UNUSED(action) +} + +void Themes::errorDetected() +{ +} + +/// \brief new error +void Themes::errorToRetry(const QString &source,const QString &destination,const QString &error) +{ + Q_UNUSED(source); + Q_UNUSED(destination); + Q_UNUSED(error); +} + +void Themes::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation) +{ + Q_UNUSED(transferListOperation) +} + +//speed limitation +bool Themes::setSpeedLimitation(const qint64 &speedLimitation) +{ + Q_UNUSED(speedLimitation) + return false; +} + +//get information about the copy +void Themes::setGeneralProgression(const quint64 ¤t,const quint64 &total) +{ + progression_current=current; + progression_total=total; + ui->progressBar->setValue(((double)current/total)*65535); +} + +void Themes::setCollisionAction(const QList<QPair<QString,QString> > &list) +{ + Q_UNUSED(list) +} + +void Themes::setErrorAction(const QList<QPair<QString,QString> > &list) +{ + Q_UNUSED(list) +} + +//edit the transfer list +void Themes::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions) +{ + transferModel.synchronizeItems(returnActions); + updateInformations(); +} + +void Themes::haveExternalOrder() +{ + ui->toolButton->hide(); +} + +void Themes::isInPause(const bool &isInPause) +{ + //resume in auto the pause + if(isInPause) + emit resume(); +} + +void Themes::newLanguageLoaded() +{ + ui->retranslateUi(this); + updateTitle(); + updateInformations(); +} + +void Themes::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList) +{ + QList<Ultracopier::ProgressionItem> progressionListBis=progressionList; + transferModel.setFileProgression(progressionListBis); + updateInformations(); +} + +void Themes::on_more_toggled(bool checked) +{ + Q_UNUSED(checked); + updateDetails(); + updateInformations(); +} + +void Themes::updateDetails() +{ + ui->text->setHidden(ui->more->isChecked()); + ui->details->setHidden(!ui->more->isChecked()); + if(ui->more->isChecked()) + { + this->setMinimumHeight(242); + this->setMaximumHeight(242); + ui->more->setIcon(QIcon(":/Themes/Windows/resources/arrow-up.png")); + } + else + { + this->setMinimumHeight(168); + this->setMaximumHeight(168); + ui->more->setIcon(QIcon(":/Themes/Windows/resources/arrow-down.png")); + } + + // usefull under windows + this->updateGeometry(); + this->update(); + this->adjustSize(); + + updateInformations(); +} + +void Themes::updateInformations() +{ + TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem(); + if(!modeIsForced) + { + if(transferModel.totalFile>1) + ui->label_main->setText(tr("Transferring %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total))); + else + ui->label_main->setText(tr("Transferring %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total))); + } + else + { + if(mode==Ultracopier::Copy) + { + if(transferModel.totalFile>1) + ui->label_main->setText(tr("Copying %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total))); + else + ui->label_main->setText(tr("Copying %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total))); + } + else + { + if(transferModel.totalFile>1) + ui->label_main->setText(tr("Moving %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total))); + else + ui->label_main->setText(tr("Moving %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total))); + } + } + + if(ui->more->isChecked()) + { + if(transfertItem.haveItem) + { + QString simplifiedFrom=transfertItem.from; + QString simplifiedTo=transfertItem.to; + simplifiedFrom.remove(ThemesFactory::slashEnd); + simplifiedTo.remove(ThemesFactory::slashEnd); + simplifiedFrom.replace('\\','/'); + simplifiedTo.replace('\\','/'); + simplifiedFrom.replace(ThemesFactory::isolateName, "\\1"); + simplifiedTo.replace(ThemesFactory::isolateName, "\\1"); + ui->label_file->setText(transfertItem.current_file); + ui->label_from->setText(QStringLiteral("<b>%1</b> (%2)").arg(simplifiedFrom).arg(transfertItem.from)); + ui->label_to->setText(QStringLiteral("<b>%1</b> (%2)").arg(simplifiedTo).arg(transfertItem.to)); + ui->label_items->setText(QStringLiteral("%1 (%2)").arg(transferModel.totalFile-transferModel.currentFile).arg(facilityEngine->sizeToString(progression_total-progression_current))); + } + else + { + ui->label_file->setText(""); + ui->label_from->setText(""); + ui->label_to->setText(""); + ui->label_items->setText(QStringLiteral("%1 (%2)").arg(transferModel.totalFile-transferModel.currentFile).arg(facilityEngine->sizeToString(progression_total-progression_current))); + } + } + else + { + if(transfertItem.haveItem) + { + QString remainingTime; + if(remainingSeconds>=0) + remainingTime=facilityEngine->simplifiedRemainingTime(remainingSeconds); + else + remainingTime=facilityEngine->translateText(tr("Unknown remaining time")); + QString simplifiedFrom=transfertItem.from; + QString simplifiedTo=transfertItem.to; + simplifiedFrom.remove(ThemesFactory::slashEnd); + simplifiedTo.remove(ThemesFactory::slashEnd); + simplifiedFrom.replace('\\','/'); + simplifiedTo.replace('\\','/'); + simplifiedFrom.replace(ThemesFactory::isolateName, "\\1"); + simplifiedTo.replace(ThemesFactory::isolateName, "\\1"); + ui->text->setText( + //: Sample: from <b>sources</b> (e:\folder\source) to <b>destination</b> (d:\desktop\destination)<br />About 5 Hours remaining + tr("from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5") + .arg(simplifiedFrom) + .arg(transfertItem.from) + .arg(simplifiedTo) + .arg(transfertItem.to) + .arg(remainingTime) + ); + } + else + ui->text->setText(tr("In waiting")); + } +} diff --git a/plugins-alternative/Themes/Windows/interface.h b/plugins-alternative/Themes/Windows/interface.h new file mode 100644 index 0000000..5de55e6 --- /dev/null +++ b/plugins-alternative/Themes/Windows/interface.h @@ -0,0 +1,165 @@ +/** \file interface.h +\brief Define the interface +\author alpha_one_x86 +\licence GPL3, see the file COPYING */ + +#ifndef INTERFACE_TEST_H +#define INTERFACE_TEST_H + +#include <QObject> +#include <QWidget> +#include <QMenu> +#include <QCloseEvent> + +#include "../../../interface/PluginInterface_Themes.h" +#include "TransferModel.h" + +namespace Ui { + class interface; +} + +/// \brief Define the interface +class Themes : public PluginInterface_Themes +{ + Q_OBJECT +public slots: + //send information about the copy + /// \brief to set the action in progress + void actionInProgess(const Ultracopier::EngineActionInProgress &); + /// \brief new transfer have started + void newTransferStart(const Ultracopier::ItemOfCopyList &item); + /** \brief one transfer have been stopped + * is stopped, example: because error have occurred, and try later, don't remove the item! */ + void newTransferStop(const quint64 &id); + /// \brief the new folder is listing + void newFolderListing(const QString &path); + /** \brief show the detected speed + * in byte per seconds */ + void detectedSpeed(const quint64 &speed); + /** \brief support speed limitation */ + void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool); + /** \brief show the remaining time + * time in seconds */ + void remainingTime(const int &remainingSeconds); + /// \brief set the current collision action + void newCollisionAction(const QString &action); + /// \brief set the current error action + void newErrorAction(const QString &action); + /// \brief set one error is detected + void errorDetected(); + /// \brief new error + void errorToRetry(const QString &source,const QString &destination,const QString &error); + //speed limitation + /** \brief the max speed used + * in byte per seconds, -1 if not able, 0 if disabled */ + bool setSpeedLimitation(const qint64 &speedLimitation); + //set the translate + void newLanguageLoaded(); +public: + /// \brief the transfer item with progression + struct ItemOfCopyListWithMoreInformations + { + quint64 currentProgression; + Ultracopier::ItemOfCopyList generalData; + Ultracopier::ActionTypeCopyList actionType; + bool custom_with_progression; + }; + /// \brief returned first transfer item + struct currentTransfertItem + { + quint64 id; + bool haveItem; + QString from; + QString to; + QString current_file; + int progressBar_file; + }; + /// \brief get the widget for the copy engine + QWidget * getOptionsEngineWidget(); + /// \brief to set if the copy engine is found + void getOptionsEngineEnabled(const bool &isEnabled); + /// \brief get action on the transfer list (add/move/remove) + void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions); + //get information about the copy + /// \brief show the general progression + void setGeneralProgression(const quint64 ¤t,const quint64 &total); + /// \brief show the file progression + void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList); + /// \brief set collision action + void setCollisionAction(const QList<QPair<QString,QString> > &); + /// \brief set error action + void setErrorAction(const QList<QPair<QString,QString> > &); + /// \brief set the copyType -> file or folder + void setCopyType(const Ultracopier::CopyType &); + /// \brief set the copyMove -> copy or move, to force in copy or move, else support both + void forceCopyMode(const Ultracopier::CopyMode &); + /// \brief set if transfer list is exportable/importable + void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation); + /** \brief set if the order is external (like file manager copy) + * to notify the interface, which can hide add folder/filer button */ + void haveExternalOrder(); + /// \brief set if is in pause + void isInPause(const bool &); +signals: + #ifdef ULTRACOPIER_PLUGIN_DEBUG + /// \brief To debug source + void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); + #endif +/* //set the transfer list + void removeItems(QList<int> ids); + void moveItemsOnTop(QList<int> ids); + void moveItemsUp(QList<int> ids); + void moveItemsDown(QList<int> ids); + void moveItemsOnBottom(QList<int> ids); + void exportTransferList(); + void importTransferList(); + //user ask ask to add folder (add it with interface ask source/destination) + void userAddFolder(CopyMode); + void userAddFile(CopyMode); + void urlDropped(QList<QUrl> urls); + //action on the copy + void pause(); + void resume(); + void skip(quint64 id); + void cancel(); + //edit the action + void sendCollisionAction(QString action); + void sendErrorAction(QString action); + void newSpeedLimitation(qint64);*/ +public: + //constructor and destructor + Themes(FacilityInterface * facilityEngine); + ~Themes(); +private: + Ui::interface *ui; + TransferModel transferModel; + void updateTitle(); + QMenu *menu; + Ultracopier::EngineActionInProgress action; + void closeEvent(QCloseEvent *event); + void updateModeAndType(); + bool modeIsForced; + Ultracopier::CopyType type; + Ultracopier::CopyMode mode; + bool haveStarted; + QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation; + int loop_size,index_for_loop; + int sub_loop_size,sub_index_for_loop; + FacilityInterface * facilityEngine; + void updateDetails(); + void updateInformations(); + int remainingSeconds; + quint64 progression_current; + quint64 progression_total; + quint64 speed; +private slots: + void forcedModeAddFile(); + void forcedModeAddFolder(); + void forcedModeAddFileToCopy(); + void forcedModeAddFolderToCopy(); + void forcedModeAddFileToMove(); + void forcedModeAddFolderToMove(); + void on_more_toggled(bool checked); +}; + +#endif // INTERFACE_TEST_H diff --git a/plugins-alternative/Themes/Windows/interface.pro b/plugins-alternative/Themes/Windows/interface.pro new file mode 100644 index 0000000..9a82f6a --- /dev/null +++ b/plugins-alternative/Themes/Windows/interface.pro @@ -0,0 +1,48 @@ +CONFIG += c++11 +QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra" +mac:QMAKE_CXXFLAGS+="-stdlib=libc++" + +QT += widgets +TEMPLATE = lib +CONFIG += plugin +HEADERS = interface.h \ + StructEnumDefinition.h \ + factory.h \ + ../../../interface/PluginInterface_Themes.h \ + TransferModel.h +SOURCES = interface.cpp \ + factory.cpp \ + TransferModel.cpp +TARGET = $$qtLibraryTarget(interface) +TRANSLATIONS += Languages/ar/translation.ts \ + Languages/de/translation.ts \ + Languages/el/translation.ts \ + Languages/en/translation.ts \ + Languages/es/translation.ts \ + Languages/fr/translation.ts \ + Languages/hi/translation.ts \ + Languages/hu/translation.ts \ + Languages/id/translation.ts \ + Languages/it/translation.ts \ + Languages/ja/translation.ts \ + Languages/ko/translation.ts \ + Languages/nl/translation.ts \ + Languages/no/translation.ts \ + Languages/pl/translation.ts \ + Languages/ru/translation.ts \ + Languages/th/translation.ts \ + Languages/tr/translation.ts \ + Languages/zh/translation.ts + +FORMS += \ + interface.ui + +RESOURCES += \ + resources.qrc + +win32 { + RESOURCES += resources_windows.qrc +} +!win32 { + RESOURCES += resources_unix.qrc +} diff --git a/plugins-alternative/Themes/Windows/interface.ui b/plugins-alternative/Themes/Windows/interface.ui new file mode 100644 index 0000000..f255562 --- /dev/null +++ b/plugins-alternative/Themes/Windows/interface.ui @@ -0,0 +1,415 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>interface</class> + <widget class="QWidget" name="interface"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>420</width> + <height>284</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>420</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>420</width> + <height>16777215</height> + </size> + </property> + <property name="windowTitle"> + <string notr="true">Ultracopier</string> + </property> + <property name="windowIcon"> + <iconset resource="resources.qrc"> + <normaloff>:/Themes/Windows/resources/icon.png</normaloff>:/Themes/Windows/resources/icon.png</iconset> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>0</number> + </property> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QWidget" name="widget" native="true"> + <property name="minimumSize"> + <size> + <width>420</width> + <height>42</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>420</width> + <height>42</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(230, 240, 255, 255), stop:0.5 rgba(166, 199, 230, 255), stop:1 rgba(3, 40, 84, 255));</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="leftMargin"> + <number>20</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>20</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label_main"> + <property name="styleSheet"> + <string notr="true">background-color: rgba(255, 0, 0, 0); +font: 12pt "Sans Serif";</string> + </property> + <property name="text"> + <string notr="true">Copying 0 item (0KB)</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_2"> + <property name="minimumSize"> + <size> + <width>51</width> + <height>40</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>51</width> + <height>40</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background-color: rgba(255, 0, 0, 0);</string> + </property> + <property name="pixmap"> + <pixmap resource="resources.qrc">:/Themes/Windows/resources/icon-top.png</pixmap> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="widget_2" native="true"> + <property name="minimumSize"> + <size> + <width>420</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>420</width> + <height>16777215</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">background-color: rgb(255, 255, 255);</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="spacing"> + <number>14</number> + </property> + <property name="leftMargin"> + <number>20</number> + </property> + <property name="topMargin"> + <number>14</number> + </property> + <property name="rightMargin"> + <number>20</number> + </property> + <property name="bottomMargin"> + <number>14</number> + </property> + <item> + <widget class="QLabel" name="text"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>28</height> + </size> + </property> + <property name="text"> + <string notr="true">from <b>%1</b> (%2) to <b>%3</b> (%4)<br /> +%5</string> + </property> + </widget> + </item> + <item> + <widget class="QWidget" name="details" native="true"> + <layout class="QFormLayout" name="formLayout"> + <property name="labelAlignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="verticalSpacing"> + <number>2</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Name:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLabel" name="label_file"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string>From:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLabel" name="label_from"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>To:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="label_to"/> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string>Time remaining:</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLabel" name="label_remaining_time"/> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_8"> + <property name="text"> + <string>Items remaining:</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QLabel" name="label_items"/> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>Speed:</string> + </property> + </widget> + </item> + <item row="5" column="1"> + <widget class="QLabel" name="label_speed"/> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QProgressBar" name="progressBar"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>14</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>14</height> + </size> + </property> + <property name="maximum"> + <number>65535</number> + </property> + <property name="textVisible"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QWidget" name="widget_bottom" native="true"> + <property name="minimumSize"> + <size> + <width>420</width> + <height>42</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>420</width> + <height>42</height> + </size> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="leftMargin"> + <number>20</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>20</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QToolButton" name="more"> + <property name="text"> + <string>More information</string> + </property> + <property name="icon"> + <iconset resource="resources.qrc"> + <normaloff>:/Themes/Windows/resources/arrow-down.png</normaloff>:/Themes/Windows/resources/arrow-down.png</iconset> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>123</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QToolButton" name="toolButton"> + <property name="text"> + <string notr="true">...</string> + </property> + <property name="popupMode"> + <enum>QToolButton::InstantPopup</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="Cancel"> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + <action name="actionAddFile"> + <property name="icon"> + <iconset> + <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset> + </property> + <property name="text"> + <string>Add file</string> + </property> + </action> + <action name="actionAddFolder"> + <property name="icon"> + <iconset> + <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset> + </property> + <property name="text"> + <string>Add folder</string> + </property> + </action> + <action name="actionAddFileToMove"> + <property name="icon"> + <iconset> + <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset> + </property> + <property name="text"> + <string>Move file(s)</string> + </property> + </action> + <action name="actionAddFolderToMove"> + <property name="icon"> + <iconset> + <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset> + </property> + <property name="text"> + <string>Move folder</string> + </property> + </action> + <action name="actionAddFileToCopy"> + <property name="icon"> + <iconset> + <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset> + </property> + <property name="text"> + <string>Copy file(s)</string> + </property> + </action> + <action name="actionAddFolderToCopy"> + <property name="icon"> + <iconset> + <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset> + </property> + <property name="text"> + <string>Copy folder</string> + </property> + </action> + </widget> + <resources> + <include location="resources.qrc"/> + </resources> + <connections> + <connection> + <sender>Cancel</sender> + <signal>clicked()</signal> + <receiver>interface</receiver> + <slot>close()</slot> + <hints> + <hint type="sourcelabel"> + <x>388</x> + <y>349</y> + </hint> + <hint type="destinationlabel"> + <x>523</x> + <y>498</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/plugins-alternative/Themes/Windows/plugin.json b/plugins-alternative/Themes/Windows/plugin.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/plugins-alternative/Themes/Windows/plugin.json @@ -0,0 +1 @@ +{}
\ No newline at end of file diff --git a/plugins-alternative/Themes/Windows/resources.qrc b/plugins-alternative/Themes/Windows/resources.qrc new file mode 100644 index 0000000..f7ffc64 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources.qrc @@ -0,0 +1,10 @@ +<RCC> + <qresource prefix="/Themes/Windows"> + <file>resources/icon.png</file> + <file>resources/arrow-down.png</file> + <file>resources/arrow-up.png</file> + <file>resources/SystemTrayIcon/informations.png</file> + <file>resources/icon-top.png</file> + <file>resources/empty.png</file> + </qresource> +</RCC> diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.png Binary files differnew file mode 100644 index 0000000..5b7b255 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.png diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.png Binary files differnew file mode 100644 index 0000000..6f5d1cf --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.png diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.png Binary files differnew file mode 100644 index 0000000..5464856 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.png diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png Binary files differnew file mode 100644 index 0000000..3961215 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png Binary files differnew file mode 100644 index 0000000..45d6315 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.png Binary files differnew file mode 100644 index 0000000..ac4299a --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.png diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.png Binary files differnew file mode 100644 index 0000000..6e6bae7 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.png diff --git a/plugins-alternative/Themes/Windows/resources/arrow-down.png b/plugins-alternative/Themes/Windows/resources/arrow-down.png Binary files differnew file mode 100644 index 0000000..39b5c37 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/arrow-down.png diff --git a/plugins-alternative/Themes/Windows/resources/arrow-up.png b/plugins-alternative/Themes/Windows/resources/arrow-up.png Binary files differnew file mode 100644 index 0000000..5c824fb --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/arrow-up.png diff --git a/plugins-alternative/Themes/Windows/resources/empty.png b/plugins-alternative/Themes/Windows/resources/empty.png Binary files differnew file mode 100644 index 0000000..846d96d --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/empty.png diff --git a/plugins-alternative/Themes/Windows/resources/icon-top.png b/plugins-alternative/Themes/Windows/resources/icon-top.png Binary files differnew file mode 100644 index 0000000..64b7992 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/icon-top.png diff --git a/plugins-alternative/Themes/Windows/resources/icon-top.xcf b/plugins-alternative/Themes/Windows/resources/icon-top.xcf Binary files differnew file mode 100644 index 0000000..9a775e2 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/icon-top.xcf diff --git a/plugins-alternative/Themes/Windows/resources/icon.png b/plugins-alternative/Themes/Windows/resources/icon.png Binary files differnew file mode 100644 index 0000000..eccfbc5 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources/icon.png diff --git a/plugins-alternative/Themes/Windows/resources_unix.qrc b/plugins-alternative/Themes/Windows/resources_unix.qrc new file mode 100644 index 0000000..3904f69 --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources_unix.qrc @@ -0,0 +1,7 @@ +<RCC> + <qresource prefix="/Themes/Windows"> + <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file> + <file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file> + <file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file> + </qresource> +</RCC> diff --git a/plugins-alternative/Themes/Windows/resources_windows.qrc b/plugins-alternative/Themes/Windows/resources_windows.qrc new file mode 100644 index 0000000..28666fc --- /dev/null +++ b/plugins-alternative/Themes/Windows/resources_windows.qrc @@ -0,0 +1,7 @@ +<RCC> + <qresource prefix="/Themes/Windows"> + <file>resources/SystemTrayIcon/systray_Caught_Windows.png</file> + <file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file> + <file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file> + </qresource> +</RCC> diff --git a/plugins-alternative/static-plugins-supercopier.qrc b/plugins-alternative/static-plugins-supercopier.qrc new file mode 100644 index 0000000..d3ae224 --- /dev/null +++ b/plugins-alternative/static-plugins-supercopier.qrc @@ -0,0 +1,6 @@ +<RCC> + <qresource prefix="/"> + <file>Themes/Supercopier/informations.xml</file> + <file>Themes/Supercopier/Languages/fr/translation.qm</file> + </qresource> +</RCC> |