Copy/Paste now works with Element Label Variables

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4599 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
dfochi
2016-07-31 01:30:42 +00:00
parent bb992f3868
commit 6355611947
5 changed files with 13 additions and 5 deletions

View File

@@ -87,6 +87,7 @@ class Diagram : public QGraphicsScene
QHash <QString, QStringList> m_elmt_unitfolio_max;
QHash <QString, QStringList> m_elmt_tenfolio_max;
QHash <QString, QStringList> m_elmt_hundredfolio_max;
bool item_paste;
private:
QGraphicsLineItem *conductor_setter_;

View File

@@ -212,8 +212,11 @@ void PasteDiagramCommand::redo()
}
}
else {
foreach (QGraphicsItem *item, content.items(filter))
foreach (QGraphicsItem *item, content.items(filter)) {
diagram->item_paste = true;
diagram->addItem(item);
diagram->item_paste = false;
}
}
foreach (QGraphicsItem *qgi, content.items())

View File

@@ -82,6 +82,7 @@ DiagramView::DiagramView(Diagram *diagram, QWidget *parent) :
setSelectionMode();
adjustSceneRect();
updateWindowTitle();
scene->loadElmtFolioSeq();
context_menu = new QMenu(this);
paste_here = new QAction(QET::Icons::EditPaste, tr("Coller ici", "context menu action"), this);
@@ -432,6 +433,7 @@ void DiagramView::paste(const QPointF &pos, QClipboard::Mode clipboard_mode) {
// objet pour recuperer le contenu ajoute au schema par le coller
DiagramContent content_pasted;
this->diagram()->item_paste = true;
scene -> fromXml(document_xml, pos, false, &content_pasted);
// si quelque chose a effectivement ete ajoute au schema, on cree un objet d'annulation
@@ -440,6 +442,7 @@ void DiagramView::paste(const QPointF &pos, QClipboard::Mode clipboard_mode) {
scene -> undoStack().push(new PasteDiagramCommand(scene, content_pasted));
adjustSceneRect();
}
this->diagram()->item_paste = false;
}
/**

View File

@@ -336,10 +336,13 @@ void CustomElement::parseLabels() {
rxml.readNext();
}
}
//apply formula to specific label
//apply formula to specific label - This condition specify elements which have different labels e.g KM
//that are already specified in the element label (inside .elmt file). This method is not called if elements
//are being loaded at first time or being pasted
else if ((this->taggedText("label")!= NULL) && (location().projectId()!=-1) &&
(!location().project()->elementAutoNumFormula().isEmpty()) &&
(this->linkType()!=Element::Slave) && (this->linkType()!=Element::Terminale)) {
(this->linkType()!=Element::Slave) && (this->linkType()!=Element::Terminale) &&
!this->diagram()->item_paste) {
QString formula = location().project()->elementAutoNumFormula();
DiagramContext &dc = this->rElementInformations();
QString prefix = this->taggedText("label")->toPlainText();

View File

@@ -759,8 +759,6 @@ QString Element::assignVariables(QString label, Element *elmt){
label.replace("%id", QString::number(elmt->diagram()->folioIndex()+1));
label.replace("%total", QString::number(elmt->diagram()->border_and_titleblock.folioTotal()));
label.replace("%prefix", elmt->getPrefix());
if (label.contains("%prefix"))
label.replace("%prefix",this->getPrefix());
label = assignSeq(label);
return label;
}