diff --git a/sources/nomenclature.cpp b/sources/nomenclature.cpp new file mode 100644 index 000000000..e949d361a --- /dev/null +++ b/sources/nomenclature.cpp @@ -0,0 +1,108 @@ +/* + Copyright 2006-2013 Xavier Guerrin + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include + +#include "nomenclature.h" +#define PR(x) qDebug() << #x " = " << x; + +/** + Constructor + @param an project (QETProject) of QET file +*/ +nomenclature::nomenclature(QETProject *project, QWidget *parent): + QObject(), + m_project(project) +{ + m_parent = parent; + if(!m_project->isEmpty()){ + //get list of schema present in project + m_list_diagram = m_project -> diagrams(); + } +} + +/** + Destructor +*/ +nomenclature::~nomenclature() { +} + +/** + Save to csv file + @param true if success +*/ +bool nomenclature::saveToCSVFile() { + if(m_list_diagram.isEmpty()) return false; + + //Process... + QString data = tr("NOMENCLATURE : ") + m_project -> title() + "\n\n"; + data += tr("Ref") +";"+ tr("Folio") +";"+ tr("Sch\351ma") +";"+ tr("D\351signation\n"); + QStringList rows; + for(int i=0; i title()); + QString filename = QFileDialog::getSaveFileName(this->m_parent, tr("Enregister sous... "), name, "*.csv"); + QFile file(filename); + if( !filename.isEmpty() ) { + if(QFile::exists ( filename )){ + // if file already exist -> delete it + if(!QFile::remove ( filename ) ){ + QMessageBox::critical(this->m_parent, tr("Erreur"), + tr("Impossible de remplacer le fichier!\n\n")+ + "Destination: "+filename+"\n"); + return false; + } + } + if (file.open(QIODevice::WriteOnly | QIODevice::Text)){ + QTextStream stream(&file); + stream << data << endl; + } + else return false; + } + else return false; + + return true; +} + +/** + gets rows of nomenclature + @return the list of rows +*/ +QStringList nomenclature::getRows(Diagram *schema) { + QString row; + QStringList list; + QList elements_list; + //QList elements_list; + + //elements_list = schema->customElements(); + elements_list = schema->content().elements.toList(); + for(int j=0;jtitle() + ";"; + row += elements_list.at(j)->name() + "\n"; + list << row; + } + return list; +} + diff --git a/sources/nomenclature.h b/sources/nomenclature.h new file mode 100644 index 000000000..9169d2194 --- /dev/null +++ b/sources/nomenclature.h @@ -0,0 +1,65 @@ +/* + Copyright 2006-2013 Xavier Guerrin + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef NOMENCLATURE_H +#define NOMENCLATURE_H + +#include + +#include "qetproject.h" +#include "diagram.h" +#include "element.h" +#include "diagramcontent.h" +#include "customelement.h" + +class QETProject; +class Diagram; +class Element; +class DiagramContent; +class CustomeElement; + +/** + This class represents a nomenclature... +*/ +class nomenclature : public QObject { + Q_OBJECT + + private: + QETProject *m_project; + QList m_list_diagram; + QWidget *m_parent; + + // constructors, destructor + public: + nomenclature(QETProject *project =0, QWidget *parent =0); + virtual ~nomenclature(); + + // attributes + public: + + // methods + public: + bool saveToCSVFile(); + + + private: + QStringList getRows(Diagram *schema); + +}; + +#endif +