[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
+


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/