[qet] [2064] Add class to make the nomenclaure |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 2064
Author: cfdev
Date: 2013-03-17 21:24:48 +0100 (Sun, 17 Mar 2013)
Log Message:
-----------
Add class to make the nomenclaure
Added Paths:
-----------
trunk/sources/nomenclature.cpp
trunk/sources/nomenclature.h
Added: trunk/sources/nomenclature.cpp
===================================================================
--- trunk/sources/nomenclature.cpp (rev 0)
+++ trunk/sources/nomenclature.cpp 2013-03-17 20:24:48 UTC (rev 2064)
@@ -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 <http://www.gnu.org/licenses/>.
+*/
+#include <QtDebug>
+
+#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<m_list_diagram.count(); i++){
+ rows = getRows(m_list_diagram.at(i));
+ for(int j=0;j<rows.count();j++){
+ data += rows.at(j);
+ }
+ }
+
+ // SAVE IN FILE
+ QString name = tr("nomenclature_") + QString(m_project -> 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<Element *> elements_list;
+ //QList<CustomElement *> elements_list;
+
+ //elements_list = schema->customElements();
+ elements_list = schema->content().elements.toList();
+ for(int j=0;j<elements_list.count();j++){
+ row += QString::number(0) + ";";
+ row += QString::number(0) + ";";
+ row += schema->title() + ";";
+ row += elements_list.at(j)->name() + "\n";
+ list << row;
+ }
+ return list;
+}
+
Added: trunk/sources/nomenclature.h
===================================================================
--- trunk/sources/nomenclature.h (rev 0)
+++ trunk/sources/nomenclature.h 2013-03-17 20:24:48 UTC (rev 2064)
@@ -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 <http://www.gnu.org/licenses/>.
+*/
+#ifndef NOMENCLATURE_H
+#define NOMENCLATURE_H
+
+#include <QtGui>
+
+#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<Diagram *> 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
+