QElectroTech  0.70
generalconfigurationpage.cpp
Go to the documentation of this file.
1 /*
2  Copyright 2006-2019 The QElectroTech Team
3  This file is part of QElectroTech.
4 
5  QElectroTech is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 2 of the License, or
8  (at your option) any later version.
9 
10  QElectroTech is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17 */
19 #include "ui_generalconfigurationpage.h"
20 #include "qeticons.h"
21 #include "qetapp.h"
22 
23 #include <QSettings>
24 #include <QFontDialog>
25 #include <QFileDialog>
26 
32  ConfigPage(parent),
34 {
35  ui->setupUi(this);
36 
37  QSettings settings;
38 
39  ui->DiagramEditor_xGrid_sb->setValue(settings.value("diagrameditor/Xgrid", 10).toInt());
40  ui->DiagramEditor_yGrid_sb->setValue(settings.value("diagrameditor/Ygrid", 10).toInt());
41  ui->DiagramEditor_xKeyGrid_sb->setValue(settings.value("diagrameditor/key_Xgrid", 10).toInt());
42  ui->DiagramEditor_yKeyGrid_sb->setValue(settings.value("diagrameditor/key_Ygrid", 10).toInt());
43  ui->DiagramEditor_xKeyGridFine_sb->setValue(settings.value("diagrameditor/key_fine_Xgrid", 1).toInt());
44  ui->DiagramEditor_yKeyGridFine_sb->setValue(settings.value("diagrameditor/key_fine_Ygrid", 1).toInt());
45  ui->m_use_system_color_cb->setChecked(settings.value("usesystemcolors", "true").toBool());
46  bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed";
47  if(tabbed)
48  ui->m_use_tab_mode_rb->setChecked(true);
49  else
50  ui->m_use_windows_mode_rb->setChecked(true);
51  ui->m_zoom_out_beyond_folio->setChecked(settings.value("diagrameditor/zoom-out-beyond-of-folio", false).toBool());
52  ui->m_use_gesture_trackpad->setChecked(settings.value("diagramview/gestures", false).toBool());
53  ui->m_save_label_paste->setChecked(settings.value("diagramcommands/erase-label-on-copy", true).toBool());
54  ui->m_use_folio_label->setChecked(settings.value("genericpanel/folio", true).toBool());
55  ui->m_export_terminal->setChecked(settings.value("nomenclature-exportlist", true).toBool());
56  ui->m_border_0->setChecked(settings.value("border-columns_0", false).toBool());
57  ui->m_autosave_sb->setValue(settings.value("diagrameditor/autosave-interval", 0).toInt());
58 
59  QString fontInfos = settings.value("diagramitemfont").toString() + " " +
60  settings.value("diagramitemsize").toString() + " (" +
61  settings.value("diagramitemstyle").toString() + ")";
62  ui->m_font_pb->setText(fontInfos);
63 
64 
65  QString foliolistfontInfos = settings.value("foliolistfont").toString() + " " +
66  settings.value("foliolistsize").toString() + " (" +
67  settings.value("folioliststyle").toString() + ")";
68  ui->m_folio_list_pb->setText(foliolistfontInfos);
69 
70 
71  //Dynamic element text item
72  ui->m_dyn_text_rotation_sb->setValue(settings.value("diagrameditor/dynamic_text_rotation", 0).toInt());
73  ui->m_dyn_text_width_sb->setValue(settings.value("diagrameditor/dynamic_text_width", -1).toInt());
74  if (settings.contains("diagrameditor/dynamic_text_font"))
75  {
76  QFont font;
77  font.fromString(settings.value("diagrameditor/dynamic_text_font").toString());
78 
79  QString fontInfos = font.family() + " " +
80  QString::number(font.pointSize()) + " (" +
81  font.styleName() + ")";
82  ui->m_dyn_text_font_pb->setText(fontInfos);
83  }
84 
85  //Independent text item
86  ui->m_indi_text_rotation_sb->setValue(settings.value("diagrameditor/independent_text_rotation",0).toInt());
87  if (settings.contains("diagrameditor/independent_text_font"))
88  {
89  QFont font;
90  font.fromString(settings.value("diagrameditor/independent_text_font").toString());
91 
92  QString fontInfos = font.family() + " " +
93  QString::number(font.pointSize()) + " (" +
94  font.styleName() + ")";
95  ui->m_indi_text_font_pb->setText(fontInfos);
96  }
97 
98  ui->m_highlight_integrated_elements->setChecked(settings.value("diagrameditor/highlight-integrated-elements", true).toBool());
99  ui->m_default_elements_info->setPlainText(settings.value("elementeditor/default-informations", "").toString());
100 
101  QString path = settings.value("elements-collections/common-collection-path", "default").toString();
102  if (path != "default")
103  {
104  ui->m_common_elmt_path_cb->blockSignals(true);
105  ui->m_common_elmt_path_cb->setCurrentIndex(1);
106  ui->m_common_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
107  ui->m_common_elmt_path_cb->blockSignals(false);
108  }
109 
110  path = settings.value("elements-collections/custom-collection-path", "default").toString();
111  if (path != "default")
112  {
113  ui->m_custom_elmt_path_cb->blockSignals(true);
114  ui->m_custom_elmt_path_cb->setCurrentIndex(1);
115  ui->m_custom_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
116  ui->m_custom_elmt_path_cb->blockSignals(false);
117  }
118 
119 
120  path = settings.value("elements-collections/custom-tbt-path", "default").toString();
121  if (path != "default")
122  {
123  ui->m_custom_tbt_path_cb->blockSignals(true);
124  ui->m_custom_tbt_path_cb->setCurrentIndex(1);
125  ui->m_custom_tbt_path_cb->setItemData(1, path, Qt::DisplayRole);
126  ui->m_custom_tbt_path_cb->blockSignals(false);
127  }
128 
129  fillLang();
130 }
131 
133 {
134  delete ui;
135 }
136 
142 {
143  QSettings settings;
144 
145  //GLOBAL
146  bool was_using_system_colors = settings.value("usesystemcolors", "true").toBool();
147  bool must_use_system_colors = ui->m_use_system_color_cb->isChecked();
148  settings.setValue("usesystemcolors", must_use_system_colors);
149  if (was_using_system_colors != must_use_system_colors) {
150  QETApp::instance()->useSystemPalette(must_use_system_colors);
151  }
152  settings.setValue("border-columns_0",ui->m_border_0->isChecked());
153  settings.setValue("lang", ui->m_lang_cb->itemData(ui->m_lang_cb->currentIndex()).toString());
154 
155  //ELEMENT EDITOR
156  settings.setValue("elementeditor/default-informations", ui->m_default_elements_info->toPlainText());
157 
158  //DIAGRAM VIEW
159  settings.setValue("diagramview/gestures", ui->m_use_gesture_trackpad->isChecked());
160 
161  //DIAGRAM COMMAND
162  settings.setValue("diagramcommands/erase-label-on-copy", ui->m_save_label_paste->isChecked());
163 
164  //GENERIC PANEL
165  settings.setValue("genericpanel/folio",ui->m_use_folio_label->isChecked());
166 
167  //NOMENCLATURE
168  settings.setValue("nomenclature/terminal-exportlist",ui->m_export_terminal->isChecked());
169 
170 
171  //DIAGRAM EDITOR
172  QString view_mode = ui->m_use_tab_mode_rb->isChecked() ? "tabbed" : "windowed";
173  settings.setValue("diagrameditor/viewmode", view_mode) ;
174  settings.setValue("diagrameditor/highlight-integrated-elements", ui->m_highlight_integrated_elements->isChecked());
175  settings.setValue("diagrameditor/zoom-out-beyond-of-folio", ui->m_zoom_out_beyond_folio->isChecked());
176  settings.setValue("diagrameditor/autosave-interval", ui->m_autosave_sb->value());
177  //Grid step and key navigation
178  settings.setValue("diagrameditor/Xgrid", ui->DiagramEditor_xGrid_sb->value());
179  settings.setValue("diagrameditor/Ygrid", ui->DiagramEditor_yGrid_sb->value());
180  settings.setValue("diagrameditor/key_Xgrid", ui->DiagramEditor_xKeyGrid_sb->value());
181  settings.setValue("diagrameditor/key_Ygrid", ui->DiagramEditor_yKeyGrid_sb->value());
182  settings.setValue("diagrameditor/key_fine_Xgrid", ui->DiagramEditor_xKeyGridFine_sb->value());
183  settings.setValue("diagrameditor/key_fine_Ygrid", ui->DiagramEditor_yKeyGridFine_sb->value());
184  //Dynamic text item
185  settings.setValue("diagrameditor/dynamic_text_rotation", ui->m_dyn_text_rotation_sb->value());
186  settings.setValue("diagrameditor/dynamic_text_width", ui->m_dyn_text_width_sb->value());
187  //Independent text item
188  settings.setValue("diagrameditor/independent_text_rotation", ui->m_indi_text_rotation_sb->value());
189 
190  //ELEMENTS COLLECTION
191  QString path = settings.value("elements-collections/common-collection-path").toString();
192  if (ui->m_common_elmt_path_cb->currentIndex() == 1)
193  {
194  QString path = ui->m_common_elmt_path_cb->currentText();
195  QDir dir(path);
196  settings.setValue("elements-collections/common-collection-path",
197  dir.exists() ? path : "default");
198  }
199  else {
200  settings.setValue("elements-collections/common-collection-path", "default");
201  }
202  if (path != settings.value("elements-collections/common-collection-path").toString()) {
204  }
205 
206  path = settings.value("elements-collections/custom-collection-path").toString();
207  if (ui->m_custom_elmt_path_cb->currentIndex() == 1)
208  {
209  QString path = ui->m_custom_elmt_path_cb->currentText();
210  QDir dir(path);
211  settings.setValue("elements-collections/custom-collection-path",
212  dir.exists() ? path : "default");
213  }
214  else {
215  settings.setValue("elements-collections/custom-collection-path", "default");
216  }
217  if (path != settings.value("elements-collections/custom-collection-path").toString()) {
219  }
220 
221  path = settings.value("elements-collections/custom-tbt-path").toString();
222  if (ui->m_custom_tbt_path_cb->currentIndex() == 1)
223  {
224  QString path = ui->m_custom_tbt_path_cb->currentText();
225  QDir dir(path);
226  settings.setValue("elements-collections/custom-tbt-path",
227  dir.exists() ? path : "default");
228  }
229  else {
230  settings.setValue("elements-collections/custom-tbt-path", "default");
231  }
232  if (path != settings.value("elements-collections/custom-tbt-path").toString()) {
234  }
235 }
236 
242  return(tr("Général", "configuration page title"));
243 }
244 
250  return(QET::Icons::Settings);
251 }
252 
258 {
259  ui->m_lang_cb->addItem(QET::Icons::translation, tr("Système"), "system");
260  ui->m_lang_cb->insertSeparator(1);
261 
262  // all lang available on lang directory
263  ui->m_lang_cb->addItem(QET::Icons::ar, tr("Arabe"), "ar");
264  ui->m_lang_cb->addItem(QET::Icons::br, tr("Brézilien"), "pt_br");
265  ui->m_lang_cb->addItem(QET::Icons::catalonia, tr("Catalan"), "ca");
266  ui->m_lang_cb->addItem(QET::Icons::cs, tr("Tchèque"), "cs");
267  ui->m_lang_cb->addItem(QET::Icons::de, tr("Allemand"), "de");
268  ui->m_lang_cb->addItem(QET::Icons::da, tr("Danois"), "da");
269  ui->m_lang_cb->addItem(QET::Icons::gr, tr("Grec"), "el");
270  ui->m_lang_cb->addItem(QET::Icons::en, tr("Anglais"), "en");
271  ui->m_lang_cb->addItem(QET::Icons::es, tr("Espagnol"), "es");
272  ui->m_lang_cb->addItem(QET::Icons::fr, tr("Français"), "fr");
273  ui->m_lang_cb->addItem(QET::Icons::hr, tr("Croate"), "hr");
274  ui->m_lang_cb->addItem(QET::Icons::it, tr("Italien"), "it");
275  ui->m_lang_cb->addItem(QET::Icons::pl, tr("Polonais"), "pl");
276  ui->m_lang_cb->addItem(QET::Icons::pt, tr("Portugais"), "pt");
277  ui->m_lang_cb->addItem(QET::Icons::ro, tr("Roumains"), "ro");
278  ui->m_lang_cb->addItem(QET::Icons::ru, tr("Russe"), "ru");
279  ui->m_lang_cb->addItem(QET::Icons::sl, tr("Slovène"), "sl");
280  ui->m_lang_cb->addItem(QET::Icons::nl, tr("Pays-Bas"), "nl");
281  ui->m_lang_cb->addItem(QET::Icons::be, tr("Belgique-Flemish"), "be");
282  ui->m_lang_cb->addItem(QET::Icons::tr, tr("Turc"), "tr");
283  ui->m_lang_cb->addItem(QET::Icons::hu, tr("Hongrois"), "hu");
284 
285  //set current index to the lang found in setting file
286  //if lang doesn't exist set to system
287  QSettings settings;
288  for (int i=0; i<ui->m_lang_cb->count(); i++)
289  {
290  if (ui->m_lang_cb->itemData(i).toString() == settings.value("lang").toString())
291  {
292  ui->m_lang_cb->setCurrentIndex(i);
293  return;
294  }
295  }
296  ui->m_lang_cb->setCurrentIndex(0);
297 }
298 
304 {
305  bool ok;
306  QSettings settings;
307  QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
308  if (ok)
309  {
310  settings.setValue("diagramitemfont", font.family());
311  settings.setValue("diagramitemsize", font.pointSize());
312  settings.setValue("diagramitemweight", font.weight());
313  settings.setValue("diagramitemstyle", font.styleName());
314  QString fontInfos = settings.value("diagramitemfont").toString() + " " +
315  settings.value("diagramitemsize").toString() + " (" +
316  settings.value("diagramitemstyle").toString() + ")";
317  ui->m_font_pb->setText(fontInfos);
318  }
319 }
320 
326 {
327  bool ok;
328  QSettings settings;
329  QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
330  if (ok)
331  {
332  settings.setValue("diagrameditor/dynamic_text_font", font.toString());
333  QString fontInfos = font.family() + " " +
334  QString::number(font.pointSize()) + " (" +
335  font.styleName() + ")";
336  ui->m_dyn_text_font_pb->setText(fontInfos);
337  }
338 }
339 
340 
346 {
347  bool ok;
348  QSettings settings;
349  QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
350  if (ok)
351  {
352  settings.setValue("foliolistfont", font.family());
353  settings.setValue("foliolistsize", font.pointSize());
354  settings.setValue("foliolistweight", font.weight());
355  settings.setValue("folioliststyle", font.styleName());
356  QString fontInfos = settings.value("foliolistfont").toString() + " " +
357  settings.value("foliolistsize").toString() + " (" +
358  settings.value("folioliststyle").toString() + ")";
359  ui->m_folio_list_pb->setText(fontInfos);
360  }
361 }
362 
364 {
365  if (index == 1)
366  {
367  QString path = QFileDialog::getExistingDirectory(this, tr("Chemin de la collection commune"), QDir::homePath());
368  if (!path.isEmpty()) {
369  ui->m_common_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
370  }
371  else {
372  ui->m_common_elmt_path_cb->setCurrentIndex(0);
373  }
374  }
375 }
376 
378 {
379  if (index == 1)
380  {
381  QString path = QFileDialog::getExistingDirectory(this, tr("Chemin de la collection utilisateur"), QDir::homePath());
382  if (!path.isEmpty()) {
383  ui->m_custom_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
384  }
385  else {
386  ui->m_custom_elmt_path_cb->setCurrentIndex(0);
387  }
388  }
389 }
390 
392 {
393  if (index == 1)
394  {
395  QString path = QFileDialog::getExistingDirectory(this, tr("Chemin des cartouches utilisateur"), QDir::homePath());
396  if (!path.isEmpty()) {
397  ui->m_custom_tbt_path_cb->setItemData(1, path, Qt::DisplayRole);
398  }
399  else {
400  ui->m_custom_tbt_path_cb->setCurrentIndex(0);
401  }
402  }
403 }
404 
405 
407 {
408  bool ok;
409  QSettings settings;
410  QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
411  if (ok)
412  {
413  settings.setValue("diagrameditor/independent_text_font", font.toString());
414  QString fontInfos = font.family() + " " +
415  QString::number(font.pointSize()) + " (" +
416  font.styleName() + ")";
417  ui->m_indi_text_font_pb->setText(fontInfos);
418  }
419 }
QIcon da
Definition: qeticons.cpp:189
QIcon ar
Definition: qeticons.cpp:184
QIcon br
Definition: qeticons.cpp:185
GeneralConfigurationPage(QWidget *parent=nullptr)
GeneralConfigurationPage::GeneralConfigurationPage.
QIcon catalonia
Definition: qeticons.cpp:186
QIcon fr
Definition: qeticons.cpp:193
QIcon pl
Definition: qeticons.cpp:197
Ui::GeneralConfigurationPage * ui
void on_m_common_elmt_path_cb_currentIndexChanged(int index)
QIcon hr
Definition: qeticons.cpp:194
void on_m_dyn_text_font_pb_clicked()
GeneralConfigurationPage::m_dyn_text_font_pb_clicked Apply font to config.
QIcon sl
Definition: qeticons.cpp:201
virtual QIcon icon() const override
GeneralConfigurationPage::icon.
void on_m_custom_elmt_path_cb_currentIndexChanged(int index)
QIcon en
Definition: qeticons.cpp:191
virtual void applyConf() override
GeneralConfigurationPage::applyConf Write all configuration in settings file.
virtual QString title() const override
GeneralConfigurationPage::title.
QIcon nl
Definition: qeticons.cpp:202
QIcon Settings
Definition: qeticons.cpp:159
QIcon cs
Definition: qeticons.cpp:187
QIcon es
Definition: qeticons.cpp:192
QIcon tr
Definition: qeticons.cpp:204
void on_m_folio_list_pb_clicked()
GeneralConfigurationPage::on_m_folio_list_pb_clicked Apply font to summary pages. ...
QIcon ru
Definition: qeticons.cpp:200
void fillLang()
GeneralConfigurationPage::fillLang fill all available lang.
QIcon translation
Definition: qeticons.cpp:205
QIcon hu
Definition: qeticons.cpp:195
QIcon gr
Definition: qeticons.cpp:190
QIcon be
Definition: qeticons.cpp:203
void on_m_font_pb_clicked()
GeneralConfigurationPage::on_m_font_pb_clicked Apply font to config.
void useSystemPalette(bool)
Definition: qetapp.cpp:1232
QIcon ro
Definition: qeticons.cpp:199
QIcon pt
Definition: qeticons.cpp:198
void on_m_custom_tbt_path_cb_currentIndexChanged(int index)
QIcon it
Definition: qeticons.cpp:196
static void resetUserElementsDir()
QETApp::resetUserElementsDir Reset the path of the user common and custom elements dir...
Definition: qetapp.cpp:610
static QETApp * instance()
Definition: qetapp.cpp:143
QIcon de
Definition: qeticons.cpp:188