add widget to configure rotation conductor text by default (not finish)

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2198 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2013-06-02 21:37:04 +00:00
parent 8fe4b7807f
commit f7478c2051
6 changed files with 45 additions and 5 deletions

View File

@@ -1124,7 +1124,8 @@ void Conductor::calculateTextItemPosition() {
} else {
// positionnement automatique basique
text_item -> setPos(middleSegment() -> middle());
middleSegment() -> isVertical()? text_item -> setRotationAngle(270): text_item -> setRotationAngle(0);
middleSegment() -> isVertical()? text_item -> setRotationAngle(properties_.verti_rotate_text):
text_item -> setRotationAngle(properties_.horiz_rotate_text);
}
}
@@ -1222,6 +1223,7 @@ ConductorProperties Conductor::properties() const {
void Conductor::readProperties() {
// la couleur n'est vraiment applicable que lors du rendu du conducteur
setText(properties_.text);
calculateTextItemPosition();
text_item -> setVisible(properties_.type == ConductorProperties::Multi);
}

View File

@@ -346,6 +346,8 @@ int ConductorProperties::operator==(const ConductorProperties &other) {
other.color == color &&\
other.style == style &&\
other.text == text &&\
other.verti_rotate_text == verti_rotate_text &&\
other.horiz_rotate_text == horiz_rotate_text &&\
other.singleLineProperties == singleLineProperties
);
}
@@ -360,6 +362,8 @@ int ConductorProperties::operator!=(const ConductorProperties &other) {
other.color != color ||\
other.style != style ||\
other.text != text ||\
other.verti_rotate_text != verti_rotate_text ||\
other.horiz_rotate_text != horiz_rotate_text ||\
other.singleLineProperties != singleLineProperties
);
}

View File

@@ -79,6 +79,9 @@ class ConductorProperties {
QColor color;
/// Texte displayed for multiline conductors
QString text;
/// rotation angle texte
double verti_rotate_text;
double horiz_rotate_text;
/// conducteur style (Qt::SolidLine or Qt::DashLine)
Qt::PenStyle style;

View File

@@ -19,6 +19,7 @@
#include <QtGui>
#include "conductor.h"
#include "qeticons.h"
#include "qetapp.h"
/**
Constructeur
@@ -46,7 +47,6 @@ ConductorPropertiesWidget::ConductorPropertiesWidget(const ConductorProperties &
void ConductorPropertiesWidget::buildInterface() {
setFocusPolicy(Qt::StrongFocus);
setMinimumSize(380, 350);
QVBoxLayout *main_layout = new QVBoxLayout(this);
main_layout -> setContentsMargins(0, 0, 0, 0);
@@ -66,6 +66,22 @@ void ConductorPropertiesWidget::buildInterface() {
multiline_layout -> addWidget(text);
multiline_layout -> addWidget(text_field);
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"));
@@ -132,6 +148,7 @@ void ConductorPropertiesWidget::buildInterface() {
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);
@@ -160,6 +177,8 @@ void ConductorPropertiesWidget::buildConnections() {
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()));
}
/**
@@ -204,10 +223,14 @@ void ConductorPropertiesWidget::destroyConnections() {
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()));
}
/// Destructeur
ConductorPropertiesWidget::~ConductorPropertiesWidget() {
delete verti_select;
delete horiz_select;
}
/// Met a jour les proprietes
@@ -216,6 +239,8 @@ void ConductorPropertiesWidget::updateConfig() {
properties_.color = colorButton();
properties_.style = static_cast<Qt::PenStyle>(line_style -> itemData(line_style -> currentIndex()).toInt());
properties_.text = text_field -> text();
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();
@@ -240,6 +265,8 @@ void ConductorPropertiesWidget::updateDisplay() {
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();

View File

@@ -18,6 +18,7 @@
#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
@@ -62,6 +63,8 @@ class ConductorPropertiesWidget : public QWidget {
QRadioButton *simple;
QRadioButton *multiline;
QLineEdit *text_field;
QTextOrientationSpinBoxWidget *verti_select;
QTextOrientationSpinBoxWidget *horiz_select;
QRadioButton *singleline;
QCheckBox *phase_checkbox;
QSlider *phase_slider;

View File

@@ -545,8 +545,6 @@ void DiagramView::editDiagramProperties() {
popup.setWindowFlags(Qt::Sheet);
#endif
popup.setMinimumWidth(786);
popup.setMinimumHeight(500);
popup.setWindowTitle(tr("Propri\351t\351s du sch\351ma", "window title"));
BorderPropertiesWidget *border_infos = new BorderPropertiesWidget(border, &popup);
@@ -588,6 +586,9 @@ void DiagramView::editDiagramProperties() {
layout_v.addLayout(hlayout1);
layout_v.addStretch();
layout_v.addWidget(&boutons);
//workaround to get a good size by default with this widget
popup.setMinimumSize(popup.minimumSizeHint());
// si le dialogue est accepte
if (popup.exec() == QDialog::Accepted && !diagram_is_read_only) {
TitleBlockProperties new_titleblock = titleblock_infos -> titleBlockProperties();