File: RenamingRules.cpp

package info (click to toggle)
ultracopier 2.2.6.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 40,480 kB
  • sloc: ansic: 60,903; cpp: 59,790; sh: 6,882; asm: 723; xml: 675; makefile: 320; perl: 264
file content (96 lines) | stat: -rwxr-xr-x 3,591 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#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(std::string firstRenamingRule,std::string otherRenamingRule)
{
    disconnectUI();
    if(firstRenamingRule.find("%name%")==std::string::npos || firstRenamingRule.find("%suffix%")==std::string::npos)
        firstRenamingRule.clear();
    if(otherRenamingRule.find("%name%")==std::string::npos || otherRenamingRule.find("%suffix%")==std::string::npos
             || otherRenamingRule.find("%number%")==std::string::npos)
        otherRenamingRule.clear();

    this->firstRenamingRule=firstRenamingRule;
    this->otherRenamingRule=otherRenamingRule;

    if(!firstRenamingRule.empty())
        ui->firstRenamingRule->setText(QString::fromStdString(firstRenamingRule));
    else
        ui->firstRenamingRule->setText(tr("%1 - copy%2").arg(QStringLiteral("%name%")).arg(QStringLiteral("%suffix%")));
    if(!otherRenamingRule.empty())
        ui->otherRenamingRule->setText(QString::fromStdString(otherRenamingRule));
    else
        ui->otherRenamingRule->setText(tr("%1 - copy (%2)%3").arg(QStringLiteral("%name%")).arg(QStringLiteral("%number%")).arg(QStringLiteral("%suffix%")));
    connectUI();
}

void RenamingRules::connectUI()
{
    connect(ui->firstRenamingRule,&QLineEdit::editingFinished,this,&RenamingRules::firstRenamingRule_haveChanged);
    connect(ui->otherRenamingRule,&QLineEdit::editingFinished,this,&RenamingRules::otherRenamingRule_haveChanged);
}

void RenamingRules::disconnectUI()
{
    disconnect(ui->firstRenamingRule,&QLineEdit::editingFinished,this,&RenamingRules::firstRenamingRule_haveChanged);
    disconnect(ui->otherRenamingRule,&QLineEdit::editingFinished,this,&RenamingRules::otherRenamingRule_haveChanged);
}

void RenamingRules::firstRenamingRule_haveChanged()
{
    QString newValue=ui->firstRenamingRule->text();
    if(!newValue.contains("%name%") || !newValue.contains("%suffix%"))
        newValue.clear();
    if(newValue==tr("%1 - copy%2").arg(QStringLiteral("%name%")).arg(QStringLiteral("%name%")))
        newValue=QStringLiteral("");
    if(newValue.toStdString()==firstRenamingRule)
        return;
    firstRenamingRule=newValue.toStdString();
    emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
}

void RenamingRules::otherRenamingRule_haveChanged()
{
    QString newValue=ui->otherRenamingRule->text();
    if(!newValue.contains("%name%") || !newValue.contains("%suffix%") || !newValue.contains("%number%"))
        newValue.clear();
    if(newValue==tr("%1 - copy (%2)%3").arg(QStringLiteral("%name%")).arg(QStringLiteral("%number%")).arg(QStringLiteral("%name%")))
        newValue=QStringLiteral("");
    if(newValue.toStdString()==otherRenamingRule)
        return;
    otherRenamingRule=newValue.toStdString();
    emit sendNewRenamingRules(firstRenamingRule,otherRenamingRule);
}

void RenamingRules::newLanguageLoaded()
{
    ui->retranslateUi(this);
    setRenamingRules(firstRenamingRule,otherRenamingRule);
}