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
+