[qet] [3930] Create a common widget to edit propertie

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


Revision: 3930
Author:   blacksun
Date:     2015-05-03 00:25:01 +0200 (Sun, 03 May 2015)
Log Message:
-----------
Create a common widget to edit propertie

Modified Paths:
--------------
    trunk/sources/qetgraphicsitem/element.cpp
    trunk/sources/ui/elementinfowidget.cpp
    trunk/sources/ui/elementinfowidget.h
    trunk/sources/ui/masterpropertieswidget.cpp
    trunk/sources/ui/masterpropertieswidget.h

Added Paths:
-----------
    trunk/sources/ui/elementpropertiesdialog.cpp
    trunk/sources/ui/elementpropertiesdialog.h
    trunk/sources/ui/propertieseditorwidget.cpp
    trunk/sources/ui/propertieseditorwidget.h

Removed Paths:
-------------
    trunk/sources/ui/elementpropertieswidget.cpp
    trunk/sources/ui/elementpropertieswidget.h

Modified: trunk/sources/qetgraphicsitem/element.cpp
===================================================================
--- trunk/sources/qetgraphicsitem/element.cpp	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/qetgraphicsitem/element.cpp	2015-05-02 22:25:01 UTC (rev 3930)
@@ -22,7 +22,7 @@
 #include "elementtextitem.h"
 #include "diagramcommands.h"
 #include <QtDebug>
-#include <ui/elementpropertieswidget.h>
+#include <elementpropertiesdialog.h>
 #include "elementprovider.h"
 #include "diagramposition.h"
 #include "terminal.h"
@@ -51,7 +51,7 @@
 void Element::editProperty() {
 	if (diagram())
 		if(!diagram()->isReadOnly()){
-			elementpropertieswidget epw (this, diagram()->views().first());
+			ElementPropertiesDialog epw (this, diagram()->views().first());
 			connect(&epw, SIGNAL(editElementRequired(ElementsLocation)), diagram(), SIGNAL(editElementRequired(ElementsLocation)));
 			connect(&epw, SIGNAL(findElementRequired(ElementsLocation)), diagram(), SIGNAL(findElementRequired(ElementsLocation)));
 			epw.exec();

Modified: trunk/sources/ui/elementinfowidget.cpp
===================================================================
--- trunk/sources/ui/elementinfowidget.cpp	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/ui/elementinfowidget.cpp	2015-05-02 22:25:01 UTC (rev 3930)
@@ -30,7 +30,7 @@
  * @param parent parent widget
  */
 ElementInfoWidget::ElementInfoWidget(Element *elmt, QWidget *parent) :
-	QWidget(parent),
+	PropertiesEditorWidget(parent),
 	ui(new Ui::ElementInfoWidget),
 	element_(elmt),
 	elmt_info(elmt->elementInformations()),
@@ -55,14 +55,11 @@
  * @brief ElementInfoWidget::apply
  * Apply the new information with a new undo command (got with method associatedUndo)
  * pushed to the stack of element project.
- * Return true if new info change, else false.
  */
-bool ElementInfoWidget::apply() {
-	if (QUndoCommand *undo = associatedUndo()) {
+void ElementInfoWidget::apply()
+{
+	if (QUndoCommand *undo = associatedUndo())
 		element_ -> diagram() -> undoStack().push(undo);
-		return true;
-	}
-	return false;
 }
 
 /**

Modified: trunk/sources/ui/elementinfowidget.h
===================================================================
--- trunk/sources/ui/elementinfowidget.h	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/ui/elementinfowidget.h	2015-05-02 22:25:01 UTC (rev 3930)
@@ -20,6 +20,7 @@
 
 #include <QWidget>
 #include "diagramcontext.h"
+#include "propertieseditorwidget.h"
 
 class Element;
 class QUndoCommand;
@@ -34,7 +35,8 @@
  * @brief The ElementInfoWidget class
  * this class is a widget to edit an element informations.
  */
-class ElementInfoWidget : public QWidget {
+class ElementInfoWidget : public PropertiesEditorWidget
+{
 	Q_OBJECT
 
 		//METHODS
@@ -42,7 +44,7 @@
 		explicit ElementInfoWidget(Element *elmt, QWidget *parent = 0);
 		~ElementInfoWidget();
 
-		bool apply();
+		void apply();
 		QUndoCommand* associatedUndo () const;
 
 	protected:

Added: trunk/sources/ui/elementpropertiesdialog.cpp
===================================================================
--- trunk/sources/ui/elementpropertiesdialog.cpp	                        (rev 0)
+++ trunk/sources/ui/elementpropertiesdialog.cpp	2015-05-02 22:25:01 UTC (rev 3930)
@@ -0,0 +1,227 @@
+/*
+	Copyright 2006-2015 The QElectroTech Team
+	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 "elementpropertiesdialog.h"
+#include "ghostelement.h"
+#include "qeticons.h"
+#include "diagramposition.h"
+#include "diagram.h"
+#include "elementinfowidget.h"
+#include "masterpropertieswidget.h"
+#include "linksingleelementwidget.h"
+
+/**
+ * @brief ElementPropertiesDialog::ElementPropertiesDialog
+ * default constructor
+ * @param elmt
+ * @param parent
+ */
+ElementPropertiesDialog::ElementPropertiesDialog(Element *elmt, QWidget *parent) :
+	QDialog(parent),
+	element_ (elmt),
+	diagram_ (elmt->diagram())
+{
+	eiw_ = 0;
+	mpw_ = 0;
+	lsew_ = 0;
+	buildInterface();
+}
+
+/**
+ * @brief ElementPropertiesDialog::generalWidget
+ * build the widget for the tab général
+ * @return
+ */
+QWidget* ElementPropertiesDialog::generalWidget() {
+	CustomElement *custom_element = qobject_cast<CustomElement *>(element_);
+	GhostElement  *ghost_element  = qobject_cast<GhostElement  *>(element_);
+
+	// type de l'element
+	QString description_string;
+	if (ghost_element) {
+		description_string += tr("Élément manquant");
+	} else {
+		description_string += tr("Élément");
+	}
+	description_string += "\n";
+
+	// some element characteristic
+	description_string += QString(tr("Nom : %1\n")).arg(element_ -> name());
+	int folio_index = diagram_ -> folioIndex();
+	if (folio_index != -1) {
+		description_string += QString(tr("Folio : %1\n")).arg(folio_index + 1);
+	}
+	description_string += QString(tr("Position : %1\n")).arg(diagram_ -> convertPosition(element_ -> scenePos()).toString());
+	description_string += QString(tr("Dimensions : %1*%2\n")).arg(element_ -> size().width()).arg(element_ -> size().height());
+	description_string += QString(tr("Bornes : %1\n")).arg(element_ -> terminals().count());
+	description_string += QString(tr("Champs de texte : %1\n")).arg(element_ -> texts().count());
+
+	if (custom_element) {
+		description_string += QString(tr("Emplacement : %1\n")).arg(custom_element -> location().toString());
+	}
+
+	// widget himself
+	QWidget *general_widget = new QWidget (tab_);
+	QVBoxLayout *vlayout_ = new QVBoxLayout (general_widget);
+	general_widget -> setLayout(vlayout_);
+
+	//widget for the text
+	vlayout_->addWidget(new QLabel (description_string, general_widget));
+
+	//widget for the pixmap
+	QLabel *pix = new QLabel(general_widget);
+	pix->setPixmap(element_->pixmap());
+	vlayout_->addWidget(pix, 0, Qt::AlignHCenter);
+	vlayout_ -> addStretch();
+
+	//button widget
+	find_in_panel = new QPushButton(QET::Icons::ZoomDraw, tr("Retrouver dans le panel"), general_widget);
+	connect(find_in_panel, SIGNAL(clicked()), this, SLOT(findInPanel()));
+	edit_element = new QPushButton(QET::Icons::ElementEdit, tr("Éditer l'élément"), general_widget);
+	connect(edit_element, SIGNAL(clicked()), this, SLOT(editElement()));
+	QHBoxLayout *hlayout_ = new QHBoxLayout;
+	hlayout_->addWidget(find_in_panel);
+	hlayout_->addWidget(edit_element);
+
+	vlayout_->addLayout(hlayout_);
+	return general_widget;
+}
+
+/**
+ * @brief ElementPropertiesDialog::buildInterface
+ *build the interface of this dialog, the main tab can have
+ *different tab according to the edited element
+ */
+void ElementPropertiesDialog::buildInterface() {
+
+	setWindowTitle(tr("Propriétés de l'élément"));
+	tab_ = new QTabWidget(this);
+
+	//Add tab according to the element
+	switch (element_ -> linkType()) {
+		case Element::Simple:
+			eiw_ = new ElementInfoWidget(element_, this);
+			tab_ -> addTab(eiw_, tr("Information"));
+			break;
+		case Element::NextReport:
+			lsew_ = new LinkSingleElementWidget(element_, this);
+			tab_ -> addTab(lsew_, tr("Report de folio"));
+			break;
+		case Element::PreviousReport:
+			lsew_ = new LinkSingleElementWidget(element_, this);
+			tab_ -> addTab(lsew_, tr("Report de folio"));
+			break;
+		case Element::Master:
+			mpw_ = new MasterPropertiesWidget(element_, this);
+			tab_ -> addTab(mpw_, tr("Référence croisée (maitre)"));
+			eiw_ = new ElementInfoWidget(element_, this);
+			tab_ -> addTab(eiw_, tr("Informations"));
+			break;
+		case Element::Slave:
+			lsew_ = new LinkSingleElementWidget(element_, this);
+			tab_ -> addTab(lsew_, tr("Référence croisée (esclave)"));
+			break;
+		case Element::Terminale:
+			break;
+		default:
+			break;
+	}
+
+	tab_ -> addTab(generalWidget(), tr("Général"));
+
+	dbb = new QDialogButtonBox(QDialogButtonBox::Apply | QDialogButtonBox::Cancel | QDialogButtonBox::Reset,
+							   Qt::Horizontal, this);
+	connect(dbb, SIGNAL(clicked(QAbstractButton*)), this, SLOT(standardButtonClicked(QAbstractButton*)));
+
+	QVBoxLayout *main_layout = new QVBoxLayout(this);
+	main_layout -> addWidget(tab_);
+	main_layout -> addWidget(dbb);
+	setLayout(main_layout);
+}
+
+/**
+ * @brief ElementPropertiesDialog::standardButtonClicked
+ * apply action when click in the dialog standard button box
+ * @param button
+ * the cliked button
+ */
+void ElementPropertiesDialog::standardButtonClicked(QAbstractButton *button) {
+	int  answer = dbb -> buttonRole(button);
+	bool accept = false;
+
+	switch (answer) {
+		case QDialogButtonBox::ResetRole:
+			if (mpw_) mpw_->reset();
+			break;
+		case QDialogButtonBox::ApplyRole:
+			accept = true;
+			break;
+		case QDialogButtonBox::RejectRole:
+			this -> reject();
+			break;
+		default:
+			this -> reject();
+			break;
+	}
+
+	if (accept) {
+		QUndoCommand *a = nullptr;
+		QUndoCommand *b = nullptr;
+
+		if (eiw_) a = eiw_ -> associatedUndo();
+		if (mpw_) b = mpw_ -> associatedUndo();
+		if (lsew_) lsew_ -> apply();
+
+		 //If two undo, we push it in a macro
+		if (a && b) {
+			QUndoStack &stack = element_ -> diagram() -> undoStack();
+			stack.beginMacro(a -> text() + " + " + b -> text());
+			stack.push(a);
+			stack.push(b);
+			stack.endMacro();
+		}
+		else {
+			if (a) element_ -> diagram() -> undoStack().push(a);
+			if (b) element_ -> diagram() -> undoStack().push(b);
+		}
+
+		this -> accept();
+	}
+}
+
+/**
+ * @brief ElementPropertiesDialog::findInPanel
+ * Slot
+ */
+void ElementPropertiesDialog::findInPanel() {
+	if (CustomElement *custom_element = qobject_cast<CustomElement *>(element_)) {
+		emit findElementRequired(custom_element->location());
+	}
+	reject();
+}
+
+/**
+ * @brief ElementPropertiesDialog::editElement
+ * Slot
+ */
+void ElementPropertiesDialog::editElement() {
+	if (CustomElement *custom_element = qobject_cast<CustomElement *>(element_)) {
+		emit findElementRequired(custom_element->location());
+		emit editElementRequired(custom_element->location());
+	}
+	reject();
+}

Added: trunk/sources/ui/elementpropertiesdialog.h
===================================================================
--- trunk/sources/ui/elementpropertiesdialog.h	                        (rev 0)
+++ trunk/sources/ui/elementpropertiesdialog.h	2015-05-02 22:25:01 UTC (rev 3930)
@@ -0,0 +1,66 @@
+/*
+	Copyright 2006-2015 The QElectroTech Team
+	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 ELEMENTPROPERTIESWIDGET_H
+#define ELEMENTPROPERTIESWIDGET_H
+
+#include <QDialog>
+
+class Diagram;
+class Element;
+class ElementsLocation;
+class ElementInfoWidget;
+class MasterPropertiesWidget;
+class LinkSingleElementWidget;
+class QAbstractButton;
+class QDialogButtonBox;
+class QTabWidget;
+
+class ElementPropertiesDialog : public QDialog {
+	Q_OBJECT
+
+	public:
+		explicit ElementPropertiesDialog(Element *elmt, QWidget *parent = 0);
+
+	private:
+		QWidget* generalWidget();
+		void     buildInterface();
+
+	signals:
+			/// Signal emitted when users wish to locate an element from the diagram within elements collection
+		void findElementRequired(const ElementsLocation &);
+			/// Signal emitted when users wish to edit an element from the diagram
+		void editElementRequired(const ElementsLocation &);
+
+	public slots:
+		void standardButtonClicked (QAbstractButton *);
+		void findInPanel ();
+		void editElement ();
+
+	private:
+		Element                 *element_;
+		Diagram                 *diagram_;
+		QTabWidget              *tab_;
+		QPushButton             *find_in_panel,
+								*edit_element;
+		QDialogButtonBox        *dbb;
+		ElementInfoWidget       *eiw_;
+		MasterPropertiesWidget  *mpw_;
+		LinkSingleElementWidget *lsew_;
+};
+
+#endif // ELEMENTPROPERTIESWIDGET_H

Deleted: trunk/sources/ui/elementpropertieswidget.cpp
===================================================================
--- trunk/sources/ui/elementpropertieswidget.cpp	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/ui/elementpropertieswidget.cpp	2015-05-02 22:25:01 UTC (rev 3930)
@@ -1,227 +0,0 @@
-/*
-	Copyright 2006-2015 The QElectroTech Team
-	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 "elementpropertieswidget.h"
-#include "ghostelement.h"
-#include "qeticons.h"
-#include "diagramposition.h"
-#include "diagram.h"
-#include "elementinfowidget.h"
-#include "masterpropertieswidget.h"
-#include "linksingleelementwidget.h"
-
-/**
- * @brief elementpropertieswidget::elementpropertieswidget
- * default constructor
- * @param elmt
- * @param parent
- */
-elementpropertieswidget::elementpropertieswidget(Element *elmt, QWidget *parent) :
-	QDialog(parent),
-	element_ (elmt),
-	diagram_ (elmt->diagram())
-{
-	eiw_ = 0;
-	mpw_ = 0;
-	lsew_ = 0;
-	buildInterface();
-}
-
-/**
- * @brief elementpropertieswidget::generalWidget
- * build the widget for the tab général
- * @return
- */
-QWidget* elementpropertieswidget::generalWidget() {
-	CustomElement *custom_element = qobject_cast<CustomElement *>(element_);
-	GhostElement  *ghost_element  = qobject_cast<GhostElement  *>(element_);
-
-	// type de l'element
-	QString description_string;
-	if (ghost_element) {
-		description_string += tr("Élément manquant");
-	} else {
-		description_string += tr("Élément");
-	}
-	description_string += "\n";
-
-	// some element characteristic
-	description_string += QString(tr("Nom : %1\n")).arg(element_ -> name());
-	int folio_index = diagram_ -> folioIndex();
-	if (folio_index != -1) {
-		description_string += QString(tr("Folio : %1\n")).arg(folio_index + 1);
-	}
-	description_string += QString(tr("Position : %1\n")).arg(diagram_ -> convertPosition(element_ -> scenePos()).toString());
-	description_string += QString(tr("Dimensions : %1*%2\n")).arg(element_ -> size().width()).arg(element_ -> size().height());
-	description_string += QString(tr("Bornes : %1\n")).arg(element_ -> terminals().count());
-	description_string += QString(tr("Champs de texte : %1\n")).arg(element_ -> texts().count());
-
-	if (custom_element) {
-		description_string += QString(tr("Emplacement : %1\n")).arg(custom_element -> location().toString());
-	}
-
-	// widget himself
-	QWidget *general_widget = new QWidget (tab_);
-	QVBoxLayout *vlayout_ = new QVBoxLayout (general_widget);
-	general_widget -> setLayout(vlayout_);
-
-	//widget for the text
-	vlayout_->addWidget(new QLabel (description_string, general_widget));
-
-	//widget for the pixmap
-	QLabel *pix = new QLabel(general_widget);
-	pix->setPixmap(element_->pixmap());
-	vlayout_->addWidget(pix, 0, Qt::AlignHCenter);
-	vlayout_ -> addStretch();
-
-	//button widget
-	find_in_panel = new QPushButton(QET::Icons::ZoomDraw, tr("Retrouver dans le panel"), general_widget);
-	connect(find_in_panel, SIGNAL(clicked()), this, SLOT(findInPanel()));
-	edit_element = new QPushButton(QET::Icons::ElementEdit, tr("Éditer l'élément"), general_widget);
-	connect(edit_element, SIGNAL(clicked()), this, SLOT(editElement()));
-	QHBoxLayout *hlayout_ = new QHBoxLayout;
-	hlayout_->addWidget(find_in_panel);
-	hlayout_->addWidget(edit_element);
-
-	vlayout_->addLayout(hlayout_);
-	return general_widget;
-}
-
-/**
- * @brief elementpropertieswidget::buildInterface
- *build the interface of this dialog, the main tab can have
- *different tab according to the edited element
- */
-void elementpropertieswidget::buildInterface() {
-
-	setWindowTitle(tr("Propriétés de l'élément"));
-	tab_ = new QTabWidget(this);
-
-	//Add tab according to the element
-	switch (element_ -> linkType()) {
-		case Element::Simple:
-			eiw_ = new ElementInfoWidget(element_, this);
-			tab_ -> addTab(eiw_, tr("Information"));
-			break;
-		case Element::NextReport:
-			lsew_ = new LinkSingleElementWidget(element_, this);
-			tab_ -> addTab(lsew_, tr("Report de folio"));
-			break;
-		case Element::PreviousReport:
-			lsew_ = new LinkSingleElementWidget(element_, this);
-			tab_ -> addTab(lsew_, tr("Report de folio"));
-			break;
-		case Element::Master:
-			mpw_ = new MasterPropertiesWidget(element_, this);
-			tab_ -> addTab(mpw_, tr("Référence croisée (maitre)"));
-			eiw_ = new ElementInfoWidget(element_, this);
-			tab_ -> addTab(eiw_, tr("Informations"));
-			break;
-		case Element::Slave:
-			lsew_ = new LinkSingleElementWidget(element_, this);
-			tab_ -> addTab(lsew_, tr("Référence croisée (esclave)"));
-			break;
-		case Element::Terminale:
-			break;
-		default:
-			break;
-	}
-
-	tab_ -> addTab(generalWidget(), tr("Général"));
-
-	dbb = new QDialogButtonBox(QDialogButtonBox::Apply | QDialogButtonBox::Cancel | QDialogButtonBox::Reset,
-							   Qt::Horizontal, this);
-	connect(dbb, SIGNAL(clicked(QAbstractButton*)), this, SLOT(standardButtonClicked(QAbstractButton*)));
-
-	QVBoxLayout *main_layout = new QVBoxLayout(this);
-	main_layout -> addWidget(tab_);
-	main_layout -> addWidget(dbb);
-	setLayout(main_layout);
-}
-
-/**
- * @brief elementpropertieswidget::standardButtonClicked
- * apply action when click in the dialog standard button box
- * @param button
- * the cliked button
- */
-void elementpropertieswidget::standardButtonClicked(QAbstractButton *button) {
-	int  answer = dbb -> buttonRole(button);
-	bool accept = false;
-
-	switch (answer) {
-		case QDialogButtonBox::ResetRole:
-			if (mpw_) mpw_->reset();
-			break;
-		case QDialogButtonBox::ApplyRole:
-			accept = true;
-			break;
-		case QDialogButtonBox::RejectRole:
-			this -> reject();
-			break;
-		default:
-			this -> reject();
-			break;
-	}
-
-	if (accept) {
-		QUndoCommand *a = nullptr;
-		QUndoCommand *b = nullptr;
-
-		if (eiw_) a = eiw_ -> associatedUndo();
-		if (mpw_) b = mpw_ -> associatedUndo();
-		if (lsew_) lsew_ -> apply();
-
-		 //If two undo, we push it in a macro
-		if (a && b) {
-			QUndoStack &stack = element_ -> diagram() -> undoStack();
-			stack.beginMacro(a -> text() + " + " + b -> text());
-			stack.push(a);
-			stack.push(b);
-			stack.endMacro();
-		}
-		else {
-			if (a) element_ -> diagram() -> undoStack().push(a);
-			if (b) element_ -> diagram() -> undoStack().push(b);
-		}
-
-		this -> accept();
-	}
-}
-
-/**
- * @brief elementpropertieswidget::findInPanel
- * Slot
- */
-void elementpropertieswidget::findInPanel() {
-	if (CustomElement *custom_element = qobject_cast<CustomElement *>(element_)) {
-		emit findElementRequired(custom_element->location());
-	}
-	reject();
-}
-
-/**
- * @brief elementpropertieswidget::editElement
- * Slot
- */
-void elementpropertieswidget::editElement() {
-	if (CustomElement *custom_element = qobject_cast<CustomElement *>(element_)) {
-		emit findElementRequired(custom_element->location());
-		emit editElementRequired(custom_element->location());
-	}
-	reject();
-}

Deleted: trunk/sources/ui/elementpropertieswidget.h
===================================================================
--- trunk/sources/ui/elementpropertieswidget.h	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/ui/elementpropertieswidget.h	2015-05-02 22:25:01 UTC (rev 3930)
@@ -1,66 +0,0 @@
-/*
-	Copyright 2006-2015 The QElectroTech Team
-	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 ELEMENTPROPERTIESWIDGET_H
-#define ELEMENTPROPERTIESWIDGET_H
-
-#include <QDialog>
-
-class Diagram;
-class Element;
-class ElementsLocation;
-class ElementInfoWidget;
-class MasterPropertiesWidget;
-class LinkSingleElementWidget;
-class QAbstractButton;
-class QDialogButtonBox;
-class QTabWidget;
-
-class elementpropertieswidget : public QDialog {
-	Q_OBJECT
-
-	public:
-		explicit elementpropertieswidget(Element *elmt, QWidget *parent = 0);
-
-	private:
-		QWidget* generalWidget();
-		void     buildInterface();
-
-	signals:
-			/// Signal emitted when users wish to locate an element from the diagram within elements collection
-		void findElementRequired(const ElementsLocation &);
-			/// Signal emitted when users wish to edit an element from the diagram
-		void editElementRequired(const ElementsLocation &);
-
-	public slots:
-		void standardButtonClicked (QAbstractButton *);
-		void findInPanel ();
-		void editElement ();
-
-	private:
-		Element                 *element_;
-		Diagram                 *diagram_;
-		QTabWidget              *tab_;
-		QPushButton             *find_in_panel,
-								*edit_element;
-		QDialogButtonBox        *dbb;
-		ElementInfoWidget       *eiw_;
-		MasterPropertiesWidget  *mpw_;
-		LinkSingleElementWidget *lsew_;
-};
-
-#endif // ELEMENTPROPERTIESWIDGET_H

Modified: trunk/sources/ui/masterpropertieswidget.cpp
===================================================================
--- trunk/sources/ui/masterpropertieswidget.cpp	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/ui/masterpropertieswidget.cpp	2015-05-02 22:25:01 UTC (rev 3930)
@@ -31,7 +31,7 @@
  * @param parent
  */
 MasterPropertiesWidget::MasterPropertiesWidget(Element *elmt, QWidget *parent) :
-	QWidget(parent),
+	PropertiesEditorWidget(parent),
 	ui(new Ui::MasterPropertiesWidget),
 	element_(elmt)
 {
@@ -58,12 +58,9 @@
  * pushed to the stack of element project.
  * Return true if link change, else false
  */
-bool MasterPropertiesWidget::apply() {
-	if (QUndoCommand *undo = associatedUndo()) {
+void MasterPropertiesWidget::apply() {
+	if (QUndoCommand *undo = associatedUndo())
 		element_ -> diagram() -> undoStack().push(undo);
-		return true;
-	}
-	return false;
 }
 
 /**

Modified: trunk/sources/ui/masterpropertieswidget.h
===================================================================
--- trunk/sources/ui/masterpropertieswidget.h	2015-04-29 16:00:33 UTC (rev 3929)
+++ trunk/sources/ui/masterpropertieswidget.h	2015-05-02 22:25:01 UTC (rev 3930)
@@ -20,6 +20,7 @@
 
 #include <QWidget>
 #include <QHash>
+#include <propertieseditorwidget.h>
 
 class QListWidgetItem;
 class Element;
@@ -35,7 +36,7 @@
  * This class embenddedthe undo/redo command when apply new connection.
  */
 
-class MasterPropertiesWidget : public QWidget
+class MasterPropertiesWidget : public PropertiesEditorWidget
 {
 	Q_OBJECT
 
@@ -43,7 +44,7 @@
 	explicit MasterPropertiesWidget(Element *elmt, QWidget *parent = 0);
 	~MasterPropertiesWidget();
 
-	bool apply();
+	void apply();
 	void reset();
 	QUndoCommand* associatedUndo() const;
 

Added: trunk/sources/ui/propertieseditorwidget.cpp
===================================================================
--- trunk/sources/ui/propertieseditorwidget.cpp	                        (rev 0)
+++ trunk/sources/ui/propertieseditorwidget.cpp	2015-05-02 22:25:01 UTC (rev 3930)
@@ -0,0 +1,37 @@
+/*
+	Copyright 2006-2015 The QElectroTech Team
+	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 "propertieseditorwidget.h"
+#include <QUndoCommand>
+
+/**
+ * @brief PropertiesEditorWidget::PropertiesEditorWidget
+ * Constructor
+ * @param parent : parent widget
+ */
+PropertiesEditorWidget::PropertiesEditorWidget(QWidget *parent) :
+	QWidget(parent)
+{}
+
+/**
+ * @brief PropertiesEditorWidget::assosiatedUndo
+ * By default, return an empty undo command
+ * @return an empty undo command
+ */
+QUndoCommand *PropertiesEditorWidget::assosiatedUndo() {
+	return new QUndoCommand();
+}

Added: trunk/sources/ui/propertieseditorwidget.h
===================================================================
--- trunk/sources/ui/propertieseditorwidget.h	                        (rev 0)
+++ trunk/sources/ui/propertieseditorwidget.h	2015-05-02 22:25:01 UTC (rev 3930)
@@ -0,0 +1,41 @@
+/*
+	Copyright 2006-2015 The QElectroTech Team
+	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 PROPERTIESEDITORWIDGET_H
+#define PROPERTIESEDITORWIDGET_H
+
+#include <QWidget>
+
+class QUndoCommand;
+
+/**
+ * @brief The PropertiesEditorWidget class
+ * This class extend QWidget method for have common way
+ * to edit propertie.
+ */
+class PropertiesEditorWidget : public QWidget
+{
+		Q_OBJECT
+	public:
+		explicit PropertiesEditorWidget(QWidget *parent = 0);
+
+		void apply() {}
+		void reset() {}
+		virtual QUndoCommand *assosiatedUndo ();
+};
+
+#endif // PROPERTIESEDITORWIDGET_H


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