diff --git a/sources/conductor.cpp b/sources/conductor.cpp index 3e1937ad0..0388b1a80 100644 --- a/sources/conductor.cpp +++ b/sources/conductor.cpp @@ -452,7 +452,16 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi qp -> setRenderHint(QPainter::Antialiasing, false); // determine la couleur du conducteur - QColor final_conductor_color = isSelected() ? Qt::red : properties_.color; + QColor final_conductor_color(properties_.color); + if (isSelected()) { + final_conductor_color = Qt::red; + } else { + if (Diagram *parent_diagram = diagram()) { + if (!parent_diagram -> drawColoredConductors()) { + final_conductor_color = Qt::black; + } + } + } // affectation du QPen et de la QBrush modifies au QPainter qp -> setBrush(conductor_brush); diff --git a/sources/diagram.cpp b/sources/diagram.cpp index 71498c986..d5534538f 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -41,6 +41,7 @@ Diagram::Diagram(QObject *parent) : use_border(true), moved_elements_fetched(false), draw_terminals(true), + draw_colored_conductors_(true), project_(0), read_only_(false) { @@ -927,6 +928,15 @@ void Diagram::setDrawTerminals(bool dt) { } } +/** + Definit s'il faut respecter ou non les couleurs des conducteurs. + Si non, les conducteurs sont tous dessines en noir. + @param dcc true pour respecter les couleurs, false sinon +*/ +void Diagram::setDrawColoredConductors(bool dcc) { + draw_colored_conductors_ = dcc; +} + /** @return la liste des conducteurs selectionnes sur le schema */ diff --git a/sources/diagram.h b/sources/diagram.h index 7895cb26e..882ac9683 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -81,6 +81,7 @@ class Diagram : public QGraphicsScene { QGIManager *qgi_manager; QUndoStack *undo_stack; bool draw_terminals; + bool draw_colored_conductors_; QDomDocument xml_document; QETProject *project_; bool read_only_; @@ -137,6 +138,8 @@ class Diagram : public QGraphicsScene { bool drawTerminals() const; void setDrawTerminals(bool); + bool drawColoredConductors() const; + void setDrawColoredConductors(bool); QRectF border() const; QString title() const; @@ -300,4 +303,9 @@ inline bool Diagram::drawTerminals() const { return(draw_terminals); } +/// @return true si les couleurs des conducteurs sont respectees, false sinon +inline bool Diagram::drawColoredConductors() const { + return(draw_colored_conductors_); +} + #endif diff --git a/sources/exportdialog.cpp b/sources/exportdialog.cpp index 8dd0c2aea..8790505ba 100644 --- a/sources/exportdialog.cpp +++ b/sources/exportdialog.cpp @@ -313,6 +313,7 @@ void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) { static bool state_drawInset; static bool state_drawGrid; static bool state_drawTerm; + static bool state_drawColCond; static bool state_useBorder; if (save) { @@ -321,12 +322,14 @@ void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) { state_drawInset = diagram -> border_and_inset.insetIsDisplayed(); state_drawGrid = diagram -> displayGrid(); state_drawTerm = diagram -> drawTerminals(); + state_drawColCond = diagram -> drawColoredConductors(); state_useBorder = diagram -> useBorder(); ExportProperties export_properties = epw -> exportProperties(); diagram -> setUseBorder (export_properties.exported_area == QET::BorderArea); diagram -> setDrawTerminals (export_properties.draw_terminals); + diagram -> setDrawColoredConductors (export_properties.draw_colored_conductors); diagram -> setDisplayGrid (export_properties.draw_grid); diagram -> border_and_inset.displayBorder(export_properties.draw_border); diagram -> border_and_inset.displayInset (export_properties.draw_inset); @@ -336,6 +339,7 @@ void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) { diagram -> border_and_inset.displayInset(state_drawInset); diagram -> setDisplayGrid(state_drawGrid); diagram -> setDrawTerminals(state_drawTerm); + diagram -> setDrawColoredConductors(state_drawColCond); diagram -> setUseBorder(state_useBorder); } } diff --git a/sources/exportproperties.cpp b/sources/exportproperties.cpp index f0bafbc1b..412f77f2e 100644 --- a/sources/exportproperties.cpp +++ b/sources/exportproperties.cpp @@ -33,6 +33,7 @@ ExportProperties::ExportProperties() : draw_border(true), draw_inset(true), draw_terminals(false), + draw_colored_conductors(true), exported_area(QET::BorderArea) { } @@ -49,13 +50,14 @@ ExportProperties::~ExportProperties() { @param prefix prefixe a ajouter devant les noms des parametres */ void ExportProperties::toSettings(QSettings &settings, const QString &prefix) const { - settings.setValue(prefix + "path", QDir::toNativeSeparators(destination_directory.absolutePath())); - settings.setValue(prefix + "format", format); - settings.setValue(prefix + "drawgrid", draw_grid); - settings.setValue(prefix + "drawborder", draw_border); - settings.setValue(prefix + "drawinset", draw_inset); - settings.setValue(prefix + "drawterminals", draw_terminals); - settings.setValue(prefix + "area", QET::diagramAreaToString(exported_area)); + settings.setValue(prefix + "path", QDir::toNativeSeparators(destination_directory.absolutePath())); + settings.setValue(prefix + "format", format); + settings.setValue(prefix + "drawgrid", draw_grid); + settings.setValue(prefix + "drawborder", draw_border); + settings.setValue(prefix + "drawinset", draw_inset); + settings.setValue(prefix + "drawterminals", draw_terminals); + settings.setValue(prefix + "drawcoloredconductors", draw_colored_conductors); + settings.setValue(prefix + "area", QET::diagramAreaToString(exported_area)); } /** @@ -70,10 +72,11 @@ void ExportProperties::fromSettings(QSettings &settings, const QString &prefix) format = settings.value(prefix + "format").toString(); - draw_grid = settings.value(prefix + "drawgrid", false).toBool(); - draw_border = settings.value(prefix + "drawborder", true ).toBool(); - draw_inset = settings.value(prefix + "drawinset", true ).toBool(); - draw_terminals = settings.value(prefix + "drawterminals", false).toBool(); + draw_grid = settings.value(prefix + "drawgrid", false).toBool(); + draw_border = settings.value(prefix + "drawborder", true ).toBool(); + draw_inset = settings.value(prefix + "drawinset", true ).toBool(); + draw_terminals = settings.value(prefix + "drawterminals", false).toBool(); + draw_colored_conductors = settings.value(prefix + "drawcoloredconductors", true ).toBool(); exported_area = QET::diagramAreaFromString(settings.value(prefix + "area", "border").toString()); } diff --git a/sources/exportproperties.h b/sources/exportproperties.h index ab83d8e8b..c9731d970 100644 --- a/sources/exportproperties.h +++ b/sources/exportproperties.h @@ -43,6 +43,7 @@ class ExportProperties { bool draw_border; ///< Faut-il dessiner le cadre ? bool draw_inset; ///< Faut-il dessiner le cartouche ? bool draw_terminals; ///< Faut-il dessiner les bornes ? + bool draw_colored_conductors; ///< Faut-il respecter les couleurs des conducteurs ? QET::DiagramArea exported_area; ///< Zone du schema a exporter }; #endif diff --git a/sources/exportpropertieswidget.cpp b/sources/exportpropertieswidget.cpp index 8928fe0fb..de8f0cde4 100644 --- a/sources/exportpropertieswidget.cpp +++ b/sources/exportpropertieswidget.cpp @@ -46,13 +46,14 @@ ExportPropertiesWidget::~ExportPropertiesWidget() { ExportProperties ExportPropertiesWidget::exportProperties() const { ExportProperties export_properties; - export_properties.destination_directory = QDir(dirpath -> text()); - export_properties.format = format -> itemData(format -> currentIndex()).toString(); - export_properties.draw_grid = draw_grid -> isChecked(); - export_properties.draw_border = draw_border -> isChecked(); - export_properties.draw_inset = draw_inset -> isChecked(); - export_properties.draw_terminals = draw_terminals -> isChecked(); - export_properties.exported_area = export_border -> isChecked() ? QET::BorderArea : QET::ElementsArea; + export_properties.destination_directory = QDir(dirpath -> text()); + export_properties.format = format -> itemData(format -> currentIndex()).toString(); + export_properties.draw_grid = draw_grid -> isChecked(); + export_properties.draw_border = draw_border -> isChecked(); + export_properties.draw_inset = draw_inset -> isChecked(); + export_properties.draw_terminals = draw_terminals -> isChecked(); + export_properties.draw_colored_conductors = draw_colored_conductors -> isChecked(); + export_properties.exported_area = export_border -> isChecked() ? QET::BorderArea : QET::ElementsArea; return(export_properties); } @@ -67,10 +68,11 @@ void ExportPropertiesWidget::setExportProperties(const ExportProperties &export_ if (index == -1) index = 0; format -> setCurrentIndex(index); - draw_grid -> setChecked(export_properties.draw_grid); - draw_border -> setChecked(export_properties.draw_border); - draw_inset -> setChecked(export_properties.draw_inset); - draw_terminals -> setChecked(export_properties.draw_terminals); + draw_grid -> setChecked(export_properties.draw_grid); + draw_border -> setChecked(export_properties.draw_border); + draw_inset -> setChecked(export_properties.draw_inset); + draw_terminals -> setChecked(export_properties.draw_terminals); + draw_colored_conductors -> setChecked(export_properties.draw_colored_conductors); if (export_properties.exported_area == QET::BorderArea) { export_border -> setChecked(true); @@ -156,7 +158,11 @@ void ExportPropertiesWidget::build() { // dessiner les bornes draw_terminals = new QCheckBox(tr("Dessiner les bornes"), groupbox_options); optionshlayout -> addWidget(draw_terminals, 2, 1); - + + // conserver les couleurs des conducteurs + draw_colored_conductors = new QCheckBox(tr("Conserver les couleurs des conducteurs"), groupbox_options); + optionshlayout -> addWidget(draw_colored_conductors, 3, 0); + vboxLayout -> addWidget(groupbox_options); vboxLayout -> addStretch(); @@ -170,7 +176,8 @@ void ExportPropertiesWidget::build() { setTabOrder(draw_border, draw_grid); setTabOrder(draw_grid, draw_inset); setTabOrder(draw_inset, draw_terminals); - + setTabOrder(draw_terminals, draw_colored_conductors); + // connexion du bouton permettant le choix du repertoire connect(button_browse, SIGNAL(released()), this, SLOT(slot_chooseADirectory())); diff --git a/sources/exportpropertieswidget.h b/sources/exportpropertieswidget.h index 7806904aa..17319e620 100644 --- a/sources/exportpropertieswidget.h +++ b/sources/exportpropertieswidget.h @@ -59,6 +59,7 @@ class ExportPropertiesWidget : public QWidget { QCheckBox *draw_border; QCheckBox *draw_inset; QCheckBox *draw_terminals; + QCheckBox *draw_colored_conductors; QRadioButton *export_border; QRadioButton *export_elements; QButtonGroup *exported_content_choices;