2007-12-01 10:47:15 +00:00
|
|
|
/*
|
2014-01-29 18:37:45 +00:00
|
|
|
Copyright 2006-2014 The QElectroTech Team
|
2007-12-01 10:47:15 +00:00
|
|
|
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/>.
|
|
|
|
*/
|
2007-06-30 17:41:07 +00:00
|
|
|
#include "styleeditor.h"
|
|
|
|
#include "customelementgraphicpart.h"
|
|
|
|
|
2007-12-05 21:16:01 +00:00
|
|
|
/**
|
|
|
|
Constructeur
|
|
|
|
@param editor L'editeur d'element concerne
|
|
|
|
@param p La partie a editer
|
|
|
|
@param parent le Widget parent
|
|
|
|
*/
|
2010-02-18 00:42:41 +00:00
|
|
|
StyleEditor::StyleEditor(QETElementEditor *editor, CustomElementGraphicPart *p, QWidget *parent) :
|
|
|
|
ElementItemEditor(editor, parent),
|
|
|
|
part(p)
|
|
|
|
{
|
2007-06-30 17:41:07 +00:00
|
|
|
// couleur
|
2013-06-23 19:16:14 +00:00
|
|
|
outline_color = new QComboBox(this);
|
|
|
|
outline_color -> addItem(tr("Noir", "element part color"), CustomElementGraphicPart::BlackColor);
|
|
|
|
outline_color -> addItem(tr("Blanc", "element part color"), CustomElementGraphicPart::WhiteColor);
|
|
|
|
outline_color -> addItem(tr("Vert", "element part color"), CustomElementGraphicPart::GreenColor);
|
|
|
|
outline_color -> addItem(tr("Rouge", "element part color"), CustomElementGraphicPart::RedColor);
|
|
|
|
outline_color -> addItem(tr("Bleu", "element part color"), CustomElementGraphicPart::BlueColor);
|
2013-05-29 09:02:26 +00:00
|
|
|
|
2007-06-30 17:41:07 +00:00
|
|
|
// style
|
2013-12-19 23:47:57 +00:00
|
|
|
line_style = new QComboBox(this);
|
|
|
|
line_style -> addItem(tr("Normal", "element part line style"), CustomElementGraphicPart::NormalStyle);
|
|
|
|
line_style -> addItem(tr("Tiret", "element part line style"), CustomElementGraphicPart::DashedStyle);
|
|
|
|
line_style -> addItem(tr("Pointill\351", "element part line style"), CustomElementGraphicPart::DottedStyle);
|
|
|
|
line_style -> addItem(tr("Traits et points", "element part line style"), CustomElementGraphicPart::DashdottedStyle);
|
|
|
|
//normal_style -> setChecked(true);
|
2007-06-30 17:41:07 +00:00
|
|
|
|
|
|
|
// epaisseur
|
2013-12-19 15:22:12 +00:00
|
|
|
size_weight = new QComboBox(this);
|
|
|
|
size_weight -> addItem(tr("Nulle", "element part weight"), CustomElementGraphicPart::NoneWeight);
|
|
|
|
size_weight -> addItem(tr("Fine", "element part weight"), CustomElementGraphicPart::ThinWeight);
|
|
|
|
size_weight -> addItem(tr("Normale", "element part weight"), CustomElementGraphicPart::NormalWeight);
|
|
|
|
size_weight -> addItem(tr("Forte", "element part weight"), CustomElementGraphicPart::UltraWeight);
|
|
|
|
size_weight -> addItem(tr("\311lev\351", "element part weight"), CustomElementGraphicPart::BigWeight);
|
|
|
|
|
2007-06-30 17:41:07 +00:00
|
|
|
// remplissage
|
2013-06-23 19:16:14 +00:00
|
|
|
filling_color = new QComboBox (this);
|
|
|
|
filling_color -> addItem(tr("Aucun", "element part filling"), CustomElementGraphicPart::NoneFilling);
|
|
|
|
filling_color -> addItem(tr("Noir", "element part filling"), CustomElementGraphicPart::BlackFilling);
|
|
|
|
filling_color -> addItem(tr("Blanc", "element part filling"), CustomElementGraphicPart::WhiteFilling);
|
|
|
|
filling_color -> addItem(tr("Vert", "element part filling"), CustomElementGraphicPart::GreenFilling);
|
|
|
|
filling_color -> addItem(tr("Rouge", "element part filling"), CustomElementGraphicPart::RedFilling);
|
|
|
|
filling_color -> addItem(tr("Bleu", "element part filling"), CustomElementGraphicPart::BlueFilling);
|
2013-05-29 09:02:26 +00:00
|
|
|
|
2007-06-30 17:41:07 +00:00
|
|
|
// antialiasing
|
|
|
|
antialiasing = new QCheckBox(tr("Antialiasing"));
|
|
|
|
|
|
|
|
updateForm();
|
|
|
|
|
|
|
|
main_layout = new QVBoxLayout();
|
2013-06-23 19:16:14 +00:00
|
|
|
main_layout -> setMargin(0);
|
2007-06-30 17:41:07 +00:00
|
|
|
|
2013-06-23 19:16:14 +00:00
|
|
|
main_layout -> addWidget(new QLabel("<u>" + tr("Apparence :") + "</u> "));
|
2007-06-30 17:41:07 +00:00
|
|
|
|
|
|
|
QHBoxLayout *color_layout = new QHBoxLayout();
|
2013-06-23 19:16:14 +00:00
|
|
|
color_layout -> addWidget(new QLabel(tr("Contour :")), 0, Qt::AlignRight);
|
|
|
|
color_layout -> addWidget(outline_color);
|
|
|
|
color_layout -> addSpacing(10);
|
|
|
|
color_layout -> addWidget(new QLabel(tr("Remplissage :")), 0, Qt::AlignRight);
|
|
|
|
color_layout -> addWidget(filling_color);
|
2012-02-24 21:26:24 +00:00
|
|
|
main_layout -> addLayout(color_layout);
|
2007-06-30 17:41:07 +00:00
|
|
|
|
|
|
|
QHBoxLayout *style_layout = new QHBoxLayout();
|
2013-12-19 23:47:57 +00:00
|
|
|
style_layout -> addWidget(new QLabel(tr("Style : ")), 0, Qt::AlignRight);
|
|
|
|
style_layout -> addWidget(line_style);
|
2013-12-26 14:08:35 +00:00
|
|
|
style_layout -> addSpacing(10);
|
|
|
|
style_layout -> addWidget(new QLabel(tr("\311paisseur : ")), 0, Qt::AlignRight);
|
|
|
|
style_layout -> addWidget(size_weight);
|
2012-02-24 21:26:24 +00:00
|
|
|
main_layout -> addLayout(style_layout);
|
2013-12-19 23:47:57 +00:00
|
|
|
|
|
|
|
main_layout -> addWidget(antialiasing);
|
2013-06-23 19:16:14 +00:00
|
|
|
|
|
|
|
main_layout -> addSpacing(10);
|
|
|
|
main_layout -> addWidget(new QLabel("<u>" + tr("G\351om\351trie :") + "</u> "));
|
2007-06-30 17:41:07 +00:00
|
|
|
main_layout -> addStretch();
|
|
|
|
setLayout(main_layout);
|
|
|
|
}
|
|
|
|
|
2007-12-05 21:16:01 +00:00
|
|
|
/// Destructeur
|
2007-06-30 17:41:07 +00:00
|
|
|
StyleEditor::~StyleEditor() {
|
|
|
|
}
|
2007-12-05 21:16:01 +00:00
|
|
|
/**
|
2014-05-29 13:46:04 +00:00
|
|
|
* @brief StyleEditor::updatePart
|
|
|
|
* Update the part from the content of the form
|
|
|
|
*/
|
2007-06-30 17:41:07 +00:00
|
|
|
void StyleEditor::updatePart() {
|
2010-02-18 00:42:41 +00:00
|
|
|
if (!part) return;
|
2014-05-29 13:46:04 +00:00
|
|
|
part->setProperty("antialias", antialiasing -> isChecked());
|
|
|
|
part->setProperty("color", outline_color -> itemData(outline_color -> currentIndex()));
|
|
|
|
part->setProperty("line_style", line_style -> itemData(line_style -> currentIndex()));
|
|
|
|
part->setProperty("line_weight", size_weight -> itemData(size_weight -> currentIndex()));
|
|
|
|
part->setProperty("filling", filling_color -> itemData(filling_color -> currentIndex()));
|
2007-06-30 17:41:07 +00:00
|
|
|
}
|
|
|
|
|
2014-05-29 13:46:04 +00:00
|
|
|
/// Update antialiasing with undo command
|
2011-02-25 06:26:18 +00:00
|
|
|
void StyleEditor::updatePartAntialiasing() { addChangePartCommand(tr("style antialiasing"), part, "antialias", antialiasing -> isChecked()); }
|
2014-05-29 13:46:04 +00:00
|
|
|
/// Update color with undo command
|
|
|
|
void StyleEditor::updatePartColor() { addChangePartCommand(tr("style couleur"), part, "color", outline_color->itemData(outline_color -> currentIndex()));}
|
|
|
|
/// Update style with undo command
|
|
|
|
void StyleEditor::updatePartLineStyle() { addChangePartCommand(tr("style ligne"), part, "line_style", line_style->itemData(line_style -> currentIndex()));}
|
|
|
|
/// Update weight with undo command
|
|
|
|
void StyleEditor::updatePartLineWeight() { addChangePartCommand(tr("style epaisseur"), part, "line_weight", size_weight->itemData(size_weight -> currentIndex()));}
|
|
|
|
/// Update color filling with undo command
|
|
|
|
void StyleEditor::updatePartFilling() { addChangePartCommand(tr("style remplissage"), part, "filling", filling_color->itemData(filling_color -> currentIndex()));}
|
2007-08-25 03:43:05 +00:00
|
|
|
|
2007-12-05 21:16:01 +00:00
|
|
|
/**
|
2014-05-29 13:46:04 +00:00
|
|
|
* @brief StyleEditor::updateForm
|
|
|
|
* Update the edition form
|
|
|
|
*/
|
2007-06-30 17:41:07 +00:00
|
|
|
void StyleEditor::updateForm() {
|
2010-02-18 00:42:41 +00:00
|
|
|
if (!part) return;
|
2007-08-25 03:43:05 +00:00
|
|
|
activeConnections(false);
|
|
|
|
// lit l'antialiasing
|
2007-06-30 17:41:07 +00:00
|
|
|
antialiasing -> setChecked(part -> antialiased());
|
|
|
|
|
|
|
|
// lit la couleur
|
2013-06-23 19:16:14 +00:00
|
|
|
outline_color -> setCurrentIndex(part -> color());
|
2007-06-30 17:41:07 +00:00
|
|
|
|
|
|
|
// lit le style
|
2013-12-19 23:47:57 +00:00
|
|
|
line_style -> setCurrentIndex(part -> lineStyle());
|
2007-06-30 17:41:07 +00:00
|
|
|
|
|
|
|
// lit l'epaisseur
|
2013-12-19 15:22:12 +00:00
|
|
|
size_weight -> setCurrentIndex(part -> lineWeight());
|
|
|
|
|
2007-06-30 17:41:07 +00:00
|
|
|
// lit le remplissage
|
2013-06-23 19:16:14 +00:00
|
|
|
filling_color -> setCurrentIndex(part -> filling());
|
2007-08-25 03:43:05 +00:00
|
|
|
activeConnections(true);
|
2007-06-30 17:41:07 +00:00
|
|
|
}
|
|
|
|
|
2007-12-05 21:16:01 +00:00
|
|
|
/**
|
2010-02-18 00:42:41 +00:00
|
|
|
Permet de specifier a cet editeur quelle primitive il doit editer. A noter
|
|
|
|
qu'un editeur peut accepter ou refuser d'editer une primitive.
|
|
|
|
L'editeur de ligne acceptera d'editer la primitive new_part s'il s'agit d'un
|
|
|
|
objet de la classe CustomElementGraphicPart.
|
|
|
|
@param new_part Nouvelle primitive a editer
|
|
|
|
@return true si l'editeur a accepter d'editer la primitive, false sinon
|
|
|
|
*/
|
|
|
|
bool StyleEditor::setPart(CustomElementPart *new_part) {
|
|
|
|
if (!new_part) {
|
|
|
|
part = 0;
|
|
|
|
return(true);
|
|
|
|
}
|
|
|
|
if (CustomElementGraphicPart *part_graphic = dynamic_cast<CustomElementGraphicPart *>(new_part)) {
|
|
|
|
part = part_graphic;
|
|
|
|
updateForm();
|
|
|
|
return(true);
|
|
|
|
} else {
|
|
|
|
return(false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
@return la primitive actuellement editee, ou 0 si ce widget n'en edite pas
|
2007-12-05 21:16:01 +00:00
|
|
|
*/
|
2010-02-18 00:42:41 +00:00
|
|
|
CustomElementPart *StyleEditor::currentPart() const {
|
|
|
|
return(part);
|
2007-06-30 17:41:07 +00:00
|
|
|
}
|
2007-08-25 03:43:05 +00:00
|
|
|
|
2007-12-05 21:16:01 +00:00
|
|
|
/**
|
|
|
|
Active ou desactive les connexionx signaux/slots entre les widgets internes.
|
|
|
|
@param active true pour activer les connexions, false pour les desactiver
|
|
|
|
*/
|
2007-08-25 03:43:05 +00:00
|
|
|
void StyleEditor::activeConnections(bool active) {
|
|
|
|
if (active) {
|
2013-06-23 19:16:14 +00:00
|
|
|
connect (outline_color, SIGNAL(activated(int)), this, SLOT(updatePartColor()));
|
2013-12-19 23:47:57 +00:00
|
|
|
connect(line_style, SIGNAL(activated(int)), this, SLOT(updatePartLineStyle()));
|
2013-12-19 15:22:12 +00:00
|
|
|
connect(size_weight, SIGNAL(activated(int)), this, SLOT(updatePartLineWeight()));
|
2013-06-23 19:16:14 +00:00
|
|
|
connect(filling_color, SIGNAL(activated(int)), this, SLOT(updatePartFilling()));
|
2007-08-25 03:43:05 +00:00
|
|
|
connect(antialiasing, SIGNAL(stateChanged(int)), this, SLOT(updatePartAntialiasing()));
|
|
|
|
} else {
|
2013-06-23 19:16:14 +00:00
|
|
|
disconnect(outline_color, SIGNAL(activated(int)), this, SLOT(updatePartColor()));
|
2013-12-19 23:47:57 +00:00
|
|
|
disconnect(line_style, SIGNAL(activated(int)), this, SLOT(updatePartLineStyle()));
|
2013-12-19 15:22:12 +00:00
|
|
|
disconnect(size_weight, SIGNAL(activated(int)), this, SLOT(updatePartLineWeight()));
|
2013-06-23 19:16:14 +00:00
|
|
|
disconnect(filling_color, SIGNAL(activated(int)), this, SLOT(updatePartFilling()));
|
2007-08-25 03:43:05 +00:00
|
|
|
disconnect(antialiasing, SIGNAL(stateChanged(int)), this, SLOT(updatePartAntialiasing()));
|
|
|
|
}
|
|
|
|
}
|