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()) {
|
||||
conductor->setFreezeLabel(true);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
m_diagram -> undoStack().push(undo_object);
|
||||
element->setUpFormula();
|
||||
|
||||
@@ -762,11 +762,13 @@ bool DynamicElementTextItem::sceneEventFilter(QGraphicsItem *watched, QEvent *ev
|
||||
void DynamicElementTextItem::elementInfoChanged()
|
||||
{
|
||||
DiagramContext dc;
|
||||
if(elementUseForInfo())
|
||||
dc = elementUseForInfo()->elementInformations();
|
||||
Element *element = elementUseForInfo();
|
||||
if(element) {
|
||||
dc = element->elementInformations();
|
||||
}
|
||||
|
||||
QString final_text;
|
||||
Element *element = elementUseForInfo();
|
||||
|
||||
|
||||
if (m_text_from == ElementInfo)
|
||||
{
|
||||
@@ -776,14 +778,14 @@ void DynamicElementTextItem::elementInfoChanged()
|
||||
{
|
||||
setupFormulaConnection();
|
||||
|
||||
if (dc.value("formula").toString().isEmpty())
|
||||
final_text = dc.value(m_info_name).toString();
|
||||
else
|
||||
final_text = autonum::AssignVariables::formulaToLabel(dc.value("formula").toString(), element->rSequenceStruct(), element->diagram(), element);
|
||||
if (element) {
|
||||
final_text = element->actualLabel();
|
||||
}
|
||||
else
|
||||
}
|
||||
else {
|
||||
final_text = dc.value(m_info_name).toString();
|
||||
}
|
||||
}
|
||||
else if (m_text_from == CompositeText)
|
||||
{
|
||||
//If the composite have the label variable, we must to make some
|
||||
@@ -1040,21 +1042,19 @@ void DynamicElementTextItem::updateLabel()
|
||||
(m_text_from == CompositeText && m_composite_text.contains("%{label}")))
|
||||
{
|
||||
DiagramContext dc;
|
||||
if(elementUseForInfo())
|
||||
dc = elementUseForInfo()->elementInformations();
|
||||
|
||||
Element *element = elementUseForInfo();
|
||||
|
||||
if(m_text_from == ElementInfo)
|
||||
{
|
||||
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));
|
||||
if(element) {
|
||||
dc = element->elementInformations();
|
||||
}
|
||||
else if (m_text_from == CompositeText)
|
||||
|
||||
|
||||
if(m_text_from == ElementInfo && element) {
|
||||
setPlainText(element->actualLabel());
|
||||
}
|
||||
else if (m_text_from == CompositeText) {
|
||||
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, dc));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1172,7 +1172,7 @@ QString DynamicElementTextItem::reportReplacedCompositeText() const
|
||||
{
|
||||
Element *elmt = m_other_report.data();
|
||||
QString label = m_report_formula;
|
||||
label = autonum::AssignVariables::formulaToLabel(label, elmt->rSequenceStruct(), elmt->diagram(), elmt);
|
||||
label = elmt->actualLabel();
|
||||
string.replace("%{label}", label);
|
||||
}
|
||||
if (m_watched_conductor)
|
||||
|
||||
@@ -1419,7 +1419,10 @@ QString Element::linkTypeToString() const
|
||||
*/
|
||||
void Element::setElementInformations(DiagramContext dc)
|
||||
{
|
||||
if (m_element_informations == dc) return;
|
||||
if (m_element_informations == dc) {
|
||||
return;
|
||||
}
|
||||
|
||||
DiagramContext old_info = m_element_informations;
|
||||
m_element_informations = dc;
|
||||
emit elementInfoChange(old_info, m_element_informations);
|
||||
@@ -1480,7 +1483,7 @@ void Element::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
* @param e QGraphicsSceneHoverEvent
|
||||
*/
|
||||
void Element::hoverEnterEvent(QGraphicsSceneHoverEvent *e) {
|
||||
Q_UNUSED(e);
|
||||
Q_UNUSED(e)
|
||||
|
||||
foreach (Element *elmt, linkedElements())
|
||||
elmt -> setHighlighted(true);
|
||||
@@ -1497,7 +1500,7 @@ void Element::hoverEnterEvent(QGraphicsSceneHoverEvent *e) {
|
||||
* @param e QGraphicsSceneHoverEvent
|
||||
*/
|
||||
void Element::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) {
|
||||
Q_UNUSED(e);
|
||||
Q_UNUSED(e)
|
||||
|
||||
foreach (Element *elmt, linkedElements())
|
||||
elmt -> setHighlighted(false);
|
||||
@@ -1536,8 +1539,7 @@ void Element::setUpFormula(bool code_letter)
|
||||
if(!m_freeze_label && !formula.isEmpty())
|
||||
{
|
||||
DiagramContext dc = m_element_informations;
|
||||
QString label = autonum::AssignVariables::formulaToLabel(formula, m_autoNum_seq, diagram(), this);
|
||||
m_element_informations.addValue("label", label);
|
||||
m_element_informations.addValue("label", actualLabel());
|
||||
emit elementInfoChange(dc, m_element_informations);
|
||||
}
|
||||
}
|
||||
@@ -1579,6 +1581,21 @@ void Element::freezeNewAddedElement() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Element::name
|
||||
* @return the human name of this element
|
||||
|
||||
@@ -100,6 +100,7 @@ class Element : public QetGraphicsItem
|
||||
void freezeLabel(bool freeze);
|
||||
bool isFreezeLabel() const {return m_freeze_label;}
|
||||
void freezeNewAddedElement();
|
||||
QString actualLabel();
|
||||
|
||||
QString name() const override;
|
||||
ElementsLocation location() const;
|
||||
|
||||
@@ -426,6 +426,9 @@ QHash<QString, QString> BOMExportDialog::elementInfoToString(Element *elmt) cons
|
||||
else if (key == "designation_qty") {
|
||||
hash.insert(key, key);
|
||||
}
|
||||
else if (key == "label") {
|
||||
hash.insert(key, elmt->actualLabel());
|
||||
}
|
||||
else {
|
||||
hash.insert(key, elmt->elementInformations()[keys_hash.value(key)].toString());
|
||||
}
|
||||
|
||||
@@ -220,16 +220,8 @@ void LinkSingleElementWidget::buildTree()
|
||||
QStringList search_list;
|
||||
QStringList str_list;
|
||||
|
||||
QString formula = elmt->elementInformations()["formula"].toString();
|
||||
if(!formula.isEmpty())
|
||||
{
|
||||
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())
|
||||
str_list << elmt->actualLabel();
|
||||
if(!str_list.last().isEmpty()) {
|
||||
search_list << str_list.last();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user