mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Dynamic element text item :
First : If the parent element of the text item is a slave, the info use to create the text (both if option are 'element info' or 'composite text') are taken to the linked master element, and not the slave. If the salve element is not linked, no information is taken. Second : if the text is composed with the variable 'label' of the master (both if text from are 'element info' or 'composite text') double click on the text, act like a link and go to the master. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5035 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -49,6 +49,15 @@ DynamicElementTextItem::DynamicElementTextItem(Element *parent_element) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//If the parent is slave, we keep aware about the changement of master.
|
||||||
|
if(parent_element->linkType() == Element::Slave)
|
||||||
|
{
|
||||||
|
connect(parent_element, &Element::linkedElementChanged, this, &DynamicElementTextItem::masterChanged);
|
||||||
|
//The parent is already linked, wa call master changed for init the connection
|
||||||
|
if(!parent_element->linkedElements().isEmpty())
|
||||||
|
masterChanged();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DynamicElementTextItem::~DynamicElementTextItem()
|
DynamicElementTextItem::~DynamicElementTextItem()
|
||||||
@@ -132,10 +141,11 @@ void DynamicElementTextItem::fromXml(const QDomElement &dom_elmt)
|
|||||||
|
|
||||||
QMetaEnum me = metaObject()->enumerator(metaObject()->indexOfEnumerator("TextFrom"));
|
QMetaEnum me = metaObject()->enumerator(metaObject()->indexOfEnumerator("TextFrom"));
|
||||||
m_text_from = DynamicElementTextItem::TextFrom(me.keyToValue(dom_elmt.attribute("text_from").toStdString().data()));
|
m_text_from = DynamicElementTextItem::TextFrom(me.keyToValue(dom_elmt.attribute("text_from").toStdString().data()));
|
||||||
if(m_text_from == ElementInfo)
|
if(m_text_from == ElementInfo || m_text_from == CompositeText)
|
||||||
{
|
{
|
||||||
setNoEditable(true);
|
setNoEditable(true);
|
||||||
connect(m_parent_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
if (elementUseForInfo())
|
||||||
|
connect(elementUseForInfo(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setNoEditable(false);
|
setNoEditable(false);
|
||||||
@@ -175,6 +185,47 @@ Element *DynamicElementTextItem::parentElement() const {
|
|||||||
return m_parent_element;
|
return m_parent_element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief DynamicElementTextItem::elementUseForInfo
|
||||||
|
* @return a pointer to the element we must use for the variable information.
|
||||||
|
* If this text is owned by a simple element, the simple element is returned, this is the same element returned by the function parentElement().
|
||||||
|
* If this text is owned by a master element, the master element is returned, this is the same element returned by the function parentElement().
|
||||||
|
* If this text is owned by a report element, the report element is returned, this is the same element returned by the function parentElement().
|
||||||
|
* If this text is owned by a terminal element, the terminal element is returned, this is the same element returned by the function parentElement().
|
||||||
|
* If this text is owned by a slave element, we return the master element set as master of the parent slave element,
|
||||||
|
* if the parent slave is not linked to a master, this function return a nullptr.
|
||||||
|
* If this text have no parent element, return nullptr
|
||||||
|
*/
|
||||||
|
Element *DynamicElementTextItem::elementUseForInfo() const
|
||||||
|
{
|
||||||
|
Element *elmt = parentElement();
|
||||||
|
if(!elmt)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
switch (elmt->linkType())
|
||||||
|
{
|
||||||
|
case Element::Simple:
|
||||||
|
return elmt;
|
||||||
|
case Element::NextReport:
|
||||||
|
return elmt;
|
||||||
|
case Element::PreviousReport:
|
||||||
|
return elmt;
|
||||||
|
case Element::Master:
|
||||||
|
return elmt;
|
||||||
|
case Element::Slave:
|
||||||
|
{
|
||||||
|
if(elmt->linkedElements().isEmpty())
|
||||||
|
return nullptr;
|
||||||
|
else
|
||||||
|
return elmt->linkedElements().first();
|
||||||
|
}
|
||||||
|
case Element::Terminale:
|
||||||
|
return elmt;
|
||||||
|
default:
|
||||||
|
return elmt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief DynamicElementTextItem::textFrom
|
* @brief DynamicElementTextItem::textFrom
|
||||||
* @return what the final text is created from.
|
* @return what the final text is created from.
|
||||||
@@ -190,29 +241,32 @@ DynamicElementTextItem::TextFrom DynamicElementTextItem::textFrom() const {
|
|||||||
*/
|
*/
|
||||||
void DynamicElementTextItem::setTextFrom(DynamicElementTextItem::TextFrom text_from)
|
void DynamicElementTextItem::setTextFrom(DynamicElementTextItem::TextFrom text_from)
|
||||||
{
|
{
|
||||||
setNoEditable(text_from == ElementInfo? true : false);
|
setNoEditable(text_from == UserText? false : true);
|
||||||
|
|
||||||
if(text_from == UserText)
|
if(text_from == UserText)
|
||||||
{
|
{
|
||||||
setPlainText(m_text);
|
setPlainText(m_text);
|
||||||
disconnect(m_parent_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
disconnect(m_parent_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
||||||
}
|
}
|
||||||
else if (text_from == ElementInfo && m_parent_element)
|
else if (text_from == ElementInfo && elementUseForInfo())
|
||||||
{
|
{
|
||||||
setPlainText(m_parent_element->elementInformations().value(m_info_name).toString());
|
setPlainText(elementUseForInfo()->elementInformations().value(m_info_name).toString());
|
||||||
|
|
||||||
if(m_text_from == UserText)
|
if(m_text_from == UserText)
|
||||||
connect(m_parent_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
connect(elementUseForInfo(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
||||||
}
|
}
|
||||||
else if (text_from == CompositeText && m_parent_element)
|
else if (text_from == CompositeText && elementUseForInfo())
|
||||||
{
|
{
|
||||||
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, m_parent_element->elementInformations()));
|
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, elementUseForInfo()->elementInformations()));
|
||||||
if(m_text_from == UserText)
|
if(m_text_from == UserText)
|
||||||
connect(m_parent_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
connect(elementUseForInfo(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_text_from = text_from;
|
if(m_text_from != text_from)
|
||||||
emit textFromChanged(m_text_from);
|
{
|
||||||
|
m_text_from = text_from;
|
||||||
|
emit textFromChanged(m_text_from);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -263,8 +317,8 @@ void DynamicElementTextItem::setInfoName(const QString &info_name)
|
|||||||
{
|
{
|
||||||
m_info_name = info_name;
|
m_info_name = info_name;
|
||||||
|
|
||||||
if(m_parent_element) {
|
if(elementUseForInfo()) {
|
||||||
setPlainText(m_parent_element->elementInformations().value(info_name).toString());
|
setPlainText(elementUseForInfo()->elementInformations().value(info_name).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
emit infoNameChanged(info_name);
|
emit infoNameChanged(info_name);
|
||||||
@@ -278,10 +332,11 @@ void DynamicElementTextItem::setCompositeText(const QString &text)
|
|||||||
{
|
{
|
||||||
m_composite_text = text;
|
m_composite_text = text;
|
||||||
|
|
||||||
|
DiagramContext dc;
|
||||||
|
if(elementUseForInfo())
|
||||||
|
dc = elementUseForInfo()->elementInformations();
|
||||||
|
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, dc));
|
||||||
|
|
||||||
if(m_parent_element) {
|
|
||||||
setPlainText(autonum::AssignVariables::replaceVariable(m_composite_text, m_parent_element->elementInformations()));
|
|
||||||
}
|
|
||||||
emit compositeTextChanged(m_composite_text);
|
emit compositeTextChanged(m_composite_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,18 +397,74 @@ void DynamicElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
|||||||
QGraphicsTextItem::mouseReleaseEvent(event);
|
QGraphicsTextItem::mouseReleaseEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief DynamicElementTextItem::mouseDoubleClickEvent
|
||||||
|
* Reimplemented functions, for add extra feature when this text is owned by a slave.
|
||||||
|
* In this case if the parent slave element is linked to a master, and this text display the label of the master
|
||||||
|
* (both if the 'text from' is 'element info' or 'composite text') the QGraphicsView go to master and select it.
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
|
void DynamicElementTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
|
||||||
|
{
|
||||||
|
DiagramTextItem::mouseDoubleClickEvent(event);
|
||||||
|
|
||||||
|
if(m_parent_element && m_parent_element.data()->linkType() == Element::Slave && m_master_element)
|
||||||
|
{
|
||||||
|
if ((m_text_from == ElementInfo && m_info_name == "label") ||
|
||||||
|
(m_text_from == CompositeText && m_composite_text.contains("%{label}")))
|
||||||
|
{
|
||||||
|
//Unselect and ungrab mouse to prevent unwanted
|
||||||
|
//move when linked element is in the same scene of this.
|
||||||
|
setSelected(false);
|
||||||
|
ungrabMouse();
|
||||||
|
|
||||||
|
if(scene() != m_master_element.data()->scene())
|
||||||
|
m_master_element.data()->diagram()->showMe();
|
||||||
|
m_master_element.data()->setSelected(true);
|
||||||
|
|
||||||
|
//Zoom to the master element
|
||||||
|
for(QGraphicsView *view : m_master_element.data()->scene()->views())
|
||||||
|
{
|
||||||
|
QRectF fit = m_master_element.data()->sceneBoundingRect();
|
||||||
|
fit.adjust(-200, -200, 200, 200);
|
||||||
|
view->fitInView(fit, Qt::KeepAspectRatioByExpanding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DynamicElementTextItem::elementInfoChanged()
|
void DynamicElementTextItem::elementInfoChanged()
|
||||||
{
|
{
|
||||||
if(!m_parent_element)
|
DiagramContext dc;
|
||||||
return;
|
if(elementUseForInfo())
|
||||||
|
dc = elementUseForInfo()->elementInformations();
|
||||||
|
|
||||||
QString final_text;
|
QString final_text;
|
||||||
|
|
||||||
if (m_text_from == ElementInfo)
|
if (m_text_from == ElementInfo)
|
||||||
final_text = m_parent_element->elementInformations().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)
|
||||||
final_text = autonum::AssignVariables::replaceVariable(m_composite_text, m_parent_element->elementInformations());
|
final_text = autonum::AssignVariables::replaceVariable(m_composite_text, dc);
|
||||||
|
else if (m_text_from == UserText)
|
||||||
|
final_text = m_text;
|
||||||
|
|
||||||
setPlainText(final_text);
|
setPlainText(final_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DynamicElementTextItem::masterChanged()
|
||||||
|
{
|
||||||
|
//First we remove the old connection
|
||||||
|
if(!m_master_element.isNull() && (m_text_from == ElementInfo || m_text_from == CompositeText))
|
||||||
|
disconnect(m_master_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
||||||
|
|
||||||
|
if(elementUseForInfo())
|
||||||
|
{
|
||||||
|
m_master_element = elementUseForInfo();
|
||||||
|
if(m_text_from == ElementInfo || m_text_from == CompositeText)
|
||||||
|
connect(m_master_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::elementInfoChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Because master changed we update this text
|
||||||
|
elementInfoChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ class DynamicElementTextItem : public DiagramTextItem
|
|||||||
void fromXml(const QDomElement &dom_elmt) override;
|
void fromXml(const QDomElement &dom_elmt) override;
|
||||||
|
|
||||||
Element *parentElement() const;
|
Element *parentElement() const;
|
||||||
|
Element *elementUseForInfo() const;
|
||||||
|
|
||||||
DynamicElementTextItem::TextFrom textFrom() const;
|
DynamicElementTextItem::TextFrom textFrom() const;
|
||||||
void setTextFrom (DynamicElementTextItem::TextFrom text_from);
|
void setTextFrom (DynamicElementTextItem::TextFrom text_from);
|
||||||
@@ -84,12 +85,15 @@ class DynamicElementTextItem : public DiagramTextItem
|
|||||||
protected:
|
protected:
|
||||||
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
||||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||||
|
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void elementInfoChanged();
|
void elementInfoChanged();
|
||||||
|
void masterChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPointer <Element> m_parent_element;
|
QPointer <Element> m_parent_element,
|
||||||
|
m_master_element;
|
||||||
QString m_tagg,
|
QString m_tagg,
|
||||||
m_text,
|
m_text,
|
||||||
m_info_name,
|
m_info_name,
|
||||||
|
|||||||
@@ -56,18 +56,23 @@ void SlaveElement::linkToElement(Element *elmt)
|
|||||||
// check if element is master and if isn't already linked
|
// check if element is master and if isn't already linked
|
||||||
if (elmt->linkType() == Master && !connected_elements.contains(elmt))
|
if (elmt->linkType() == Master && !connected_elements.contains(elmt))
|
||||||
{
|
{
|
||||||
if(!isFree()) unlinkAllElements();
|
if(!isFree())
|
||||||
this->disconnect();
|
unlinkAllElements();
|
||||||
|
|
||||||
|
for(QMetaObject::Connection c : m_connections)
|
||||||
|
this->disconnect(c);
|
||||||
|
m_connections.clear();
|
||||||
|
|
||||||
connected_elements << elmt;
|
connected_elements << elmt;
|
||||||
|
|
||||||
QETProject *project = elmt->diagram()->project();
|
QETProject *project = elmt->diagram()->project();
|
||||||
connect(elmt, SIGNAL(xChanged()), this, SLOT(updateLabel()));
|
m_connections << connect(elmt, SIGNAL(xChanged()), this, SLOT(updateLabel()));
|
||||||
connect(elmt, SIGNAL(yChanged()), this, SLOT(updateLabel()));
|
m_connections << connect(elmt, SIGNAL(yChanged()), this, SLOT(updateLabel()));
|
||||||
connect(elmt, SIGNAL(elementInfoChange(DiagramContext, DiagramContext)), this, SLOT(updateLabel()));
|
m_connections << connect(elmt, SIGNAL(elementInfoChange(DiagramContext, DiagramContext)), this, SLOT(updateLabel()));
|
||||||
connect(project, SIGNAL(projectDiagramsOrderChanged(QETProject*,int,int)), this, SLOT(updateLabel()));
|
m_connections << connect(project, SIGNAL(projectDiagramsOrderChanged(QETProject*,int,int)), this, SLOT(updateLabel()));
|
||||||
connect(project, SIGNAL(diagramRemoved(QETProject*,Diagram*)), this, SLOT(updateLabel()));
|
m_connections << connect(project, SIGNAL(diagramRemoved(QETProject*,Diagram*)), this, SLOT(updateLabel()));
|
||||||
connect(project, SIGNAL(XRefPropertiesChanged()), this, SLOT(updateLabel()));
|
m_connections << connect(project, SIGNAL(XRefPropertiesChanged()), this, SLOT(updateLabel()));
|
||||||
connect(elmt, SIGNAL(updateLabel()), this, SLOT(updateLabel()));
|
m_connections << connect(elmt, SIGNAL(updateLabel()), this, SLOT(updateLabel()));
|
||||||
|
|
||||||
updateLabel();
|
updateLabel();
|
||||||
elmt -> linkToElement(this);
|
elmt -> linkToElement(this);
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ class SlaveElement : public CustomElement
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QGraphicsTextItem *m_xref_item;
|
QGraphicsTextItem *m_xref_item;
|
||||||
|
QList<QMetaObject::Connection> m_connections;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SLAVEELEMENT_H
|
#endif // SLAVEELEMENT_H
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ QString CompositeTextEditDialog::plainText() const {
|
|||||||
void CompositeTextEditDialog::setUpComboBox()
|
void CompositeTextEditDialog::setUpComboBox()
|
||||||
{
|
{
|
||||||
QStringList qstrl;
|
QStringList qstrl;
|
||||||
Element *elmt = m_text->parentElement();
|
Element *elmt = m_text->elementUseForInfo();
|
||||||
if(!elmt)
|
if(!elmt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Dialog</string>
|
<string>Texte composé</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
|
|||||||
@@ -105,9 +105,12 @@ void DynamicElementTextModel::addText(DynamicElementTextItem *deti)
|
|||||||
QStandardItem *composite = new QStandardItem(tr("Texte composé"));
|
QStandardItem *composite = new QStandardItem(tr("Texte composé"));
|
||||||
composite->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
composite->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||||
|
|
||||||
|
DiagramContext dc;
|
||||||
|
if(deti->elementUseForInfo())
|
||||||
|
dc = deti->elementUseForInfo()->elementInformations();
|
||||||
QStandardItem *compositea = new QStandardItem(deti->compositeText().isEmpty() ?
|
QStandardItem *compositea = new QStandardItem(deti->compositeText().isEmpty() ?
|
||||||
tr("Mon texte composé") :
|
tr("Mon texte composé") :
|
||||||
autonum::AssignVariables::replaceVariable(deti->compositeText(), deti->parentElement()->elementInformations()));
|
autonum::AssignVariables::replaceVariable(deti->compositeText(), dc));
|
||||||
compositea->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
|
compositea->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
|
||||||
compositea->setData(DynamicElementTextModel::compositeText, Qt::UserRole+1); //Use to know the edited thing
|
compositea->setData(DynamicElementTextModel::compositeText, Qt::UserRole+1); //Use to know the edited thing
|
||||||
compositea->setData(deti->compositeText(), Qt::UserRole+2); //Use to know to element composite formula
|
compositea->setData(deti->compositeText(), Qt::UserRole+2); //Use to know to element composite formula
|
||||||
@@ -329,6 +332,9 @@ void DynamicElementTextModel::itemDataChanged(QStandardItem *qsi)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
QStandardItem *text_qsi = m_texts_list.value(deti);
|
QStandardItem *text_qsi = m_texts_list.value(deti);
|
||||||
|
DiagramContext dc;
|
||||||
|
if(deti->elementUseForInfo())
|
||||||
|
dc = deti->elementUseForInfo()->elementInformations();
|
||||||
|
|
||||||
if (qsi->data().toInt() == textFrom)
|
if (qsi->data().toInt() == textFrom)
|
||||||
{
|
{
|
||||||
@@ -344,13 +350,13 @@ void DynamicElementTextModel::itemDataChanged(QStandardItem *qsi)
|
|||||||
{
|
{
|
||||||
enableSourceText(deti, DynamicElementTextItem::ElementInfo);
|
enableSourceText(deti, DynamicElementTextItem::ElementInfo);
|
||||||
QString info = text_from_qsi->child(1,1)->data(Qt::UserRole+2).toString();
|
QString info = text_from_qsi->child(1,1)->data(Qt::UserRole+2).toString();
|
||||||
text_qsi->setData(deti->parentElement()->elementInformations().value(info), Qt::DisplayRole);
|
text_qsi->setData(dc.value(info), Qt::DisplayRole);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
enableSourceText(deti, DynamicElementTextItem::CompositeText);
|
enableSourceText(deti, DynamicElementTextItem::CompositeText);
|
||||||
QString compo = text_from_qsi->child(2,1)->data(Qt::UserRole+2).toString();
|
QString compo = text_from_qsi->child(2,1)->data(Qt::UserRole+2).toString();
|
||||||
text_qsi->setData(autonum::AssignVariables::replaceVariable(compo, deti->parentElement()->elementInformations()), Qt::DisplayRole);
|
text_qsi->setData(autonum::AssignVariables::replaceVariable(compo, dc), Qt::DisplayRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -360,15 +366,15 @@ void DynamicElementTextModel::itemDataChanged(QStandardItem *qsi)
|
|||||||
QString text = qsi->data(Qt::DisplayRole).toString();
|
QString text = qsi->data(Qt::DisplayRole).toString();
|
||||||
text_qsi->setData(text, Qt::DisplayRole);
|
text_qsi->setData(text, Qt::DisplayRole);
|
||||||
}
|
}
|
||||||
else if (qsi->data().toInt() == infoText && deti->parentElement())
|
else if (qsi->data().toInt() == infoText && deti->elementUseForInfo())
|
||||||
{
|
{
|
||||||
QString info = qsi->data(Qt::UserRole+2).toString();
|
QString info = qsi->data(Qt::UserRole+2).toString();
|
||||||
text_qsi->setData(deti->parentElement()->elementInformations().value(info), Qt::DisplayRole);
|
text_qsi->setData(dc.value(info), Qt::DisplayRole);
|
||||||
}
|
}
|
||||||
else if (qsi->data().toInt() == compositeText && deti->parentElement())
|
else if (qsi->data().toInt() == compositeText && deti->elementUseForInfo())
|
||||||
{
|
{
|
||||||
QString compo = qsi->data(Qt::UserRole+2).toString();
|
QString compo = qsi->data(Qt::UserRole+2).toString();
|
||||||
text_qsi->setData(autonum::AssignVariables::replaceVariable(compo, deti->parentElement()->elementInformations()), Qt::DisplayRole);
|
text_qsi->setData(autonum::AssignVariables::replaceVariable(compo, dc), Qt::DisplayRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
//We emit the signal only if @qsi is in the second column, because the data are stored on this column
|
//We emit the signal only if @qsi is in the second column, because the data are stored on this column
|
||||||
@@ -597,7 +603,9 @@ void DynamicTextItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *
|
|||||||
DynamicElementTextItem *deti = detm->textFromIndex(index);
|
DynamicElementTextItem *deti = detm->textFromIndex(index);
|
||||||
if(deti)
|
if(deti)
|
||||||
{
|
{
|
||||||
DiagramContext dc = deti->parentElement()->elementInformations();
|
DiagramContext dc;
|
||||||
|
if(deti->elementUseForInfo())
|
||||||
|
dc = deti->elementUseForInfo()->elementInformations();
|
||||||
assigned_text = autonum::AssignVariables::replaceVariable(edited_text, dc);
|
assigned_text = autonum::AssignVariables::replaceVariable(edited_text, dc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -620,9 +628,10 @@ void DynamicTextItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *
|
|||||||
QStringList DynamicTextItemDelegate::availableInfo(DynamicElementTextItem *deti) const
|
QStringList DynamicTextItemDelegate::availableInfo(DynamicElementTextItem *deti) const
|
||||||
{
|
{
|
||||||
QStringList qstrl;
|
QStringList qstrl;
|
||||||
Element *elmt = deti->parentElement();
|
Element *elmt = deti->elementUseForInfo();
|
||||||
if(!elmt)
|
if(!elmt)
|
||||||
return qstrl;
|
return qstrl;
|
||||||
|
|
||||||
|
|
||||||
QStringList info_list = QETApp::elementInfoKeys();
|
QStringList info_list = QETApp::elementInfoKeys();
|
||||||
info_list.removeAll("formula"); //No need to have formula
|
info_list.removeAll("formula"); //No need to have formula
|
||||||
|
|||||||
Reference in New Issue
Block a user