QElectroTech  0.70
folioautonumbering.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 */
18 #include "folioautonumbering.h"
19 #include "ui_folioautonumbering.h"
20 #include <QMessageBox>
21 #include <QPushButton>
22 #include <QtWidgets>
23 #include "qetproject.h"
24 #include "diagram.h"
29  QWidget(parent),
30  project_(project),
31  ui(new Ui::FolioAutonumberingW)
32 
33 {
34  ui->setupUi(this);
35  applyEnable(false);
36  ui->m_from_cb->setEnabled(false);
37  ui->m_new_tabs_sb->setEnabled(false);
38  ui->m_to_cb->setEnabled(false);
39 }
40 
45 {
46  delete ui;
47 }
48 
53 void FolioAutonumberingW::setContext(QList <QString> autonums) {
54  foreach (QString str, autonums) { ui->m_autonums_cb->addItem(str);}
55 }
56 
62  return ui->m_autonums_cb->currentText();
63 }
64 
70  return ui->m_from_cb->currentIndex()-1;
71 }
72 
78  return ui->m_to_cb->currentIndex()+this->fromFolio()+1;
79 }
80 
86  return ui->m_new_tabs_sb->value();
87 }
88 
94  ui -> m_from_cb->clear();
95  ui -> m_to_cb->clear();
96  if (newFolios){
98  } else {
100  }
101 }
102 
108  ui->m_from_cb->setEnabled(false);
109  ui->m_to_cb->setEnabled(false);
110  ui->m_new_tabs_sb->setEnabled(true);
111  applyEnable();
112  newFolios = true;
113 }
114 
120  ui->m_new_tabs_sb->setEnabled(false);
121  ui->m_from_cb->setEnabled(true);
122  ui->m_to_cb->setEnabled(true);
123  if (ui->m_from_cb->count()<=0){
124  ui->m_from_cb->clear();
125  ui->m_from_cb->addItem("");
126  foreach (Diagram *diagram, project_->diagrams()){
127  ui->m_from_cb->addItem(diagram->title());
128  }
129  }
130  applyEnable();
131  newFolios = false;
132 }
133 
139  if (ui->m_new_tabs_sb->value()>0) applyEnable(true);
140  else applyEnable(false);
141 }
142 
148  int index = ui->m_from_cb->currentIndex();
149  ui->m_to_cb->clear();
150  if (index > 0){
151  ui->m_to_cb->setEnabled(true);
152  for (int i=index;i<project_->diagrams().size();i++)
153  ui->m_to_cb->addItem(project_->diagrams().at(i)->title());
154  applyEnable(true);
155  }
156  else{
157  applyEnable();
158  }
159 
160 }
161 
166 void FolioAutonumberingW::on_buttonBox_clicked(QAbstractButton *button) {
167  //transform button to int
168  int answer = ui -> buttonBox -> buttonRole(button);
169 
170  switch (answer) {
171  //help dialog - not implemented yet -
172  case QDialogButtonBox::HelpRole:
173  QMessageBox::information (this, tr("Folio Autonumbering", "title window"),
174  tr("C'est ici que vous pouvez définir la manière dont seront numérotés les nouveaux folios.\n"
175  "-Une numérotation est composée d'une variable minimum.\n"
176  "-Vous pouvez ajouter ou supprimer une variable de numérotation par le biais des boutons - et +.\n"
177  "-Une variable de numérotation comprend : un type, une valeur et une incrémentation.\n"
178 
179  "\n-les types \"Chiffre 1\", \"Chiffre 01\" et \"Chiffre 001\", représentent un type numérique défini dans le champ \"Valeur\", "
180  "qui s'incrémente à chaque nouveau folio de la valeur du champ \"Incrémentation\".\n"
181  "-\"Chiffre 01\" et \"Chiffre 001\", sont respectivement représentés sur le schéma par deux et trois digits minimum.\n"
182  "Si le chiffre défini dans le champ Valeur possède moins de digits que le type choisi,"
183  "celui-ci sera précédé par un ou deux 0 afin de respecter son type.\n"
184 
185  "\n-Le type \"Texte\", représente un texte fixe.\nLe champ \"Incrémentation\" n'est pas utilisé.\n",
186  "help dialog about the folio autonumerotation"
187  ));
188  break;
189  case QDialogButtonBox::ApplyRole:
190  applyEnable(true);
191  emit applyPressed();
192  updateFolioList();
193  break;
194  }
195 }
196 
202  if (b){
203  bool valid = true;
204  if (ui->m_create_new_tabs_rb->isChecked()){
205  if (ui->m_new_tabs_sb->value()==0) valid = false;
206  ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(valid);
207  }
208  else{
209  if (ui->m_to_cb->currentText()=="") valid = false;
210  ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(valid);
211  }
212  }
213  else{
214  ui -> buttonBox -> button(QDialogButtonBox::Apply) -> setEnabled(b);
215  }
216 }
QList< Diagram * > diagrams() const
Definition: qetproject.cpp:210
void setContext(QList< QString > autonums)
FolioAutonumberingW::setContext construct autonums in the comboBox selected in the QcomboBox...
void on_buttonBox_clicked(QAbstractButton *)
SelectAutonumW::on_buttonBox_clicked Action on clicked.
int newFoliosNumber()
FolioAutonumberingW::newFoliosNumber returns the number of folios to create.
void on_m_from_cb_currentIndexChanged(int)
FolioAutonumberingW::on_m_from_cb_currentIndexChanged Enable To ComboBox.
void updateFolioList()
FolioAutonumberingW::updateFolioList update Folio List in From and To ComboBox.
void applyEnable(bool=true)
SelectAutonumW::applyEnable enable/disable the apply button.
Ui::FolioAutonumberingW * ui
QString title() const
Definition: diagram.cpp:1473
void on_m_new_tabs_sb_valueChanged(int)
FolioAutonumberingW::on_m_new_tabs_sb_valueChanged Enable Apply if any new folio is to be created...
int toFolio()
FolioAutonumberingW::toFolio returns the current "To Folio" index.
int fromFolio()
FolioAutonumberingW::fromFolio returns the current "From Folio" index.
QString autoNumSelected()
FolioAutonumberingW::autoNumSelected returns the current autonum selected.
FolioAutonumberingW(QETProject *project, QWidget *parent=nullptr)
QIcon tr
Definition: qeticons.cpp:204
void on_m_autonumber_tabs_rb_clicked()
FolioAutonumberingW::on_m_autonumber_tabs_rb_clicked Enable From ComboBox, fill From ComboBox...
void on_m_create_new_tabs_rb_clicked()
FolioAutonumberingW::on_m_create_new_tabs_rb_clicked Enable New Tabs SpinBox.
QMessageBox::StandardButton information(QWidget *, const QString &, const QString &, QMessageBox::StandardButtons=QMessageBox::Ok, QMessageBox::StandardButton=QMessageBox::NoButton)