mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
CSV export : correctly export label
This commit is contained in:
@@ -237,7 +237,7 @@ void DiagramEventAddElement::addElement()
|
|||||||
if (m_diagram->freezeNewConductors() || m_diagram->project()->isFreezeNewConductors()) {
|
if (m_diagram->freezeNewConductors() || m_diagram->project()->isFreezeNewConductors()) {
|
||||||
conductor->setFreezeLabel(true);
|
conductor->setFreezeLabel(true);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
m_diagram -> undoStack().push(undo_object);
|
m_diagram -> undoStack().push(undo_object);
|
||||||
element->setUpFormula();
|
element->setUpFormula();
|
||||||
|
|||||||
@@ -762,11 +762,13 @@ bool DynamicElementTextItem::sceneEventFilter(QGraphicsItem *watched, QEvent *ev
|
|||||||
void DynamicElementTextItem::elementInfoChanged()
|
void DynamicElementTextItem::elementInfoChanged()
|
||||||
{
|
{
|
||||||
DiagramContext dc;
|
DiagramContext dc;
|
||||||
if(elementUseForInfo())
|
Element *element = elementUseForInfo();
|
||||||
dc = elementUseForInfo()->elementInformations();
|
if(element) {
|
||||||
|
dc = element->elementInformations();
|
||||||
|
}
|
||||||
|
|
||||||
QString final_text;
|
QString final_text;
|
||||||
Element *element = elementUseForInfo();
|
|
||||||
|
|
||||||
if (m_text_from == ElementInfo)
|
if (m_text_from == ElementInfo)
|
||||||
{
|
{
|
||||||
@@ -775,14 +777,14 @@ void DynamicElementTextItem::elementInfoChanged()
|
|||||||
if(m_info_name == "label")
|
if(m_info_name == "label")
|
||||||
{
|
{
|
||||||
setupFormulaConnection();
|
setupFormulaConnection();
|
||||||
|
|
||||||
if (dc.value("formula").toString().isEmpty())
|
if (element) {
|
||||||
final_text = dc.value(m_info_name).toString();
|
final_text = element->actualLabel();
|
||||||
else
|
}
|
||||||
final_text = autonum::AssignVariables::formulaToLabel(dc.value("formula").toString(), element->rSequenceStruct(), element->diagram(), element);
|
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
final_text = dc.value(m_info_name).toString();
|
final_text = dc.value(m_info_name).toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (m_text_from == CompositeText)
|
else if (m_text_from == CompositeText)
|
||||||
{
|
{
|
||||||
@@ -1040,20 +1042,18 @@ void DynamicElementTextItem::updateLabel()
|
|||||||
(m_text_from == CompositeText && m_composite_text.contains("%{label}")))
|
(m_text_from == CompositeText && m_composite_text.contains("%{label}")))
|
||||||
{
|
{
|
||||||
DiagramContext dc;
|
DiagramContext dc;
|
||||||
if(elementUseForInfo())
|
Element *element = elementUseForInfo();
|
||||||
dc = elementUseForInfo()->elementInformations();
|
if(element) {
|
||||||
|
dc = element->elementInformations();
|
||||||
|
}
|
||||||
|
|
||||||
Element *element = elementUseForInfo();
|
|
||||||
|
if(m_text_from == ElementInfo && element) {
|
||||||
if(m_text_from == ElementInfo)
|
setPlainText(element->actualLabel());
|
||||||
{
|
|
||||||
if(dc.value("formula").toString().isEmpty())
|
|
||||||
setPlainText(dc.value("label").toString());
|
|
||||||
else
|
|
||||||
setPlainText(autonum::AssignVariables::formulaToLabel(dc.value("formula").toString(), element->rSequenceStruct(), element->diagram(), element));
|
|
||||||
}
|
}
|
||||||
else if (m_text_from == CompositeText)
|
else if (m_text_from == CompositeText) {
|
||||||
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, dc));
|
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, dc));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1172,7 +1172,7 @@ QString DynamicElementTextItem::reportReplacedCompositeText() const
|
|||||||
{
|
{
|
||||||
Element *elmt = m_other_report.data();
|
Element *elmt = m_other_report.data();
|
||||||
QString label = m_report_formula;
|
QString label = m_report_formula;
|
||||||
label = autonum::AssignVariables::formulaToLabel(label, elmt->rSequenceStruct(), elmt->diagram(), elmt);
|
label = elmt->actualLabel();
|
||||||
string.replace("%{label}", label);
|
string.replace("%{label}", label);
|
||||||
}
|
}
|
||||||
if (m_watched_conductor)
|
if (m_watched_conductor)
|
||||||
|
|||||||
@@ -1419,7 +1419,10 @@ QString Element::linkTypeToString() const
|
|||||||
*/
|
*/
|
||||||
void Element::setElementInformations(DiagramContext dc)
|
void Element::setElementInformations(DiagramContext dc)
|
||||||
{
|
{
|
||||||
if (m_element_informations == dc) return;
|
if (m_element_informations == dc) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
DiagramContext old_info = m_element_informations;
|
DiagramContext old_info = m_element_informations;
|
||||||
m_element_informations = dc;
|
m_element_informations = dc;
|
||||||
emit elementInfoChange(old_info, m_element_informations);
|
emit elementInfoChange(old_info, m_element_informations);
|
||||||
@@ -1480,7 +1483,7 @@ void Element::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
|||||||
* @param e QGraphicsSceneHoverEvent
|
* @param e QGraphicsSceneHoverEvent
|
||||||
*/
|
*/
|
||||||
void Element::hoverEnterEvent(QGraphicsSceneHoverEvent *e) {
|
void Element::hoverEnterEvent(QGraphicsSceneHoverEvent *e) {
|
||||||
Q_UNUSED(e);
|
Q_UNUSED(e)
|
||||||
|
|
||||||
foreach (Element *elmt, linkedElements())
|
foreach (Element *elmt, linkedElements())
|
||||||
elmt -> setHighlighted(true);
|
elmt -> setHighlighted(true);
|
||||||
@@ -1497,7 +1500,7 @@ void Element::hoverEnterEvent(QGraphicsSceneHoverEvent *e) {
|
|||||||
* @param e QGraphicsSceneHoverEvent
|
* @param e QGraphicsSceneHoverEvent
|
||||||
*/
|
*/
|
||||||
void Element::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) {
|
void Element::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) {
|
||||||
Q_UNUSED(e);
|
Q_UNUSED(e)
|
||||||
|
|
||||||
foreach (Element *elmt, linkedElements())
|
foreach (Element *elmt, linkedElements())
|
||||||
elmt -> setHighlighted(false);
|
elmt -> setHighlighted(false);
|
||||||
@@ -1536,8 +1539,7 @@ void Element::setUpFormula(bool code_letter)
|
|||||||
if(!m_freeze_label && !formula.isEmpty())
|
if(!m_freeze_label && !formula.isEmpty())
|
||||||
{
|
{
|
||||||
DiagramContext dc = m_element_informations;
|
DiagramContext dc = m_element_informations;
|
||||||
QString label = autonum::AssignVariables::formulaToLabel(formula, m_autoNum_seq, diagram(), this);
|
m_element_informations.addValue("label", actualLabel());
|
||||||
m_element_informations.addValue("label", label);
|
|
||||||
emit elementInfoChange(dc, m_element_informations);
|
emit elementInfoChange(dc, m_element_informations);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1576,7 +1578,22 @@ void Element::freezeNewAddedElement() {
|
|||||||
if (this->diagram()->freezeNewElements() || this->diagram()->project()->isFreezeNewElements()) {
|
if (this->diagram()->freezeNewElements() || this->diagram()->project()->isFreezeNewElements()) {
|
||||||
freezeLabel(true);
|
freezeLabel(true);
|
||||||
}
|
}
|
||||||
else return;
|
else return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Element::actualLabel
|
||||||
|
* Always return the current label to be displayed.
|
||||||
|
* This function is usefull when label is based on formula, because label can change at any time.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
QString Element::actualLabel()
|
||||||
|
{
|
||||||
|
if (m_element_informations.value("formula").toString().isEmpty()) {
|
||||||
|
return m_element_informations.value("label").toString();
|
||||||
|
} else {
|
||||||
|
return autonum::AssignVariables::formulaToLabel(m_element_informations.value("formula").toString(), m_autoNum_seq, diagram(), this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ class Element : public QetGraphicsItem
|
|||||||
void freezeLabel(bool freeze);
|
void freezeLabel(bool freeze);
|
||||||
bool isFreezeLabel() const {return m_freeze_label;}
|
bool isFreezeLabel() const {return m_freeze_label;}
|
||||||
void freezeNewAddedElement();
|
void freezeNewAddedElement();
|
||||||
|
QString actualLabel();
|
||||||
|
|
||||||
QString name() const override;
|
QString name() const override;
|
||||||
ElementsLocation location() const;
|
ElementsLocation location() const;
|
||||||
|
|||||||
@@ -426,6 +426,9 @@ QHash<QString, QString> BOMExportDialog::elementInfoToString(Element *elmt) cons
|
|||||||
else if (key == "designation_qty") {
|
else if (key == "designation_qty") {
|
||||||
hash.insert(key, key);
|
hash.insert(key, key);
|
||||||
}
|
}
|
||||||
|
else if (key == "label") {
|
||||||
|
hash.insert(key, elmt->actualLabel());
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
hash.insert(key, elmt->elementInformations()[keys_hash.value(key)].toString());
|
hash.insert(key, elmt->elementInformations()[keys_hash.value(key)].toString());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,19 +219,11 @@ void LinkSingleElementWidget::buildTree()
|
|||||||
{
|
{
|
||||||
QStringList search_list;
|
QStringList search_list;
|
||||||
QStringList str_list;
|
QStringList str_list;
|
||||||
|
|
||||||
QString formula = elmt->elementInformations()["formula"].toString();
|
str_list << elmt->actualLabel();
|
||||||
if(!formula.isEmpty())
|
if(!str_list.last().isEmpty()) {
|
||||||
{
|
search_list << str_list.last();
|
||||||
str_list << autonum::AssignVariables::formulaToLabel(formula, elmt->rSequenceStruct(), elmt->diagram(), elmt);
|
}
|
||||||
search_list << str_list.last();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
str_list << elmt->elementInformations()["label"].toString();
|
|
||||||
if(!str_list.last().isEmpty())
|
|
||||||
search_list << str_list.last();
|
|
||||||
}
|
|
||||||
|
|
||||||
str_list << elmt->elementInformations()["comment"].toString();
|
str_list << elmt->elementInformations()["comment"].toString();
|
||||||
if (!str_list.last().isEmpty())
|
if (!str_list.last().isEmpty())
|
||||||
|
|||||||
Reference in New Issue
Block a user