-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreplaceManager.cpp
More file actions
96 lines (85 loc) · 3.46 KB
/
Copy pathreplaceManager.cpp
File metadata and controls
96 lines (85 loc) · 3.46 KB
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 "replaceManager.h"
ReplaceManager::ReplaceManager(QWidget *parent) :
QDialog(parent)
{
manSettings = new SettingsManager;
}
/*ReplaceManager::~ReplaceManager(){
//delete manSettings;
}*/
void ReplaceManager::showWindow(){
//On vérifie si la fenêtre est déjà initialisée
if(!this->windowTitle().isEmpty() || !this->windowTitle().isNull()){
show();
return;
}
//setWindowModality(Qt::ApplicationModal);
setWindowTitle(tr("Autocorrection"));
setWindowIcon(QIcon(":/programme/images/dadaword.gif"));
QLabel *title, *key, *value;
title = new QLabel(tr("<h1>Options d'autocorrection</h1>"));
key = new QLabel(tr("Remplacer :"));
value = new QLabel(tr("Par :"));
layout = new QGridLayout(this);
layout->addWidget(title, 0, 0, 1, 2, Qt::AlignHCenter);
layout->addWidget(key, 1, 0);
layout->addWidget(value, 1, 1);
QStringList replacementKeys = manSettings->getSettings(Cles).toStringList();
QStringList replacementValues = manSettings->getSettings(Valeurs).toStringList();
if(replacementKeys.size() != replacementValues.size()){
ErrorManager erreurs;
erreurs.Erreur_msg(tr("Impossible de charger les clés de remplacement, fichier corrompu."), QMessageBox::Warning);
return;
}
else{
for(int i=0; i<replacementKeys.size(); i++){
QLineEdit *leKey = new QLineEdit(replacementKeys.at(i));
QLineEdit *leValue = new QLineEdit(replacementValues.at(i));
lineKeys.append(leKey);
lineValues.append(leValue);
layout->addWidget(lineKeys.at(i), i+2, 0);
layout->addWidget(lineValues.at(i), i+2, 1);
}
addLineButton = new QPushButton(QIcon::fromTheme("edit-add", QIcon(":/programme/images/ajouter.png")), tr("Ajouter une clé"));
saveAllButton = new QPushButton(QIcon::fromTheme("dialog-ok", QIcon(":/menus/images/ok.png")), tr("Fermer"));
layout->addWidget(addLineButton, replacementKeys.size()+3, 0);
layout->addWidget(saveAllButton, replacementValues.size()+3, 1);
connect(addLineButton, SIGNAL(clicked()), this, SLOT(addLine()));
connect(saveAllButton, SIGNAL(clicked()), this, SLOT(saveKeys()));
}
exec();
}
void ReplaceManager::addLine(){
QLineEdit *leKey = new QLineEdit;
QLineEdit *leValue = new QLineEdit;
lineKeys.append(leKey);
lineValues.append(leValue);
//Refresh layout
for(int i=0; i<lineKeys.size(); i++){
layout->addWidget(lineKeys.at(i), i+2, 0);
layout->addWidget(lineValues.at(i), i+2, 1);
}
layout->addWidget(addLineButton, lineKeys.size()+3, 0);
layout->addWidget(saveAllButton, lineValues.size()+3, 1);
show();
}
void ReplaceManager::saveKeys(){
if(lineKeys.size() != lineValues.size()){
ErrorManager instance;
instance.Erreur_msg(tr("Nombre de clés incorrectes dans la liste d'autocorrections.\nAucune valeur ne sera enregistrée"), QMessageBox::Warning);
return;
}
QStringList replacementKeys;
QStringList replacementValues;
for(int i=0; i<lineKeys.size(); i++){
if(!lineKeys.at(i)->text().isEmpty() && !lineValues.at(i)->text().isEmpty()){
replacementKeys.append(lineKeys.at(i)->text());
replacementValues.append(lineValues.at(i)->text());
}
}
manSettings->setSettings(Cles, replacementKeys);
manSettings->setSettings(Valeurs, replacementValues);
close();
deleteLater();
return;
}