diff options
Diffstat (limited to 'plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp')
-rw-r--r-- | plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp b/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp index 78c3bd0..191dd79 100644 --- a/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp +++ b/plugins/CopyEngine/Ultracopier-0.3/fileExistsDialog.cpp @@ -3,7 +3,7 @@ #include <QDebug> -fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination) : +fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo destination,QString firstRenamingRule,QString otherRenamingRule) : QDialog(parent), ui(new Ui::fileExistsDialog) { @@ -44,6 +44,8 @@ fileExistsDialog::fileExistsDialog(QWidget *parent,QFileInfo source,QFileInfo de ui->label_destination_modified->setVisible(false); ui->label_content_destination_modified->setVisible(false); } + this->firstRenamingRule=firstRenamingRule; + this->otherRenamingRule=otherRenamingRule; } fileExistsDialog::~fileExistsDialog() @@ -82,34 +84,45 @@ void fileExistsDialog::on_SuggestNewName_clicked() QString fileName=destinationInfo.fileName(); QString suffix=""; QString destination; + QString newFileName; + //resolv the suffix if(fileName.contains(QRegExp("^(.*)(\\.[a-z0-9]+)$"))) { suffix=fileName; suffix.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\2"); fileName.replace(QRegExp("^(.*)(\\.[a-z0-9]+)$"),"\\1"); } + //resolv the new name + int num=1; do { - if(!fileName.startsWith(tr("Copy of "))) - fileName=tr("Copy of ")+fileName; - else + if(num==1) { - if(fileName.contains(QRegExp("_[0-9]+$"))) + if(firstRenamingRule=="") + newFileName=tr("%1 - copy").arg(fileName); + else { - QString number=fileName; - number.replace(QRegExp("^.*_([0-9]+)$"),"\\1"); - int num=number.toInt()+1; - fileName.remove(QRegExp("[0-9]+$")); - fileName+=QString::number(num); + newFileName=firstRenamingRule; + newFileName.replace("%name%",fileName); } + } + else + { + if(otherRenamingRule=="") + newFileName=tr("%1 - copy (%2)").arg(fileName).arg(num); else - fileName+="_2"; + { + newFileName=otherRenamingRule; + newFileName.replace("%name%",fileName); + newFileName.replace("%number%",QString::number(num)); + } } - destination=absolutePath+QDir::separator()+fileName+suffix; + destination=absolutePath+QDir::separator()+newFileName+suffix; destinationInfo.setFile(destination); + num++; } while(destinationInfo.exists()); - ui->lineEditNewName->setText(fileName+suffix); + ui->lineEditNewName->setText(newFileName+suffix); } void fileExistsDialog::on_Rename_clicked() |