[qet] [3216] conductor properties widget: replace widget made by c++ by widget build by ui file

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


Revision: 3216
Author:   blacksun
Date:     2014-07-17 11:20:21 +0200 (Thu, 17 Jul 2014)
Log Message:
-----------
conductor properties widget: replace widget made by c++ by widget build by ui file

Modified Paths:
--------------
    trunk/sources/configpages.cpp
    trunk/sources/diagramview.cpp
    trunk/sources/projectconfigpages.cpp

Added Paths:
-----------
    trunk/sources/ui/conductorpropertieswidget.cpp
    trunk/sources/ui/conductorpropertieswidget.h
    trunk/sources/ui/conductorpropertieswidget.ui

Removed Paths:
-------------
    trunk/sources/conductorpropertieswidget.cpp
    trunk/sources/conductorpropertieswidget.h

Deleted: trunk/sources/conductorpropertieswidget.cpp
===================================================================
--- trunk/sources/conductorpropertieswidget.cpp	2014-07-16 08:31:11 UTC (rev 3215)
+++ trunk/sources/conductorpropertieswidget.cpp	2014-07-17 09:20:21 UTC (rev 3216)
@@ -1,376 +0,0 @@
-/*
-	Copyright 2006-2014 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 "conductorpropertieswidget.h"
-#include <QtGui>
-#include "qetgraphicsitem/conductor.h"
-#include "qeticons.h"
-#include "qetapp.h"
-
-/**
-	Constructeur
-	@param parent QWidget parent
-*/
-ConductorPropertiesWidget::ConductorPropertiesWidget(QWidget *parent) :
-	QWidget(parent)
-{
-	buildInterface();
-}
-
-/**
-	Constructeur
-	@param parent QWidget parent
-	@param cp Proprietes a editer
-*/
-ConductorPropertiesWidget::ConductorPropertiesWidget(const ConductorProperties &cp, QWidget *parent) :
-	QWidget(parent)
-{
-	buildInterface();
-	setConductorProperties(cp);
-}
-
-/// construit l'interface du widget
-void ConductorPropertiesWidget::buildInterface() {
-	
-	setFocusPolicy(Qt::StrongFocus);
-	
-	QVBoxLayout *main_layout = new QVBoxLayout(this);
-	main_layout -> setContentsMargins(0, 0, 0, 0);
-	
-	QGroupBox *groupbox = new QGroupBox(tr("Type de conducteur"));
-	main_layout -> addWidget(groupbox);
-	
-	QVBoxLayout *groupbox_layout = new QVBoxLayout();
-	groupbox -> setLayout(groupbox_layout);
-	
-	simple = new QRadioButton(tr("Simple"));
-	multiline = new QRadioButton(tr("Multifilaire"));
-	
-	QHBoxLayout *multiline_layout = new QHBoxLayout();
-	QLabel *text = new QLabel(tr("Texte :"));
-	text_field = new QLineEdit();
-	QLabel *size_text = new QLabel(tr("Taille"), this);
-	text_size_sb = new QSpinBox(this);
-	text_size_sb->setRange(5,9);
-	multiline_layout -> addWidget(text);
-	multiline_layout -> addWidget(text_field);
-	multiline_layout -> addWidget(size_text);
-	multiline_layout -> addWidget(text_size_sb);
-
-	QGridLayout *rotate_text_layout = new QGridLayout;
-	QLabel *rotate_label = new QLabel(tr("Rotation du texte sur conducteur :"));
-	rotate_text_layout -> addWidget(rotate_label, 0, 0);
-
-	QLabel *verti_text = new QLabel(tr("Vertical"));
-	verti_select = QETApp::createTextOrientationSpinBoxWidget();
-	rotate_text_layout -> addWidget(verti_text, 1, 0);
-	rotate_text_layout -> setAlignment(verti_text, Qt::AlignCenter);
-	rotate_text_layout -> addWidget(verti_select, 2, 0);
-
-	QLabel *horiz_text = new QLabel(tr("Horizontal"));
-	horiz_select = QETApp::createTextOrientationSpinBoxWidget();
-	rotate_text_layout -> addWidget(horiz_text, 1, 1);
-	rotate_text_layout -> setAlignment(horiz_text, Qt::AlignCenter);
-	rotate_text_layout -> addWidget(horiz_select, 2, 1);
-	
-	singleline = new QRadioButton(tr("Unifilaire"));
-	
-	ground_checkbox = new QCheckBox(tr("terre"));
-	ground_checkbox -> setIcon(QET::Icons::Ground);
-	neutral_checkbox = new QCheckBox(tr("neutre"));
-	neutral_checkbox -> setIcon(QET::Icons::Neutral);
-	merge_checkbox = new QCheckBox(tr("PEN", "Protective Earth Neutral"));
-	merge_checkbox -> setToolTip(tr("Protective Earth Neutral", "Tooltip displaying the meaning of the 'PEN' acronym"));
-	
-	QVBoxLayout *singleline_layout5 = new QVBoxLayout();
-	singleline_layout5 -> addWidget(ground_checkbox);
-	singleline_layout5 -> addWidget(neutral_checkbox);
-	
-	QHBoxLayout *singleline_layout4 = new QHBoxLayout();
-	singleline_layout4 -> addLayout(singleline_layout5);
-	singleline_layout4 -> addWidget(merge_checkbox, 4, Qt::AlignVCenter | Qt::AlignLeft);
-	
-	QHBoxLayout *singleline_layout3 = new QHBoxLayout();
-	phase_checkbox = new QCheckBox(tr("phase"));
-	phase_checkbox -> setIcon(QET::Icons::Phase);
-	phase_slider = new QSlider(Qt::Horizontal);
-	phase_slider -> setRange(1, 3);
-	phase_spinbox = new QSpinBox();
-	phase_spinbox -> setRange(1, 3);
-	singleline_layout3 -> addWidget(phase_checkbox);
-	singleline_layout3 -> addWidget(phase_slider);
-	singleline_layout3 -> addWidget(phase_spinbox);
-	
-	QVBoxLayout *singleline_layout2 = new QVBoxLayout();
-	singleline_layout2 -> addLayout(singleline_layout4);
-	singleline_layout2 -> addLayout(singleline_layout3);
-	
-	QHBoxLayout *singleline_layout1 = new QHBoxLayout();
-	preview = new QLabel();
-	preview -> setFixedSize(150, 150);
-	singleline_layout1 -> addWidget(preview);
-	singleline_layout1 -> addLayout(singleline_layout2);
-	
-	QGroupBox *groupbox2 = new QGroupBox(tr("Apparence du conducteur"));
-	main_layout -> addWidget(groupbox2);
-	
-	QVBoxLayout *groupbox2_layout = new QVBoxLayout();
-	groupbox2 -> setLayout(groupbox2_layout);
-	
-	QHBoxLayout *color_layout = new QHBoxLayout();
-	QLabel *text1 = new QLabel(tr("Couleur :"));
-	color_button = new QPushButton("");
-	color_layout -> addWidget(text1);
-	color_layout -> addWidget(color_button);
-	
-	QHBoxLayout *style_layout = new QHBoxLayout();
-	QLabel *text2 = new QLabel(tr("Style :", "conductor line style"));
-	line_style = new QComboBox();
-	line_style -> addItem(tr("Trait plein", "conductor style: solid line"), Qt::SolidLine);
-	line_style -> addItem(tr("Trait en pointill\351s", "conductor style: dashed line"), Qt::DashLine);
-	line_style -> addItem(tr("Traits et points", "conductor style: dashed and dotted line"), Qt::DashDotLine);
-	style_layout -> addWidget(text2);
-	style_layout -> addWidget(line_style);
-	
-	setColorButton(properties_.color);
-	int index = line_style -> findData(properties_.style);
-	if (index != -1) line_style -> setCurrentIndex(index);
-	
-	groupbox_layout -> addWidget(simple);
-	groupbox_layout -> addWidget(multiline);
-	groupbox_layout -> addLayout(multiline_layout);
-	groupbox_layout -> addLayout(rotate_text_layout);
-	groupbox_layout -> addWidget(singleline);
-	groupbox_layout -> addLayout(singleline_layout1);
-	
-	groupbox2_layout -> addLayout(color_layout);
-	groupbox2_layout -> addLayout(style_layout);
-
-	radio_buttons = new QButtonGroup(this);
-	radio_buttons -> addButton(simple,     ConductorProperties::Simple);
-	radio_buttons -> addButton(multiline,  ConductorProperties::Multi);
-	radio_buttons -> addButton(singleline, ConductorProperties::Single);
-	
-	buildConnections();
-	setConductorType(ConductorProperties::Multi);
-}
-
-/// Met en place les connexions signaux/slots
-void ConductorPropertiesWidget::buildConnections() {
-	connect(phase_slider,      SIGNAL(valueChanged(int)),            phase_spinbox, SLOT(setValue(int)));
-	connect(phase_spinbox,     SIGNAL(valueChanged(int)),            phase_slider,  SLOT(setValue(int)));
-	connect(ground_checkbox,   SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	connect(neutral_checkbox,  SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	connect(merge_checkbox,    SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	connect(phase_checkbox,    SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	connect(phase_slider,      SIGNAL(valueChanged(int)),            this,          SLOT(updateConfig()));
-	connect(radio_buttons,     SIGNAL(buttonClicked(int)),           this,          SLOT(updateConfig()));
-	connect(text_field,        SIGNAL(textChanged(const QString &)), this,          SLOT(updateConfig()));
-	connect(line_style,        SIGNAL(currentIndexChanged(int)),     this,          SLOT(updateConfig()));
-	connect(color_button,      SIGNAL(clicked()),                    this,          SLOT(chooseColor()));
-	connect(verti_select,      SIGNAL(editingFinished(double)),      this,          SLOT(updateConfig()));
-	connect(horiz_select,      SIGNAL(editingFinished(double)),      this,          SLOT(updateConfig()));
-	connect(text_size_sb,      SIGNAL(valueChanged(int)),            this,          SLOT(updateConfig()));
-}
-
-/**
-	Demande a l'utilisateur de choisir une couleur via un dialogue approprie.
-*/
-void ConductorPropertiesWidget::chooseColor() {
-	QColor user_chosen_color = QColorDialog::getColor(properties_.color);
-	if (user_chosen_color.isValid()) {
-		setColorButton(user_chosen_color);
-		updateConfig();
-	}
-}
-
-/**
-	@return la couleur actuelle du bouton permettant de choisir la couleur du
-	conducteur
-*/
-QColor ConductorPropertiesWidget::colorButton() const {
-	return(color_button -> palette().color(QPalette::Button));
-}
-
-/**
-	Change la couleur du bouton permettant de choisir la couleur du conducteur
-	@param color Nouvelle couleur a afficher
-*/
-void ConductorPropertiesWidget::setColorButton(const QColor &color) {
-	QPalette palette;
-	palette.setColor(QPalette::Button, color);
-	color_button -> setPalette(palette);
-}
-
-/// Enleve les connexions signaux/slots
-void ConductorPropertiesWidget::destroyConnections() {
-	disconnect(phase_slider,      SIGNAL(valueChanged(int)),            phase_spinbox, SLOT(setValue(int)));
-	disconnect(phase_spinbox,     SIGNAL(valueChanged(int)),            phase_slider,  SLOT(setValue(int)));
-	disconnect(ground_checkbox,   SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	disconnect(neutral_checkbox,  SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	disconnect(merge_checkbox,    SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	disconnect(phase_checkbox,    SIGNAL(toggled(bool)),                this,          SLOT(updateConfig()));
-	disconnect(phase_slider,      SIGNAL(valueChanged(int)),            this,          SLOT(updateConfig()));
-	disconnect(radio_buttons,     SIGNAL(buttonClicked(int)),           this,          SLOT(updateConfig()));
-	disconnect(text_field,        SIGNAL(textChanged(const QString &)), this,          SLOT(updateConfig()));
-	disconnect(color_button,      SIGNAL(clicked()),                    this,          SLOT(chooseColor()));
-	disconnect(line_style,        SIGNAL(currentIndexChanged(int)),     this,          SLOT(updateConfig()));
-	disconnect(verti_select,      SIGNAL(editingFinished(double)),      this,          SLOT(updateConfig()));
-	disconnect(horiz_select,      SIGNAL(editingFinished(double)),      this,          SLOT(updateConfig()));
-	disconnect(text_size_sb,      SIGNAL(valueChanged(int)),            this,          SLOT(updateConfig()));
-}
-
-/// Destructeur
-ConductorPropertiesWidget::~ConductorPropertiesWidget() {
-	delete verti_select;
-	delete horiz_select;
-}
-
-/// Met a jour les proprietes
-void ConductorPropertiesWidget::updateConfig() {
-	properties_.type = static_cast<ConductorProperties::ConductorType>(radio_buttons -> checkedId());
-	properties_.color = colorButton();
-	properties_.style = static_cast<Qt::PenStyle>(line_style -> itemData(line_style -> currentIndex()).toInt());
-	properties_.text = text_field -> text();
-	properties_.text_size = text_size_sb->value();
-	properties_.verti_rotate_text = verti_select -> value();
-	properties_.horiz_rotate_text = horiz_select -> value();
-	properties_.singleLineProperties.hasGround = ground_checkbox -> isChecked();
-	properties_.singleLineProperties.hasNeutral = neutral_checkbox -> isChecked();
-	properties_.singleLineProperties.is_pen = merge_checkbox -> isChecked();
-	properties_.singleLineProperties.setPhasesCount(phase_checkbox -> isChecked() ? phase_spinbox -> value() : 0);
-	
-	updateDisplay();
-}
-
-/// Met a jour l'affichage des proprietes
-void ConductorPropertiesWidget::updateDisplay() {
-	destroyConnections();
-	
-	setConductorType(properties_.type);
-	setColorButton(properties_.color);
-	int index = line_style -> findData(properties_.style);
-	if (index != -1) line_style -> setCurrentIndex(index);
-	text_field -> setText(properties_.text);
-	text_size_sb -> setValue(properties_.text_size);
-	ground_checkbox -> setChecked(properties_.singleLineProperties.hasGround);
-	neutral_checkbox -> setChecked(properties_.singleLineProperties.hasNeutral);
-	merge_checkbox -> setChecked(properties_.singleLineProperties.is_pen);
-	merge_checkbox -> setEnabled(!isReadOnly() && properties_.type == ConductorProperties::Single && ground_checkbox -> isChecked() && neutral_checkbox -> isChecked());
-	phase_spinbox -> setValue(properties_.singleLineProperties.phasesCount());
-	phase_slider -> setValue(properties_.singleLineProperties.phasesCount());
-	phase_checkbox -> setChecked(properties_.singleLineProperties.phasesCount());
-	verti_select -> setValue(properties_.verti_rotate_text);
-	horiz_select -> setValue(properties_.horiz_rotate_text);
-	
-	buildConnections();
-	updatePreview();
-}
-
-/// Met a jour la previsualisation des attributs unifilaires
-void ConductorPropertiesWidget::updatePreview() {
-	const QRect pixmap_rect(0, 0, 96, 96);
-	QPixmap pixmap(pixmap_rect.width(), pixmap_rect.height());
-	QPainter painter;
-	painter.begin(&pixmap);
-	painter.eraseRect(pixmap_rect);
-	painter.drawRect(pixmap_rect.adjusted(0,0,-1,-1));
-	painter.drawLine(QLineF(0, pixmap_rect.height() / 2, pixmap_rect.width(), pixmap_rect.height() / 2));
-	properties_.singleLineProperties.draw(&painter, QET::Horizontal, pixmap_rect);
-	painter.end();
-	preview -> setPixmap(pixmap);
-}
-
-/**
-	Passe le widget en mode simple, unifilaire ou multifilaire
-	@param t le type de conducteur
-*/
-void ConductorPropertiesWidget::setConductorType(ConductorProperties::ConductorType t) {
-	
-	// widgets lies au simple
-	simple        -> setChecked(t == ConductorProperties::Simple);
-	
-	// widgets lies au mode multifilaire
-	multiline        -> setChecked(t == ConductorProperties::Multi);
-	text_field       -> setEnabled(t == ConductorProperties::Multi);
-	
-	// widgets lies au mode unifilaire
-	bool sl = (t == ConductorProperties::Single);
-	singleline       -> setChecked(sl);
-	preview          -> setEnabled(sl);
-	phase_checkbox   -> setEnabled(sl);
-	phase_slider     -> setEnabled(sl);
-	phase_spinbox    -> setEnabled(sl);
-	ground_checkbox  -> setEnabled(sl);
-	neutral_checkbox -> setEnabled(sl);
-	merge_checkbox   -> setEnabled(sl);
-}
-
-/// @param p les nouvelles proprietes
-void ConductorPropertiesWidget::setConductorProperties(const ConductorProperties &p) {
-	properties_ = p;
-	updateDisplay();
-}
-
-/// @return les proprietes editees
-ConductorProperties ConductorPropertiesWidget::conductorProperties() const {
-	return(properties_);
-}
-
-/**
-	@return true si ce widget est en lecture seule, false sinon
-*/
-bool ConductorPropertiesWidget::isReadOnly() const {
-	return(text_field -> isReadOnly());
-}
-
-/**
-	@param ro true pour passer ce widget en lecture seule, false sinon
-*/
-void ConductorPropertiesWidget::setReadOnly(bool ro) {
-	// enable or disable all child widgets according to the read only state
-	simple    -> setDisabled(ro);
-	multiline -> setDisabled(ro);
-	singleline -> setDisabled(ro);
-	text_field -> setReadOnly(ro);
-	text_size_sb -> setReadOnly(ro);
-	phase_checkbox -> setDisabled(ro);
-	phase_spinbox -> setReadOnly(ro);
-	ground_checkbox -> setDisabled(ro);
-	neutral_checkbox -> setDisabled(ro);
-	merge_checkbox -> setDisabled(ro);
-	color_button -> setDisabled(ro);
-	line_style -> setDisabled(ro);
-	// if the widget is not read-only, we still need to disable some widgets for consistency
-	if (!ro) {
-		updateDisplay();
-	}
-}
-
-/**
-	Gere le focus de ce widget
-*/
-void ConductorPropertiesWidget::focusInEvent(QFocusEvent *event) {
-	if (properties_.type == ConductorProperties::Multi) {
-		text_field -> setFocus(Qt::ActiveWindowFocusReason);
-		text_field -> selectAll();
-	} else if (properties_.type == ConductorProperties::Single) {
-		phase_spinbox -> setFocus(Qt::ActiveWindowFocusReason);
-		phase_spinbox -> selectAll();
-	}
-	QWidget::focusInEvent(event);
-}

Deleted: trunk/sources/conductorpropertieswidget.h
===================================================================
--- trunk/sources/conductorpropertieswidget.h	2014-07-16 08:31:11 UTC (rev 3215)
+++ trunk/sources/conductorpropertieswidget.h	2014-07-17 09:20:21 UTC (rev 3216)
@@ -1,87 +0,0 @@
-/*
-	Copyright 2006-2014 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 CONDUCTOR_PROPERTIES_WIDGET_H
-#define CONDUCTOR_PROPERTIES_WIDGET_H
-#include "conductorproperties.h"
-#include "qtextorientationspinboxwidget.h"
-#include <QWidget>
-/**
-	This widget enables users to change the properties of a particular
-	conductor; these properties include singleline symbols, style, color, and
-	conductor type but exclude the path it draws.
-*/
-class ConductorPropertiesWidget : public QWidget {
-	Q_OBJECT
-	// constructors, destructor
-	public:
-	ConductorPropertiesWidget(QWidget * = 0);
-	ConductorPropertiesWidget(const ConductorProperties &, QWidget * = 0);
-	virtual ~ConductorPropertiesWidget();
-	
-	private:
-	ConductorPropertiesWidget(const ConductorPropertiesWidget  &);
-	
-	// methods
-	public:
-	void setConductorProperties(const ConductorProperties &);
-	ConductorProperties conductorProperties() const;
-	bool isReadOnly() const;
-	void setReadOnly(bool);
-	
-	private:
-	void setConductorType(ConductorProperties::ConductorType);
-	void setColorButton(const QColor &);
-	QColor colorButton() const;
-	
-	public slots:
-	void updatePreview();
-	void updateConfig();
-	void updateDisplay();
-	void chooseColor();
-	
-	protected:
-	void focusInEvent(QFocusEvent *);
-	
-	// private attributes
-	private:
-	QButtonGroup *radio_buttons;
-	QRadioButton *simple;
-	QRadioButton *multiline;
-	QLineEdit *text_field;
-	QTextOrientationSpinBoxWidget *verti_select;
-	QTextOrientationSpinBoxWidget *horiz_select;
-	QRadioButton *singleline;
-	QCheckBox *phase_checkbox;
-	QSlider *phase_slider;
-	QSpinBox *phase_spinbox;
-	QCheckBox *ground_checkbox;
-	QCheckBox *neutral_checkbox;
-	QLabel *preview;
-	QPushButton *color_button;
-	QComboBox *line_style;
-	QCheckBox *merge_checkbox;
-	QSpinBox *text_size_sb;
-	
-	ConductorProperties properties_;
-	
-	// private methods
-	void buildInterface();
-	void buildConnections();
-	void destroyConnections();
-};
-#endif

Modified: trunk/sources/configpages.cpp
===================================================================
--- trunk/sources/configpages.cpp	2014-07-16 08:31:11 UTC (rev 3215)
+++ trunk/sources/configpages.cpp	2014-07-17 09:20:21 UTC (rev 3216)
@@ -81,7 +81,7 @@
 	ipw-> properties().toSettings(settings, "diagrameditor/default");
 	
 	// proprietes par defaut des conducteurs
-	cpw -> conductorProperties().toSettings(settings, "diagrameditor/defaultconductor");
+	cpw -> properties().toSettings(settings, "diagrameditor/defaultconductor");
 
 	// default report propertie
 	rpw->toSettings(settings, "diagrameditor/defaultreport");

Modified: trunk/sources/diagramview.cpp
===================================================================
--- trunk/sources/diagramview.cpp	2014-07-16 08:31:11 UTC (rev 3215)
+++ trunk/sources/diagramview.cpp	2014-07-17 09:20:21 UTC (rev 3216)
@@ -675,7 +675,7 @@
 	if (popup.exec() == QDialog::Accepted && !diagram_is_read_only) {
 		TitleBlockProperties new_titleblock   = titleblock_infos  -> properties();
 		BorderProperties new_border = border_infos -> properties();
-		ConductorProperties new_conductors = cpw -> conductorProperties();
+		ConductorProperties new_conductors = cpw -> properties();
 		
 		bool adjust_scene = false;
 		
@@ -1016,7 +1016,7 @@
 	// execute le dialogue et met a jour le conducteur
 	if (conductor_dialog.exec() == QDialog::Accepted) {
 		// recupere les nouvelles proprietes
-		ConductorProperties new_properties = cpw -> conductorProperties();
+		ConductorProperties new_properties = cpw -> properties();
 
 		if (new_properties != old_properties) {
 				if (cb_apply_all -> isChecked()) {

Modified: trunk/sources/projectconfigpages.cpp
===================================================================
--- trunk/sources/projectconfigpages.cpp	2014-07-16 08:31:11 UTC (rev 3215)
+++ trunk/sources/projectconfigpages.cpp	2014-07-17 09:20:21 UTC (rev 3216)
@@ -250,9 +250,9 @@
 		modified_project = true;
 	}
 	
-	ConductorProperties new_conductor_prop = conductor_ -> conductorProperties();
+	ConductorProperties new_conductor_prop = conductor_ -> properties();
 	if (project_ -> defaultConductorProperties() != new_conductor_prop) {
-		project_ -> setDefaultConductorProperties(conductor_ -> conductorProperties());
+		project_ -> setDefaultConductorProperties(conductor_ -> properties());
 		modified_project = true;
 	}
 
@@ -319,7 +319,7 @@
 */
 void ProjectNewDiagramConfigPage::readValuesFromProject() {
 	border_		-> setProperties		   (project_ -> defaultBorderProperties());
-	conductor_	-> setConductorProperties  (project_ -> defaultConductorProperties());
+	conductor_	-> setProperties  (project_ -> defaultConductorProperties());
 	titleblock_ -> setProperties (project_ -> defaultTitleBlockProperties());
 	report_		-> setReportProperties	   (project_ -> defaultReportProperties());
 	xref_		-> setProperties		   (project_ -> defaultXRefProperties());

Added: trunk/sources/ui/conductorpropertieswidget.cpp
===================================================================
--- trunk/sources/ui/conductorpropertieswidget.cpp	                        (rev 0)
+++ trunk/sources/ui/conductorpropertieswidget.cpp	2014-07-17 09:20:21 UTC (rev 3216)
@@ -0,0 +1,233 @@
+/*
+	Copyright 2006-2014 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 "conductorpropertieswidget.h"
+#include "ui_conductorpropertieswidget.h"
+#include "conductorproperties.h"
+#include "qetapp.h"
+#include "qtextorientationspinboxwidget.h"
+
+/**
+ * @brief ConductorPropertiesWidget::ConductorPropertiesWidget
+ * Constructor
+ * @param parent, paretn widget
+ */
+ConductorPropertiesWidget::ConductorPropertiesWidget(QWidget *parent) :
+	QWidget(parent),
+	ui(new Ui::ConductorPropertiesWidget)
+{
+	ui->setupUi(this);
+	initWidget();
+}
+
+/**
+ * @brief ConductorPropertiesWidget::ConductorPropertiesWidget
+ * Constructor with properties
+ * @param properties, properties to edit
+ * @param parent, parent widget
+ */
+ConductorPropertiesWidget::ConductorPropertiesWidget(const ConductorProperties &properties, QWidget *parent) :
+	QWidget(parent),
+	ui(new Ui::ConductorPropertiesWidget)
+{
+	ui -> setupUi(this);
+	initWidget();
+	setProperties(properties);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::~ConductorPropertiesWidget
+ * destructor
+ */
+ConductorPropertiesWidget::~ConductorPropertiesWidget()
+{
+	delete ui;
+}
+
+/**
+ * @brief ConductorPropertiesWidget::setProperties
+ * Set the properties
+ * @param properties
+ */
+void ConductorPropertiesWidget::setProperties(const ConductorProperties &properties) {
+	if (m_properties == properties) return;
+	m_properties = properties;
+
+	setColorButton(m_properties.color);
+	int index = ui -> m_line_style_cb->findData(m_properties.style);
+	if (index != -1) ui -> m_line_style_cb -> setCurrentIndex(index);
+	ui -> m_text_le      -> setText    (m_properties.text);
+	ui -> m_text_size_sb -> setValue   (m_properties.text_size);
+	ui -> m_earth_cb     -> setChecked (m_properties.singleLineProperties.hasGround);
+	ui -> m_neutral_cb   -> setChecked (m_properties.singleLineProperties.hasNeutral);
+	ui -> m_pen_cb       -> setChecked (m_properties.singleLineProperties.isPen());
+	ui -> m_phase_cb     -> setChecked (m_properties.singleLineProperties.phasesCount());
+	ui -> m_phase_slider -> setValue   (m_properties.singleLineProperties.phasesCount());
+	m_verti_select       -> setValue   (m_properties.verti_rotate_text);
+	m_horiz_select       -> setValue   (m_properties.horiz_rotate_text);
+
+	setConductorType(m_properties.type);
+	updatePreview(false);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::properties
+ * @return the edited properties
+ */
+ConductorProperties ConductorPropertiesWidget::properties() const {
+	ConductorProperties properties_;
+	if      (ui -> m_simple_rb -> isChecked()) properties_.type = ConductorProperties::Simple;
+	else if (ui -> m_multi_rb  -> isChecked()) properties_.type = ConductorProperties::Multi;
+	else if (ui -> m_single_rb -> isChecked()) properties_.type = ConductorProperties::Single;
+	properties_.color = ui->m_color_pb->palette().color(QPalette::Button);
+	properties_.style = static_cast<Qt::PenStyle>(ui->m_line_style_cb->itemData(ui->m_line_style_cb->currentIndex()).toInt());
+	properties_.text = ui -> m_text_le -> text();
+	properties_.text_size = ui -> m_text_size_sb -> value();
+	properties_.verti_rotate_text = m_verti_select -> value();
+	properties_.horiz_rotate_text = m_horiz_select -> value();
+	properties_.singleLineProperties.hasGround = ui -> m_earth_cb -> isChecked();
+	properties_.singleLineProperties.hasNeutral = ui -> m_neutral_cb -> isChecked();
+	properties_.singleLineProperties.is_pen = ui -> m_pen_cb -> isChecked();
+	properties_.singleLineProperties.setPhasesCount(ui -> m_phase_cb -> isChecked() ? ui -> m_phase_sb -> value() : 0);
+
+	return properties_;
+}
+
+/**
+ * @brief ConductorPropertiesWidget::setReadOnly
+ * @param ro if true this widget is disabled
+ */
+void ConductorPropertiesWidget::setReadOnly(const bool &ro) {
+	this->setDisabled(ro);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::initWidget
+ */
+void ConductorPropertiesWidget::initWidget() {
+	m_verti_select = QETApp::createTextOrientationSpinBoxWidget();
+	ui -> m_text_angle_gl -> addWidget(m_verti_select, 2, 0,  Qt::AlignHCenter);
+	m_horiz_select = QETApp::createTextOrientationSpinBoxWidget();
+	ui -> m_text_angle_gl -> addWidget(m_horiz_select, 2, 1,  Qt::AlignHCenter);
+
+	ui -> m_line_style_cb -> addItem(tr("Trait plein", "conductor style: solid line"), Qt::SolidLine);
+	ui -> m_line_style_cb -> addItem(tr("Trait en pointill\351s", "conductor style: dashed line"), Qt::DashLine);
+	ui -> m_line_style_cb -> addItem(tr("Traits et points", "conductor style: dashed and dotted line"), Qt::DashDotLine);
+
+	ui -> m_update_preview_pb -> setHidden(true);
+	//Check this checkbox for init the associated groupbox
+	ui -> m_single_rb -> setChecked(true);
+	ui -> m_multi_rb -> setChecked(true);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::setConductorType
+ * Update this widget to the new conductor type
+ * @param type
+ */
+void ConductorPropertiesWidget::setConductorType(ConductorProperties::ConductorType type) {
+	switch (type) {
+		case ConductorProperties::Simple:
+			ui -> m_simple_rb -> setChecked(true);
+			break;
+		case ConductorProperties::Multi:
+			ui -> m_multi_rb -> setChecked(true);
+			break;
+		case ConductorProperties::Single:
+			ui -> m_single_rb -> setChecked(true);
+			break;
+		default:
+			ui -> m_multi_rb -> setChecked(true);
+			break;
+	}
+}
+
+/**
+ * @brief ConductorPropertiesWidget::updatePreview
+ * Update the preview for single lien
+ * @param b true: update from the value displayed by this widget
+ *          false: update from the properties given at the constructor of this widget
+ */
+void ConductorPropertiesWidget::updatePreview(bool b) {
+	const QRect pixmap_rect(0, 0, 96, 96);
+	QPixmap pixmap(pixmap_rect.width(), pixmap_rect.height());
+	QPainter painter;
+	painter.begin(&pixmap);
+	painter.eraseRect(pixmap_rect);
+	painter.drawRect(pixmap_rect.adjusted(0,0,-1,-1));
+	painter.drawLine(QLineF(0, pixmap_rect.height() / 2, pixmap_rect.width(), pixmap_rect.height() / 2));
+
+	if (b) properties().singleLineProperties.draw(&painter, QET::Horizontal, pixmap_rect);
+	else   m_properties.singleLineProperties.draw(&painter, QET::Horizontal, pixmap_rect);
+
+	painter.end();
+	ui -> m_preview_label -> setPixmap(pixmap);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::on_m_earth_cb_toggled
+ * Update the widget when toggled
+ * @param checked
+ */
+void ConductorPropertiesWidget::on_m_earth_cb_toggled(bool checked) {
+	if (checked && ui -> m_neutral_cb -> isChecked())
+		 ui -> m_pen_cb -> setEnabled(true);
+	else ui -> m_pen_cb -> setDisabled(true);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::on_m_neutral_cb_toggled
+ * Update the widget when toggled
+ * @param checked
+ */
+void ConductorPropertiesWidget::on_m_neutral_cb_toggled(bool checked) {
+	if (checked && ui -> m_earth_cb -> isChecked())
+		ui -> m_pen_cb -> setEnabled(true);
+   else ui -> m_pen_cb -> setDisabled(true);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::on_m_color_pb_clicked
+ * Open a color dialog, for choose the color of conductor
+ */
+void ConductorPropertiesWidget::on_m_color_pb_clicked() {
+	QColor color = QColorDialog::getColor(m_properties.color, this);
+	if (color.isValid())
+		setColorButton(color);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::setColorButton
+ * Set m_color_pb to @color
+ * @param color
+ */
+void ConductorPropertiesWidget::setColorButton(const QColor &color) {
+	QPalette palette;
+	palette.setColor(QPalette::Button, color);
+	ui -> m_color_pb -> setPalette(palette);
+}
+
+/**
+ * @brief ConductorPropertiesWidget::on_m_update_preview_pb_clicked
+ * Update the preview of single line.
+ * m_update_preview_pb is a no used button and hidden, his role is only
+ * to centralize signal from various widget to edit single ligne properties,
+ * for update the preview
+ */
+void ConductorPropertiesWidget::on_m_update_preview_pb_clicked() {
+	updatePreview();
+}

Added: trunk/sources/ui/conductorpropertieswidget.h
===================================================================
--- trunk/sources/ui/conductorpropertieswidget.h	                        (rev 0)
+++ trunk/sources/ui/conductorpropertieswidget.h	2014-07-17 09:20:21 UTC (rev 3216)
@@ -0,0 +1,64 @@
+/*
+	Copyright 2006-2014 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 CONDUCTORPROPERTIESWIDGET_H
+#define CONDUCTORPROPERTIESWIDGET_H
+
+#include <QWidget>
+#include "conductorproperties.h"
+class QTextOrientationSpinBoxWidget;
+
+namespace Ui {
+	class ConductorPropertiesWidget;
+}
+
+class ConductorPropertiesWidget : public QWidget
+{
+		Q_OBJECT
+
+	public:
+		explicit ConductorPropertiesWidget(QWidget *parent = 0);
+		explicit ConductorPropertiesWidget(const ConductorProperties &properties, QWidget *parent = 0);
+		~ConductorPropertiesWidget();
+
+	//METHODS
+		void setProperties(const ConductorProperties &properties);
+		ConductorProperties properties() const;
+		void setReadOnly(const bool &ro);
+
+	private:
+		void initWidget();
+		void setConductorType(ConductorProperties::ConductorType type);
+
+	//SLOTS
+	public slots:
+		void updatePreview(bool b = true);
+
+	private slots:
+		void on_m_earth_cb_toggled(bool checked);
+		void on_m_neutral_cb_toggled(bool checked);
+		void on_m_color_pb_clicked();
+		void setColorButton (const QColor &color);
+		void on_m_update_preview_pb_clicked();
+
+	private:
+		Ui::ConductorPropertiesWidget *ui;
+		ConductorProperties m_properties;
+		QTextOrientationSpinBoxWidget *m_verti_select, *m_horiz_select;
+};
+
+#endif // CONDUCTORPROPERTIESWIDGET_H

Added: trunk/sources/ui/conductorpropertieswidget.ui
===================================================================
--- trunk/sources/ui/conductorpropertieswidget.ui	                        (rev 0)
+++ trunk/sources/ui/conductorpropertieswidget.ui	2014-07-17 09:20:21 UTC (rev 3216)
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ConductorPropertiesWidget</class>
+ <widget class="QWidget" name="ConductorPropertiesWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>430</width>
+    <height>571</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <property name="toolTip">
+   <string comment="Tooltip displaying the meaning of the 'PEN' acronym">Protective Earth Neutral</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QGroupBox" name="m_type_gb">
+     <property name="title">
+      <string>Type de conducteur</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <widget class="QRadioButton" name="m_simple_rb">
+        <property name="text">
+         <string>Simple</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="m_multi_rb">
+        <property name="text">
+         <string>Multifilaire</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="m_multi_gb">
+        <property name="title">
+         <string/>
+        </property>
+        <layout class="QVBoxLayout" name="verticalLayout_3">
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
+          <number>0</number>
+         </property>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout">
+           <item>
+            <widget class="QLabel" name="label">
+             <property name="text">
+              <string>Texte :</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLineEdit" name="m_text_le"/>
+           </item>
+           <item>
+            <widget class="QLabel" name="label_2">
+             <property name="text">
+              <string>Taille :</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QSpinBox" name="m_text_size_sb">
+             <property name="minimum">
+              <number>5</number>
+             </property>
+             <property name="maximum">
+              <number>9</number>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <widget class="QLabel" name="label_3">
+           <property name="text">
+            <string>Rotation du texte de conducteur :</string>
+           </property>
+           <property name="alignment">
+            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <layout class="QGridLayout" name="m_text_angle_gl">
+           <item row="0" column="0">
+            <widget class="QLabel" name="label_4">
+             <property name="text">
+              <string>Vertical</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignCenter</set>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QLabel" name="label_5">
+             <property name="text">
+              <string>Horizontal</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignCenter</set>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="m_single_rb">
+        <property name="text">
+         <string>Unifilaire</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="m_single_gb">
+        <property name="title">
+         <string/>
+        </property>
+        <layout class="QVBoxLayout" name="verticalLayout_4">
+         <property name="spacing">
+          <number>0</number>
+         </property>
+         <property name="leftMargin">
+          <number>9</number>
+         </property>
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
+          <number>0</number>
+         </property>
+         <item>
+          <layout class="QGridLayout" name="gridLayout">
+           <item row="2" column="2">
+            <widget class="QSlider" name="m_phase_slider">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="minimum">
+              <number>1</number>
+             </property>
+             <property name="maximum">
+              <number>3</number>
+             </property>
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="1">
+            <widget class="QCheckBox" name="m_neutral_cb">
+             <property name="text">
+              <string>neutre</string>
+             </property>
+             <property name="icon">
+              <iconset resource="../../qelectrotech.qrc">
+               <normaloff>:/ico/16x16/neutral.png</normaloff>:/ico/16x16/neutral.png</iconset>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="1">
+            <widget class="QCheckBox" name="m_phase_cb">
+             <property name="text">
+              <string>phase</string>
+             </property>
+             <property name="icon">
+              <iconset resource="../../qelectrotech.qrc">
+               <normaloff>:/ico/16x16/phase.png</normaloff>:/ico/16x16/phase.png</iconset>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="3">
+            <widget class="QSpinBox" name="m_phase_sb">
+             <property name="minimum">
+              <number>1</number>
+             </property>
+             <property name="maximum">
+              <number>3</number>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="2">
+            <widget class="QCheckBox" name="m_pen_cb">
+             <property name="toolTip">
+              <string>Protective Earth Neutral</string>
+             </property>
+             <property name="text">
+              <string>PEN</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QCheckBox" name="m_earth_cb">
+             <property name="text">
+              <string>terre</string>
+             </property>
+             <property name="icon">
+              <iconset resource="../../qelectrotech.qrc">
+               <normaloff>:/ico/16x16/ground.png</normaloff>:/ico/16x16/ground.png</iconset>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="0" rowspan="3">
+            <widget class="QLabel" name="m_preview_label">
+             <property name="text">
+              <string>TextLabel</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignCenter</set>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="2">
+            <widget class="QPushButton" name="m_update_preview_pb">
+             <property name="text">
+              <string/>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="title">
+      <string>Apparence du conducteur</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <item row="2" column="1">
+       <widget class="QComboBox" name="m_line_style_cb"/>
+      </item>
+      <item row="0" column="0">
+       <widget class="QLabel" name="label_6">
+        <property name="text">
+         <string>Couleur :</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="m_color_pb">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_7">
+        <property name="text">
+         <string>Style :</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../qelectrotech.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>m_multi_rb</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>m_multi_gb</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>88</x>
+     <y>73</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>54</x>
+     <y>99</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_phase_slider</sender>
+   <signal>valueChanged(int)</signal>
+   <receiver>m_phase_sb</receiver>
+   <slot>setValue(int)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>238</x>
+     <y>324</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>337</x>
+     <y>332</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_phase_sb</sender>
+   <signal>valueChanged(int)</signal>
+   <receiver>m_phase_slider</receiver>
+   <slot>setValue(int)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>356</x>
+     <y>322</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>207</x>
+     <y>325</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_single_rb</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>m_single_gb</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>78</x>
+     <y>192</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>81</x>
+     <y>250</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_phase_cb</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>m_phase_slider</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>152</x>
+     <y>328</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>208</x>
+     <y>329</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_phase_cb</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>m_phase_sb</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>106</x>
+     <y>326</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>338</x>
+     <y>323</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_earth_cb</sender>
+   <signal>clicked()</signal>
+   <receiver>m_update_preview_pb</receiver>
+   <slot>click()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>142</x>
+     <y>249</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>228</x>
+     <y>249</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_neutral_cb</sender>
+   <signal>clicked()</signal>
+   <receiver>m_update_preview_pb</receiver>
+   <slot>click()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>158</x>
+     <y>304</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>269</x>
+     <y>246</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_phase_cb</sender>
+   <signal>clicked()</signal>
+   <receiver>m_update_preview_pb</receiver>
+   <slot>click()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>126</x>
+     <y>340</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>254</x>
+     <y>248</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_pen_cb</sender>
+   <signal>clicked()</signal>
+   <receiver>m_update_preview_pb</receiver>
+   <slot>click()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>222</x>
+     <y>276</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>242</x>
+     <y>245</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>m_phase_sb</sender>
+   <signal>valueChanged(int)</signal>
+   <receiver>m_update_preview_pb</receiver>
+   <slot>click()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>357</x>
+     <y>340</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>305</x>
+     <y>248</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>


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