[qet] qet/qet: [4996] Element editor : clear the event interface befor save, to avoid the save of the primitive owned by the interface.

[ Thread Index | Date Index | More lists.tuxfamily.org/qet Archives ]


Revision: 4996
Author:   blacksun
Date:     2017-07-31 19:41:48 +0200 (Mon, 31 Jul 2017)
Log Message:
-----------
Element editor : clear the event interface befor save, to avoid the save of the primitive owned by the interface.

Modified Paths:
--------------
    trunk/sources/editor/elementscene.cpp
    trunk/sources/editor/elementscene.h
    trunk/sources/editor/qetelementeditor.cpp
    trunk/sources/editor/qetelementeditor.h

Modified: trunk/sources/editor/elementscene.cpp
===================================================================
--- trunk/sources/editor/elementscene.cpp	2017-07-27 21:46:34 UTC (rev 4995)
+++ trunk/sources/editor/elementscene.cpp	2017-07-31 17:41:48 UTC (rev 4996)
@@ -44,16 +44,16 @@
 ElementScene::ElementScene(QETElementEditor *editor, QObject *parent) :
 	QGraphicsScene(parent),
 	m_elmt_type("simple"),
-	qgi_manager(this),
-	element_editor(editor)
+	m_qgi_manager(this),
+	m_element_editor(editor)
 {
-	behavior = Normal;
+	m_behavior = Normal;
 	setItemIndexMethod(NoIndex);
 	setGrid(1, 1);
 	initPasteArea();
-	undo_stack.setClean();
+	m_undo_stack.setClean();
 	m_decorator_lock = new QMutex(QMutex::NonRecursive);
-	connect(&undo_stack, SIGNAL(indexChanged(int)), this, SLOT(managePrimitivesGroups()));
+	connect(&m_undo_stack, SIGNAL(indexChanged(int)), this, SLOT(managePrimitivesGroups()));
 	connect(this, SIGNAL(selectionChanged()), this, SLOT(managePrimitivesGroups()));
 }
 
@@ -63,7 +63,7 @@
 ElementScene::~ElementScene()
 {
 		//Disconnect to avoid crash, see bug report N° 122.
-	disconnect(&undo_stack, SIGNAL(indexChanged(int)), this, SLOT(managePrimitivesGroups()));
+	disconnect(&m_undo_stack, SIGNAL(indexChanged(int)), this, SLOT(managePrimitivesGroups()));
 	delete m_decorator_lock;
 
 	if (m_event_interface)
@@ -92,10 +92,10 @@
 	if (!(e -> modifiers() & Qt::ControlModifier))
 		event_pos = snapToGrid(event_pos);
 	
-	if (behavior == PasteArea) {
-		QRectF current_rect(paste_area_ -> rect());
+	if (m_behavior == PasteArea) {
+		QRectF current_rect(m_paste_area -> rect());
 		current_rect.moveCenter(event_pos);
-		paste_area_ -> setRect(current_rect);
+		m_paste_area -> setRect(current_rect);
 		return;
 	}
 
@@ -135,11 +135,11 @@
 		}
 	}
 	
-	if (behavior == PasteArea) {
-		defined_paste_area_ = paste_area_ -> rect();
-		removeItem(paste_area_);
-		emit(pasteAreaDefined(defined_paste_area_));
-		behavior = Normal;
+	if (m_behavior == PasteArea) {
+		m_defined_paste_area = m_paste_area -> rect();
+		removeItem(m_paste_area);
+		emit(pasteAreaDefined(m_defined_paste_area));
+		m_behavior = Normal;
 		return;
 	}
 
@@ -189,8 +189,8 @@
  */
 void ElementScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
 {
-	if (behavior == ElementScene::Normal)
-		element_editor -> contextMenu(event->screenPos());
+	if (m_behavior == ElementScene::Normal)
+		m_element_editor -> contextMenu(event->screenPos());
 }
 
 /**
@@ -221,8 +221,10 @@
  * Set a new event interface
  * @param interface
  */
-void ElementScene::setEventInterface(ESEventInterface *event_interface) {
-	if (m_event_interface) {
+void ElementScene::setEventInterface(ESEventInterface *event_interface)
+{
+	if (m_event_interface)
+	{
 		delete m_event_interface;
 		//We must to re-init because previous interface
 		//Reset his own init when deleted
@@ -232,6 +234,19 @@
 }
 
 /**
+ * @brief ElementScene::clearEventInterface
+ * Clear the current event interface
+ */
+void ElementScene::clearEventInterface()
+{
+	if(m_event_interface)
+	{
+		delete m_event_interface;
+		m_event_interface = nullptr;
+	}
+}
+
+/**
  * @brief ElementScene::setBehavior
  * Modifie the current behavior of this scene
  * @param b
@@ -238,7 +253,7 @@
  */
 void ElementScene::setBehavior(ElementScene::Behavior b)
 {
-	behavior = b;
+	m_behavior = b;
 }
 
 /**
@@ -245,7 +260,7 @@
 	@return la taille horizontale de la grille
 */
 int ElementScene::xGrid() const {
-	return(x_grid);
+	return(m_x_grid);
 }
 
 /**
@@ -252,7 +267,7 @@
 	@return la taille verticale de la grille
 */
 int ElementScene::yGrid() const {
-	return(y_grid);
+	return(m_y_grid);
 }
 
 /**
@@ -260,8 +275,8 @@
 	@param y_g Taille verticale de la grille
 */
 void ElementScene::setGrid(int x_g, int y_g) {
-	x_grid = x_g ? x_g : 1;
-	y_grid = y_g ? y_g : 1;
+	m_x_grid = x_g ? x_g : 1;
+	m_y_grid = y_g ? y_g : 1;
 }
 
 /**
@@ -315,7 +330,7 @@
 	root.appendChild(uuid);
 	
 		//names of element
-	root.appendChild(_names.toXml(xml_document));
+	root.appendChild(m_names_list.toXml(xml_document));
 
 	if (m_elmt_type == "slave" || m_elmt_type == "master")
 	{
@@ -444,7 +459,7 @@
 	@return la pile d'annulations de cet editeur d'element
 */
 QUndoStack &ElementScene::undoStack() {
-	return(undo_stack);
+	return(m_undo_stack);
 }
 
 /**
@@ -451,7 +466,7 @@
 	@return le gestionnaire de QGraphicsItem de cet editeur d'element
 */
 QGIManager &ElementScene::qgiManager() {
-	return(qgi_manager);
+	return(m_qgi_manager);
 }
 
 /**
@@ -469,7 +484,7 @@
 	@return true si clipboard_content a ete copie depuis cet element.
 */
 bool ElementScene::wasCopiedFromThisElement(const QString &clipboard_content) {
-	return(clipboard_content == last_copied_);
+	return(clipboard_content == m_last_copied);
 }
 
 /**
@@ -501,11 +516,11 @@
 	clipboard -> setText(clipboard_content);
 	
 	// retient le dernier contenu copie
-	last_copied_ = clipboard_content;
+	m_last_copied = clipboard_content;
 }
 
 QETElementEditor* ElementScene::editor() const {
-	return element_editor;
+	return m_element_editor;
 }
 
 /**
@@ -553,7 +568,7 @@
 	if (selected_items.isEmpty()) return;
 	
 	// efface tout ce qui est selectionne
-	undo_stack.push(new DeletePartsCommand(this, selected_items));
+	m_undo_stack.push(new DeletePartsCommand(this, selected_items));
 	
 	// removing items does not trigger QGraphicsScene::selectionChanged()
 	emit(partsRemoved());
@@ -566,10 +581,10 @@
 	sur l'auteur de l'element, sa licence, etc.
 */
 void ElementScene::slot_editAuthorInformations() {
-	bool is_read_only = element_editor && element_editor -> isReadOnly();
+	bool is_read_only = m_element_editor && m_element_editor -> isReadOnly();
 	
 	// cree un dialogue
-	QDialog dialog_author(element_editor);
+	QDialog dialog_author(m_element_editor);
 	dialog_author.setModal(true);
 #ifdef Q_OS_MAC
 	dialog_author.setWindowFlags(Qt::Sheet);
@@ -623,10 +638,10 @@
 	Lance un dialogue pour editer les noms de cet element
 */
 void ElementScene::slot_editNames() {
-	bool is_read_only = element_editor && element_editor -> isReadOnly();
+	bool is_read_only = m_element_editor && m_element_editor -> isReadOnly();
 	
 	// cree un dialogue
-	QDialog dialog(element_editor);
+	QDialog dialog(m_element_editor);
 #ifdef Q_OS_MAC
 	dialog.setWindowFlags(Qt::Sheet);
 #endif
@@ -643,7 +658,7 @@
 	
 	// ajoute un NamesListWidget au dialogue
 	NamesListWidget *names_widget = new NamesListWidget();
-	names_widget -> setNames(_names);
+	names_widget -> setNames(m_names_list);
 	names_widget -> setReadOnly(is_read_only);
 	dialog_layout -> addWidget(names_widget);
 	
@@ -657,7 +672,7 @@
 	// lance le dialogue
 	if (dialog.exec() == QDialog::Accepted && !is_read_only) {
 		NamesList new_names(names_widget -> names());
-		if (new_names != _names) undoStack().push(new ChangeNamesCommand(this, _names, new_names));
+		if (new_names != m_names_list) undoStack().push(new ChangeNamesCommand(this, m_names_list, new_names));
 	}
 }
 
@@ -780,11 +795,11 @@
 */
 void ElementScene::getPasteArea(const QRectF &to_paste) {
 	// on le dessine sur la scene
-	paste_area_ -> setRect(to_paste);
-	addItem(paste_area_);
+	m_paste_area -> setRect(to_paste);
+	addItem(m_paste_area);
 	
 	// on passe la scene en mode "recherche de zone pour copier/coller"
-	behavior = PasteArea;
+	m_behavior = PasteArea;
 }
 
 /**
@@ -846,7 +861,7 @@
 	m_elmt_kindInfo.fromXml(root.firstChildElement("kindInformations"), "kindInformation");
 
 	//Extract names of xml definition
-	_names.fromXml(root);
+	m_names_list.fromXml(root);
 	
 	//extract additional informations
 	setInformations(QString());
@@ -893,15 +908,15 @@
 				QDomElement qde = n.toElement();
 				if (qde.isNull()) continue;
 				CustomElementPart *cep;
-				if      (qde.tagName() == "line")     cep = new PartLine     (element_editor);
-				else if (qde.tagName() == "rect")     cep = new PartRectangle(element_editor);
-				else if (qde.tagName() == "ellipse")  cep = new PartEllipse  (element_editor);
-				else if (qde.tagName() == "circle")   cep = new PartEllipse  (element_editor);
-				else if (qde.tagName() == "polygon")  cep = new PartPolygon  (element_editor);
-				else if (qde.tagName() == "terminal") cep = new PartTerminal (element_editor);
-				else if (qde.tagName() == "text")     cep = new PartText     (element_editor);
-				else if (qde.tagName() == "input")    cep = new PartTextField(element_editor);
-				else if (qde.tagName() == "arc")      cep = new PartArc      (element_editor);
+				if      (qde.tagName() == "line")     cep = new PartLine     (m_element_editor);
+				else if (qde.tagName() == "rect")     cep = new PartRectangle(m_element_editor);
+				else if (qde.tagName() == "ellipse")  cep = new PartEllipse  (m_element_editor);
+				else if (qde.tagName() == "circle")   cep = new PartEllipse  (m_element_editor);
+				else if (qde.tagName() == "polygon")  cep = new PartPolygon  (m_element_editor);
+				else if (qde.tagName() == "terminal") cep = new PartTerminal (m_element_editor);
+				else if (qde.tagName() == "text")     cep = new PartText     (m_element_editor);
+				else if (qde.tagName() == "input")    cep = new PartTextField(m_element_editor);
+				else if (qde.tagName() == "arc")      cep = new PartArc      (m_element_editor);
 				else continue;
 				if (QGraphicsItem *qgi = dynamic_cast<QGraphicsItem *>(cep)) {
 					if (!qgi -> zValue()) qgi -> setZValue(z++);
@@ -967,8 +982,8 @@
 	Initialise la zone de collage
 */
 void ElementScene::initPasteArea() {
-	paste_area_ = new QGraphicsRectItem();
-	paste_area_ -> setZValue(1000000);
+	m_paste_area = new QGraphicsRectItem();
+	m_paste_area -> setZValue(1000000);
 	
 	QPen paste_area_pen;
 	paste_area_pen.setStyle(Qt::DashDotLine);
@@ -978,8 +993,8 @@
 	paste_area_brush.setStyle(Qt::SolidPattern);
 	paste_area_brush.setColor(QColor(90, 167, 255, 64));
 	
-	paste_area_ -> setPen(paste_area_pen);
-	paste_area_ -> setBrush(paste_area_brush);
+	m_paste_area -> setPen(paste_area_pen);
+	m_paste_area -> setBrush(paste_area_brush);
 }
 
 /**
@@ -989,8 +1004,8 @@
 	
 */
 QPointF ElementScene::snapToGrid(QPointF point) {
-	point.rx() = qRound(point.x() / x_grid) * x_grid;
-	point.ry() = qRound(point.y() / y_grid) * y_grid;
+	point.rx() = qRound(point.x() / m_x_grid) * m_x_grid;
+	point.ry() = qRound(point.y() / m_y_grid) * m_y_grid;
 	return point;
 }
 

Modified: trunk/sources/editor/elementscene.h
===================================================================
--- trunk/sources/editor/elementscene.h	2017-07-27 21:46:34 UTC (rev 4995)
+++ trunk/sources/editor/elementscene.h	2017-07-31 17:41:48 UTC (rev 4996)
@@ -35,104 +35,99 @@
 	It displays the various primitives composing the drawing of the element, the
 	border due to its fixed size and its hotspot.
 */
-class ElementScene : public QGraphicsScene {
+class ElementScene : public QGraphicsScene
+{
 	friend class ChangePropertiesCommand;
 	Q_OBJECT
 	
-	// enum
+		// enum
 	public:
-	enum Behavior { Normal, PasteArea, AddPart };
-	enum ItemOption {
-		SortByZValue = 1,
-		IncludeTerminals = 2,
-		IncludeHelperItems = 4,
-		Selected = 8,
-		NonSelected = 16,
-		SelectedOrNot = 24
-	};
+		enum Behavior { Normal, PasteArea, AddPart };
+		enum ItemOption {
+			SortByZValue = 1,
+			IncludeTerminals = 2,
+			IncludeHelperItems = 4,
+			Selected = 8,
+			NonSelected = 16,
+			SelectedOrNot = 24
+		};
 	Q_DECLARE_FLAGS(ItemOptions, ItemOption)
 	
-	// constructors, destructor
+		// constructors, destructor
 	public:
-	ElementScene(QETElementEditor *, QObject * = 0);
-	virtual ~ElementScene();
+		ElementScene(QETElementEditor *, QObject * = 0);
+		virtual ~ElementScene();
 	
 	private:
-	ElementScene(const ElementScene &);
+		ElementScene(const ElementScene &);
 	
 	// attributes
 	private:
 		/// List of localized names
-		NamesList _names;
+		NamesList m_names_list;
 		/// Extra informations
-		QString informations_;
+		QString m_informations;
 		/// element type
 		QString m_elmt_type;
 		/// element kind info
 		DiagramContext m_elmt_kindInfo;
 		/// QGraphicsItem manager
-		QGIManager qgi_manager;
+		QGIManager m_qgi_manager;
 		/// Undo stack
-		QUndoStack undo_stack;
-		/**
-			fsi_pos (first selected item pos) : Position of the forst selected item: used
-			to cancel mouse movements; also used to handle movements using keybard
-			arrwows.
-		*/
-		QPointF fsi_pos;
-		QPointF moving_press_pos;
+		QUndoStack m_undo_stack;
 	
 			/// Variables related to drawing
 		ESEventInterface *m_event_interface = nullptr;
-		Behavior behavior;
-		QETElementEditor *element_editor = nullptr;
+		Behavior m_behavior;
+		QETElementEditor *m_element_editor = nullptr;
 	
 			/// Variables to manage the paste area on the scene
-		QGraphicsRectItem *paste_area_;
-		QRectF defined_paste_area_;
+		QGraphicsRectItem *m_paste_area = nullptr;
+		QRectF m_defined_paste_area;
 	
 			/// Variables to handle copy/paste with offset
-		QString last_copied_;
+		QString m_last_copied;
 	
 			/// Decorator item displayed when at least one item is selected
 		ElementPrimitiveDecorator *m_decorator = nullptr;
 	
 			///< Size of the horizontal grid step
-		int x_grid;
+		int m_x_grid;
 			///< Size of the vertical grid step
-		int y_grid;
+		int m_y_grid;
 	
 	// methods
 	public:
 		void setEventInterface (ESEventInterface *event_interface);
+		void clearEventInterface();
 		void setBehavior (ElementScene::Behavior);
 		QPointF snapToGrid(QPointF point);
-	void setNames(const NamesList &);
-	NamesList names() const;
-	QString informations() const;
-	void setInformations(const QString &);
-	QString elementType () const {return m_elmt_type;}
-	DiagramContext elementKindInfo () const {return m_elmt_kindInfo;}
-	virtual int xGrid() const;
-	virtual int yGrid() const;
-	virtual void setGrid(int, int);
-	virtual const QDomDocument toXml(bool = true);
-	virtual QRectF boundingRectFromXml(const QDomDocument &);
-	virtual void fromXml(const QDomDocument &, const QPointF & = QPointF(), bool = true, ElementContent * = 0);
-	virtual void reset();
-	virtual QList<CustomElementPart *> primitives() const;
-	virtual QList<QGraphicsItem *> zItems(ItemOptions options = ItemOptions(SortByZValue | IncludeTerminals | SelectedOrNot)) const;
-	virtual ElementContent selectedContent() const;
-	virtual void getPasteArea(const QRectF &);
-	QRectF elementSceneGeometricRect () const;
-	bool containsTerminals() const;
-	QUndoStack &undoStack();
-	QGIManager &qgiManager();
-	static bool clipboardMayContainElement();
-	bool wasCopiedFromThisElement(const QString &);
-	void cut();
-	void copy();
-	QETElementEditor* editor() const;
+		void setNames(const NamesList &);
+		NamesList names() const;
+		QString informations() const;
+		void setInformations(const QString &);
+		QString elementType () const {return m_elmt_type;}
+		DiagramContext elementKindInfo () const {return m_elmt_kindInfo;}
+		virtual int xGrid() const;
+		virtual int yGrid() const;
+		virtual void setGrid(int, int);
+		virtual const QDomDocument toXml(bool = true);
+		virtual QRectF boundingRectFromXml(const QDomDocument &);
+		virtual void fromXml(const QDomDocument &, const QPointF & = QPointF(), bool = true, ElementContent * = 0);
+		virtual void reset();
+		virtual QList<CustomElementPart *> primitives() const;
+		virtual QList<QGraphicsItem *> zItems(ItemOptions options = ItemOptions(SortByZValue | IncludeTerminals | SelectedOrNot)) const;
+		virtual ElementContent selectedContent() const;
+		virtual void getPasteArea(const QRectF &);
+		QRectF elementSceneGeometricRect () const;
+		bool containsTerminals() const;
+		QUndoStack &undoStack();
+		QGIManager &qgiManager();
+		static bool clipboardMayContainElement();
+		bool wasCopiedFromThisElement(const QString &);
+		void cut();
+		void copy();
+		QETElementEditor* editor() const;
 	
 	protected:
 		virtual void mouseMoveEvent         (QGraphicsSceneMouseEvent *);
@@ -145,44 +140,44 @@
 		virtual void drawForeground(QPainter *, const QRectF &);
 	
 	private:
-	QRectF elementContentBoundingRect(const ElementContent &) const;
-	bool applyInformations(const QDomDocument &, QString * = 0);
-	ElementContent loadContent(const QDomDocument &, QString * = 0);
-	ElementContent addContent(const ElementContent &, QString * = 0);
-	ElementContent addContentAtPos(const ElementContent &, const QPointF &, QString * = 0);
-	void addPrimitive(QGraphicsItem *);
-	void initPasteArea();
-	static bool zValueLessThan(QGraphicsItem *, QGraphicsItem *);
-	QMutex *m_decorator_lock;
-	void centerElementToOrigine();
+		QRectF elementContentBoundingRect(const ElementContent &) const;
+		bool applyInformations(const QDomDocument &, QString * = 0);
+		ElementContent loadContent(const QDomDocument &, QString * = 0);
+		ElementContent addContent(const ElementContent &, QString * = 0);
+		ElementContent addContentAtPos(const ElementContent &, const QPointF &, QString * = 0);
+		void addPrimitive(QGraphicsItem *);
+		void initPasteArea();
+		static bool zValueLessThan(QGraphicsItem *, QGraphicsItem *);
+		QMutex *m_decorator_lock;
+		void centerElementToOrigine();
 	
 	public slots:
-	void slot_select(const ElementContent &);
-	void slot_selectAll();
-	void slot_deselectAll();
-	void slot_invertSelection();
-	void slot_delete();
-	void slot_editNames();
-	void slot_editAuthorInformations();
-	void slot_editProperties();
-	void slot_bringForward();
-	void slot_raise();
-	void slot_lower();
-	void slot_sendBackward();
-	void managePrimitivesGroups();
-	void stackAction(ElementEditionCommand *);
+		void slot_select(const ElementContent &);
+		void slot_selectAll();
+		void slot_deselectAll();
+		void slot_invertSelection();
+		void slot_delete();
+		void slot_editNames();
+		void slot_editAuthorInformations();
+		void slot_editProperties();
+		void slot_bringForward();
+		void slot_raise();
+		void slot_lower();
+		void slot_sendBackward();
+		void managePrimitivesGroups();
+		void stackAction(ElementEditionCommand *);
 	
 	signals:
-	/// Signal emitted after one or several parts were added
-	void partsAdded();
-	/// Signal emitted after one or several parts were removed
-	void partsRemoved();
-	/// Signal emitted when the zValue of one or several parts change
-	void partsZValueChanged();
-	/// Signal emitted when users have defined the copy/paste area
-	void pasteAreaDefined(const QRectF &);
-	/// Signal emitted when need zoomFit
-	void needZoomFit();
+			/// Signal emitted after one or several parts were added
+		void partsAdded();
+			/// Signal emitted after one or several parts were removed
+		void partsRemoved();
+			/// Signal emitted when the zValue of one or several parts change
+		void partsZValueChanged();
+			/// Signal emitted when users have defined the copy/paste area
+		void pasteAreaDefined(const QRectF &);
+			/// Signal emitted when need zoomFit
+		void needZoomFit();
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(ElementScene::ItemOptions)
@@ -192,7 +187,7 @@
 	@param nameslist New set of naes for the currently edited element
 */
 inline void ElementScene::setNames(const NamesList &nameslist) {
-	_names = nameslist;
+	m_names_list = nameslist;
 }
 
 /**
@@ -199,7 +194,7 @@
 	@return the list of names of the currently edited element
 */
 inline NamesList ElementScene::names() const {
-	return(_names);
+	return(m_names_list);
 }
 
 /**
@@ -206,7 +201,7 @@
 	@return extra informations of the currently edited element
 */
 inline QString ElementScene::informations() const {
-	return(informations_);
+	return(m_informations);
 }
 
 /**
@@ -213,7 +208,7 @@
 	@param infos new extra information for the currently edited element
 */
 inline void ElementScene::setInformations(const QString &infos) {
-	informations_ = infos;
+	m_informations = infos;
 }
 
 #endif

Modified: trunk/sources/editor/qetelementeditor.cpp
===================================================================
--- trunk/sources/editor/qetelementeditor.cpp	2017-07-27 21:46:34 UTC (rev 4995)
+++ trunk/sources/editor/qetelementeditor.cpp	2017-07-31 17:41:48 UTC (rev 4996)
@@ -160,8 +160,8 @@
 	edit_author       = new QAction(QET::Icons::UserInformations,     tr("Éditer les informations sur l'auteur"),      this);
 	m_edit_properties = new QAction(QET::Icons::ElementEdit,          tr("Éditer les propriétés de l'élément"),        this);
 	
-	undo = ce_scene -> undoStack().createUndoAction(this, tr("Annuler"));
-	redo = ce_scene -> undoStack().createRedoAction(this, tr("Refaire"));
+	undo = m_elmt_scene -> undoStack().createUndoAction(this, tr("Annuler"));
+	redo = m_elmt_scene -> undoStack().createRedoAction(this, tr("Refaire"));
 	undo -> setIcon(QET::Icons::EditUndo);
 	redo -> setIcon(QET::Icons::EditRedo);
 	undo -> setShortcuts(QKeySequence::Undo);
@@ -199,9 +199,9 @@
 	connect(save_as_file,    SIGNAL(triggered()), this,     SLOT(slot_saveAsFile()));
 	connect(reload,          SIGNAL(triggered()), this,     SLOT(slot_reload()));
 	connect(quit,            SIGNAL(triggered()), this,     SLOT(close()));
-	connect(selectall,       SIGNAL(triggered()), ce_scene, SLOT(slot_selectAll()));
-	connect(deselectall,     SIGNAL(triggered()), ce_scene, SLOT(slot_deselectAll()));
-	connect(inv_select,      SIGNAL(triggered()), ce_scene, SLOT(slot_invertSelection()));
+	connect(selectall,       SIGNAL(triggered()), m_elmt_scene, SLOT(slot_selectAll()));
+	connect(deselectall,     SIGNAL(triggered()), m_elmt_scene, SLOT(slot_deselectAll()));
+	connect(inv_select,      SIGNAL(triggered()), m_elmt_scene, SLOT(slot_invertSelection()));
 	connect(cut,             SIGNAL(triggered()), ce_view,  SLOT(cut()));
 	connect(copy,            SIGNAL(triggered()), ce_view,  SLOT(copy()));
 	connect(paste,           SIGNAL(triggered()), ce_view,  SLOT(paste()));
@@ -208,10 +208,10 @@
 	connect(paste_in_area,   SIGNAL(triggered()), ce_view,  SLOT(pasteInArea()));
 	connect(paste_from_file, SIGNAL(triggered()), this,     SLOT(pasteFromFile()));
 	connect(paste_from_elmt, SIGNAL(triggered()), this,     SLOT(pasteFromElement()));
-	connect(edit_delete,     SIGNAL(triggered()), ce_scene, SLOT(slot_delete()));
-	connect(edit_names,      SIGNAL(triggered()), ce_scene, SLOT(slot_editNames()));
-	connect(edit_author,     SIGNAL(triggered()), ce_scene, SLOT(slot_editAuthorInformations()));
-	connect(m_edit_properties, SIGNAL(triggered()), ce_scene, SLOT(slot_editProperties()));
+	connect(edit_delete,     SIGNAL(triggered()), m_elmt_scene, SLOT(slot_delete()));
+	connect(edit_names,      SIGNAL(triggered()), m_elmt_scene, SLOT(slot_editNames()));
+	connect(edit_author,     SIGNAL(triggered()), m_elmt_scene, SLOT(slot_editAuthorInformations()));
+	connect(m_edit_properties, SIGNAL(triggered()), m_elmt_scene, SLOT(slot_editProperties()));
 
 
 	/*
@@ -229,10 +229,10 @@
 	edit_backward -> setShortcut(QKeySequence(tr("Ctrl+Shift+End")));
 	edit_forward  -> setShortcut(QKeySequence(tr("Ctrl+Shift+Home")));
 
-	connect(edit_forward,  SIGNAL(triggered()), ce_scene, SLOT(slot_bringForward() ));
-	connect(edit_raise,    SIGNAL(triggered()), ce_scene, SLOT(slot_raise()        ));
-	connect(edit_lower,    SIGNAL(triggered()), ce_scene, SLOT(slot_lower()        ));
-	connect(edit_backward, SIGNAL(triggered()), ce_scene, SLOT(slot_sendBackward() ));
+	connect(edit_forward,  SIGNAL(triggered()), m_elmt_scene, SLOT(slot_bringForward() ));
+	connect(edit_raise,    SIGNAL(triggered()), m_elmt_scene, SLOT(slot_raise()        ));
+	connect(edit_lower,    SIGNAL(triggered()), m_elmt_scene, SLOT(slot_lower()        ));
+	connect(edit_backward, SIGNAL(triggered()), m_elmt_scene, SLOT(slot_sendBackward() ));
 
 	depth_toolbar = addToolBar(tr("Profondeur", "toolbar title"));
 	depth_toolbar -> setObjectName("depth_toolbar");
@@ -264,7 +264,7 @@
 	/*
 	 * Action related to primitive creation
 	 */
-	connect (ce_scene, SIGNAL(partsAdded()), this, SLOT(UncheckAddPrimitive()));
+	connect (m_elmt_scene, SIGNAL(partsAdded()), this, SLOT(UncheckAddPrimitive()));
 	parts = new QActionGroup(this);
 
 	QAction *add_line      = new QAction(QET::Icons::PartLine,      tr("Ajouter une ligne"),         parts);
@@ -323,19 +323,19 @@
 	addToolBar(Qt::TopToolBarArea, view_toolbar);
 	addToolBar(Qt::TopToolBarArea, element_toolbar);
 	
-	connect(ce_scene, SIGNAL(selectionChanged()), this, SLOT(slot_updateInformations()), Qt::QueuedConnection);
-	connect(ce_scene, SIGNAL(selectionChanged()), this, SLOT(slot_updateMenus()));
+	connect(m_elmt_scene, SIGNAL(selectionChanged()), this, SLOT(slot_updateInformations()), Qt::QueuedConnection);
+	connect(m_elmt_scene, SIGNAL(selectionChanged()), this, SLOT(slot_updateMenus()));
 	connect(QApplication::clipboard(),  SIGNAL(dataChanged()),      this, SLOT(slot_updateMenus()));
-	connect(&(ce_scene -> undoStack()), SIGNAL(cleanChanged(bool)), this, SLOT(slot_updateMenus()));
-	connect(&(ce_scene -> undoStack()), SIGNAL(cleanChanged(bool)), this, SLOT(slot_updateTitle()));
+	connect(&(m_elmt_scene -> undoStack()), SIGNAL(cleanChanged(bool)), this, SLOT(slot_updateMenus()));
+	connect(&(m_elmt_scene -> undoStack()), SIGNAL(cleanChanged(bool)), this, SLOT(slot_updateTitle()));
 	
 	// Annuler ou refaire une action met a jour la liste des primitives ; cela sert notamment pour les
 	// ajouts et suppressions de primitives ainsi que pour les actions entrainant un change
-	connect(&(ce_scene -> undoStack()), SIGNAL(indexChanged(int)),  this, SLOT(slot_updatePartsList()));
+	connect(&(m_elmt_scene -> undoStack()), SIGNAL(indexChanged(int)),  this, SLOT(slot_updatePartsList()));
 	
 	// Annuler ou refaire une action met a jour les informations affichees sur les primitives selectionnees,
 	// celles-ci etant potentiellement impactees
-	connect(&(ce_scene -> undoStack()), SIGNAL(indexChanged(int)),  this, SLOT(slot_updateInformations()));
+	connect(&(m_elmt_scene -> undoStack()), SIGNAL(indexChanged(int)),  this, SLOT(slot_updateInformations()));
 }
 
 /**
@@ -429,7 +429,7 @@
 	Met a jour les menus
 */
 void QETElementEditor::slot_updateMenus() {
-	bool selected_items = !read_only && !ce_scene -> selectedItems().isEmpty();
+	bool selected_items = !read_only && !m_elmt_scene -> selectedItems().isEmpty();
 	bool clipboard_elmt = !read_only && ElementScene::clipboardMayContainElement();
 	
 	// actions dependant seulement de l'etat "lecture seule" de l'editeur
@@ -455,9 +455,9 @@
 	paste_in_area   -> setEnabled(clipboard_elmt);
 	
 	// actions dependant de l'etat de la pile d'annulation
-	save            -> setEnabled(!read_only && !ce_scene -> undoStack().isClean());
-	undo            -> setEnabled(!read_only && ce_scene -> undoStack().canUndo());
-	redo            -> setEnabled(!read_only && ce_scene -> undoStack().canRedo());
+	save            -> setEnabled(!read_only && !m_elmt_scene -> undoStack().isClean());
+	undo            -> setEnabled(!read_only && m_elmt_scene -> undoStack().canUndo());
+	redo            -> setEnabled(!read_only && m_elmt_scene -> undoStack().canRedo());
 }
 
 /**
@@ -465,9 +465,9 @@
 */
 void QETElementEditor::slot_updateTitle() {
 	QString title = min_title;
-	title += " - " + ce_scene -> names().name() + " ";
+	title += " - " + m_elmt_scene -> names().name() + " ";
 	if (!filename_.isEmpty() || !location_.isNull()) {
-		if (!ce_scene -> undoStack().isClean()) title += tr("[Modifié]", "window title tag");
+		if (!m_elmt_scene -> undoStack().isClean()) title += tr("[Modifié]", "window title tag");
 	}
 	if (isReadOnly()) title += tr(" [lecture seule]", "window title tag");
 	setWindowTitle(title);
@@ -478,8 +478,8 @@
 */
 void QETElementEditor::setupInterface() {
 	// editeur
-	ce_scene = new ElementScene(this, this);
-	ce_view = new ElementView(ce_scene, this);
+	m_elmt_scene = new ElementScene(this, this);
+	ce_view = new ElementView(m_elmt_scene, this);
 	slot_setRubberBandToView();
 	setCentralWidget(ce_view);
 	
@@ -523,7 +523,7 @@
 	undo_dock -> setFeatures(QDockWidget::AllDockWidgetFeatures);
 	undo_dock -> setMinimumWidth(290);
 	addDockWidget(Qt::RightDockWidgetArea, undo_dock);
-	QUndoView* undo_view = new QUndoView(&(ce_scene -> undoStack()), this);
+	QUndoView* undo_view = new QUndoView(&(m_elmt_scene -> undoStack()), this);
 	undo_view -> setEmptyLabel(tr("Aucune modification"));
 	undo_dock -> setWidget(undo_view);
 	
@@ -530,10 +530,10 @@
 	// panel sur le cote pour la liste des parties
 	parts_list = new QListWidget(this);
 	parts_list -> setSelectionMode(QAbstractItemView::ExtendedSelection);
-	connect(ce_scene,   SIGNAL(partsAdded()),           this, SLOT(slot_createPartsList()));
-	connect(ce_scene,   SIGNAL(partsRemoved()),         this, SLOT(slot_createPartsList()));
-	connect(ce_scene,   SIGNAL(partsZValueChanged()),   this, SLOT(slot_createPartsList()));
-	connect(ce_scene,   SIGNAL(selectionChanged()),     this, SLOT(slot_updatePartsList()));
+	connect(m_elmt_scene,   SIGNAL(partsAdded()),           this, SLOT(slot_createPartsList()));
+	connect(m_elmt_scene,   SIGNAL(partsRemoved()),         this, SLOT(slot_createPartsList()));
+	connect(m_elmt_scene,   SIGNAL(partsZValueChanged()),   this, SLOT(slot_createPartsList()));
+	connect(m_elmt_scene,   SIGNAL(selectionChanged()),     this, SLOT(slot_updatePartsList()));
 	connect(parts_list, SIGNAL(itemSelectionChanged()), this, SLOT(slot_updateSelectionFromPartsList()));
 	parts_dock = new QDockWidget(tr("Parties", "dock title"), this);
 	parts_dock -> setObjectName("parts_list");
@@ -571,7 +571,7 @@
 	affichee. Sinon, un widget d'edition approprie est mis en place.
 */
 void QETElementEditor::slot_updateInformations() {
-	QList<QGraphicsItem *> selected_qgis = ce_scene -> selectedItems();
+	QList<QGraphicsItem *> selected_qgis = m_elmt_scene -> selectedItems();
 	QList<CustomElementPart *> cep_list;
 	bool style_editable = false;
 
@@ -652,7 +652,7 @@
 	QET::QetMessageBox::information(
 		this,
 		"Export XML",
-		ce_scene -> toXml().toString(4)
+		m_elmt_scene -> toXml().toString(4)
 	);
 }
 
@@ -670,7 +670,7 @@
 
 		/// Warning #1: Element haven't got terminal
 		/// (except for report, because report must have one terminal and this checking is do below)
-	if (!ce_scene -> containsTerminals() && !ce_scene -> elementType().contains("report"))
+	if (!m_elmt_scene -> containsTerminals() && !m_elmt_scene -> elementType().contains("report"))
 	{
 		warnings << qMakePair(
 			tr("Absence de borne", "warning title"),
@@ -683,13 +683,13 @@
 	}
 
 		/// Check master, slave, simple and report element
-	if(ce_scene -> elementType() == "master" ||
-	   ce_scene -> elementType() == "slave"  ||
-	   ce_scene -> elementType() == "simple")
+	if(m_elmt_scene -> elementType() == "master" ||
+	   m_elmt_scene -> elementType() == "slave"  ||
+	   m_elmt_scene -> elementType() == "simple")
 
 	{
 		bool wrng = true;
-		foreach (CustomElementPart *cep, ce_scene->primitives())
+		foreach (CustomElementPart *cep, m_elmt_scene->primitives())
 			if (cep->property("tagg").toString() == "label") wrng = false;
 
 			///Error #1: element is master, slave or simple but havent got input tagged 'label'
@@ -704,11 +704,11 @@
 	}
 
 		/// Check folio report element
-	if (ce_scene -> elementType().contains("report"))
+	if (m_elmt_scene -> elementType().contains("report"))
 	{
 		int text =0, terminal =0;
 
-		foreach(QGraphicsItem *qgi, ce_scene->items())
+		foreach(QGraphicsItem *qgi, m_elmt_scene->items())
 		{
 			if		(qgraphicsitem_cast<PartTerminal *>(qgi))  terminal ++;
 			else if (qgraphicsitem_cast<PartTextField *>(qgi)) text ++;
@@ -803,7 +803,7 @@
 	}
 	
 	// chargement de l'element
-	ce_scene -> fromXml(document_xml);
+	m_elmt_scene -> fromXml(document_xml);
 	slot_createPartsList();
 	
 	// gestion de la lecture seule
@@ -825,12 +825,16 @@
 }
 
 /**
-	Enregistre l'element vers un fichier
-	@param fn Chemin du fichier a enregistrer
-	@return true en cas de reussite, false sinon
-*/
-bool QETElementEditor::toFile(const QString &fn) {
-	QDomDocument element_xml = ce_scene -> toXml();
+ * @brief QETElementEditor::toFile
+ * Save to file the drawed element.
+ * @param fn : path of the file
+ * @return : true if succesfully save.
+ */
+bool QETElementEditor::toFile(const QString &fn)
+{
+	m_elmt_scene->clearEventInterface();
+	m_elmt_scene->clearSelection();
+	QDomDocument element_xml = m_elmt_scene->toXml();
 	bool writing = QET::writeXmlFile(element_xml, fn);
 	if (!writing) {
 		QET::QetMessageBox::warning(
@@ -851,7 +855,10 @@
  */
 bool QETElementEditor::toLocation(const ElementsLocation &location)
 {
-	if (!location.setXml(ce_scene->toXml()))
+	m_elmt_scene->clearEventInterface();
+	m_elmt_scene->clearSelection();
+	
+	if (!location.setXml(m_elmt_scene->toXml()))
 	{
 		QET::QetMessageBox::critical(this,
 									 tr("Erreur", "message box title"),
@@ -926,7 +933,7 @@
  * Set line creation interface to scene
  */
 void QETElementEditor::addLine() {
-	ce_scene -> setEventInterface(new ESEventAddLine(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddLine(m_elmt_scene));
 }
 
 /**
@@ -934,7 +941,7 @@
  * Set rectangle creation interface to scene
  */
 void QETElementEditor::addRect() {
-	ce_scene -> setEventInterface(new ESEventAddRect(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddRect(m_elmt_scene));
 }
 
 /**
@@ -942,7 +949,7 @@
  * Set ellipse creation interface to scene
  */
 void QETElementEditor::addEllipse() {
-	ce_scene -> setEventInterface(new ESEventAddEllipse(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddEllipse(m_elmt_scene));
 }
 
 /**
@@ -950,7 +957,7 @@
  * Set polygon creation interface to scene
  */
 void QETElementEditor::addPolygon() {
-	ce_scene -> setEventInterface(new ESEventAddPolygon(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddPolygon(m_elmt_scene));
 }
 
 /**
@@ -958,7 +965,7 @@
  * Set arc creation interface to scene
  */
 void QETElementEditor::addArc() {
-	ce_scene -> setEventInterface(new ESEventAddArc(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddArc(m_elmt_scene));
 }
 
 /**
@@ -966,7 +973,7 @@
  * Set text creation interface to scene
  */
 void QETElementEditor::addText() {
-	ce_scene -> setEventInterface(new ESEventAddText(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddText(m_elmt_scene));
 }
 
 /**
@@ -974,7 +981,7 @@
  * Set text field creation interface to scene
  */
 void QETElementEditor::addTextField() {
-	ce_scene -> setEventInterface(new ESEventAddTextField(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddTextField(m_elmt_scene));
 }
 
 /**
@@ -982,7 +989,7 @@
  * Set terminal creation interface to scene
  */
 void QETElementEditor::addTerminal() {
-	ce_scene -> setEventInterface(new ESEventAddTerminal(ce_scene));
+	m_elmt_scene -> setEventInterface(new ESEventAddTerminal(m_elmt_scene));
 }
 
 /**
@@ -1088,7 +1095,7 @@
 void QETElementEditor::slot_reload()
 {
 		//If user already edit the element, ask confirmation to reload
-	if (!ce_scene -> undoStack().isClean())
+	if (!m_elmt_scene -> undoStack().isClean())
 	{
 		QMessageBox::StandardButton answer = QET::QetMessageBox::question(this,
 																		  tr("Recharger l'élément", "dialog title"),
@@ -1099,7 +1106,7 @@
 	}
 
 		//Reload the element
-	ce_scene -> reset();
+	m_elmt_scene -> reset();
 	if (opened_from_file)
 		fromFile(filename_);
 	else
@@ -1125,7 +1132,7 @@
 
 				//Else wa save to the file at filename_ path
 			bool result_save = toFile(filename_);
-			if (result_save) ce_scene -> undoStack().setClean();
+			if (result_save) m_elmt_scene -> undoStack().setClean();
 			return(result_save);
 		}
 		else
@@ -1136,7 +1143,7 @@
 				//Else save to the known location
 			bool result_save = toLocation(location_);
 			if (result_save) {
-				ce_scene -> undoStack().setClean();
+				m_elmt_scene -> undoStack().setClean();
 				emit saveToLocation(location_);
 			}
 			return(result_save);
@@ -1153,17 +1160,21 @@
  * to this location
  * @return true if save with success
  */
-bool QETElementEditor::slot_saveAs() {
+bool QETElementEditor::slot_saveAs()
+{
 		// Check element befor writing
-	if (checkElement()) {
+	if (checkElement())
+	{
 			//Ask a location to user
 		ElementsLocation location = ElementDialog::getSaveElementLocation(this);
-		if (location.isNull()) return(false);
+		if (location.isNull())
+			return(false);
 
 		bool result_save = toLocation(location);
-		if (result_save) {
+		if (result_save)
+		{
 			setLocation(location);
-			ce_scene -> undoStack().setClean();
+			m_elmt_scene->undoStack().setClean();
 			emit saveToLocation(location);
 		}
 
@@ -1178,9 +1189,11 @@
  * Ask a file to user and save the current edited element to this file
  * @return true if save with success
  */
-bool QETElementEditor::slot_saveAsFile() {
+bool QETElementEditor::slot_saveAsFile()
+{
 		// Check element befor writing
-	if (checkElement()) {
+	if (checkElement())
+	{
 			//Ask a filename to user, for save the element
 		QString fn = QFileDialog::getSaveFileName(
 			this,
@@ -1201,10 +1214,11 @@
 
 		bool result_save = toFile(fn);
 			//If the save success, the filename is keep
-		if (result_save) {
+		if (result_save)
+		{
 			setFileName(fn);
 			QETApp::elementsRecentFiles() -> fileWasOpened(fn);
-			ce_scene -> undoStack().setClean();
+			m_elmt_scene -> undoStack().setClean();
 		}
 
 		return(result_save);
@@ -1220,7 +1234,7 @@
 	l'utilisateur.
 */
 bool QETElementEditor::canClose() {
-	if (ce_scene -> undoStack().isClean()) return(true);
+	if (m_elmt_scene -> undoStack().isClean()) return(true);
 	// demande d'abord a l'utilisateur s'il veut enregistrer l'element en cours
 	QMessageBox::StandardButton answer = QET::QetMessageBox::question(
 		this,
@@ -1230,7 +1244,7 @@
 				"Voulez-vous enregistrer l'élément %1 ?",
 				"dialog content - %1 is an element name"
 			)
-		).arg(ce_scene -> names().name()),
+		).arg(m_elmt_scene -> names().name()),
 		QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel,
 		QMessageBox::Cancel
 	);
@@ -1287,7 +1301,7 @@
 	if (canClose()) {
 		writeSettings();
 		setAttribute(Qt::WA_DeleteOnClose);
-		ce_scene -> reset();
+		m_elmt_scene -> reset();
 		qce -> accept();
 	} else qce -> ignore();
 }
@@ -1306,7 +1320,7 @@
 void QETElementEditor::slot_createPartsList() {
 	parts_list -> blockSignals(true);
 	parts_list -> clear();
-	QList<QGraphicsItem *> qgis = ce_scene -> zItems();
+	QList<QGraphicsItem *> qgis = m_elmt_scene -> zItems();
 	
 	// on ne construit plus la liste a partir de 200 primitives
 	// c'est ingerable : la maj de la liste prend trop de temps et le resultat
@@ -1334,13 +1348,13 @@
 	Met a jour la selection dans la liste des parties
 */
 void QETElementEditor::slot_updatePartsList() {
-	int items_count = ce_scene -> items().count();
+	int items_count = m_elmt_scene -> items().count();
 	if (parts_list -> count() != items_count) {
 		slot_createPartsList();
 	} else if (items_count <= QET_MAX_PARTS_IN_ELEMENT_EDITOR_LIST) {
 		parts_list -> blockSignals(true);
 		int i = 0;
-		QList<QGraphicsItem *> items = ce_scene -> zItems();
+		QList<QGraphicsItem *> items = m_elmt_scene -> zItems();
 		for (int j = items.count() - 1 ; j >= 0 ; -- j) {
 			QGraphicsItem *qgi = items[j];
 			QListWidgetItem *qlwi = parts_list -> item(i);
@@ -1356,7 +1370,7 @@
 	parties
 */
 void QETElementEditor::slot_updateSelectionFromPartsList() {
-	ce_scene  -> blockSignals(true);
+	m_elmt_scene  -> blockSignals(true);
 	parts_list -> blockSignals(true);
 	for (int i = 0 ; i < parts_list -> count() ; ++ i) {
 		QListWidgetItem *qlwi = parts_list -> item(i);
@@ -1366,7 +1380,7 @@
 		}
 	}
 	parts_list -> blockSignals(false);
-	ce_scene -> blockSignals(false);
+	m_elmt_scene -> blockSignals(false);
 	slot_updateInformations();
 	slot_updateMenus();
 }
@@ -1388,7 +1402,7 @@
 	if (state.isValid()) restoreState(state.toByteArray());
 	
 	// informations complementaires de l'element : valeur par defaut
-	ce_scene -> setInformations(settings.value("elementeditor/default-informations", "").toString());
+	m_elmt_scene -> setInformations(settings.value("elementeditor/default-informations", "").toString());
 }
 
 /**
@@ -1464,7 +1478,7 @@
 	document_xml.appendChild(node);
 
 		//Load the element
-	ce_scene -> fromXml(document_xml);
+	m_elmt_scene -> fromXml(document_xml);
 	slot_createPartsList();
 
 		//location is read only

Modified: trunk/sources/editor/qetelementeditor.h
===================================================================
--- trunk/sources/editor/qetelementeditor.h	2017-07-27 21:46:34 UTC (rev 4995)
+++ trunk/sources/editor/qetelementeditor.h	2017-07-31 17:41:48 UTC (rev 4996)
@@ -53,7 +53,7 @@
 	/// view widget for the editing scene
 	ElementView *ce_view;
 	/// editing scene
-	ElementScene *ce_scene;
+	ElementScene *m_elmt_scene;
 	/// container for widgets dedicated to primitive edition
 	QDockWidget *tools_dock;
 	/// Stack of widgets for tools_dock
@@ -164,7 +164,7 @@
 	@param nameslist the new list of names for the currently edited element
 */
 inline void QETElementEditor::setNames(const NamesList &nameslist) {
-	ce_scene -> setNames(nameslist);
+	m_elmt_scene -> setNames(nameslist);
 }
 
 /**
@@ -185,7 +185,7 @@
 	@return the editing scene
 */
 inline ElementScene *QETElementEditor::elementScene() const {
-	return(ce_scene);
+	return(m_elmt_scene);
 }
 
 #endif


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