mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Revamp the class link and unlink element command
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4001 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -1137,142 +1137,3 @@ void ChangeShapeStyleCommand::redo() {
|
||||
diagram -> showMe();
|
||||
QUndoCommand::redo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief LinkElementsCommand::LinkElementsCommand
|
||||
*Constructor
|
||||
* @param elmt1 element to Link
|
||||
* @param elmt2 element to link
|
||||
* @param parent parent undo command
|
||||
*/
|
||||
LinkElementsCommand::LinkElementsCommand(Element *elmt1, Element *elmt2, QUndoCommand *parent) :
|
||||
QUndoCommand(parent),
|
||||
diagram_(elmt1->diagram()),
|
||||
element_(elmt1),
|
||||
first_redo(true)
|
||||
{
|
||||
elmt_list << elmt2;
|
||||
if (elmt1->linkType() & Element::AllReport &&
|
||||
elmt2->linkType() & Element::AllReport) {
|
||||
setText(QObject::tr("Lier deux reports de folio",
|
||||
"title for undo LinkElementsCommand if two elements are folio report"));
|
||||
}
|
||||
else if (element_->linkType() & (Element::Master|Element::Slave))
|
||||
setText(QObject::tr("Editer les référence croisé", "edite the cross reference"));
|
||||
else setText(QObject::tr("Lier deux éléments"));
|
||||
|
||||
previous_linked = elmt1->linkedElements();
|
||||
}
|
||||
|
||||
LinkElementsCommand::LinkElementsCommand(Element *elmt1, QList<Element *> &elmtList, QUndoCommand *parent) :
|
||||
QUndoCommand(parent),
|
||||
diagram_(elmt1->diagram()),
|
||||
element_(elmt1),
|
||||
elmt_list(elmtList),
|
||||
first_redo(true)
|
||||
{
|
||||
if (element_->linkType() & (Element::Master|Element::Slave))
|
||||
setText(QObject::tr("Editer les référence croisé"));
|
||||
else setText(QObject::tr("Lier deux éléments"));
|
||||
previous_linked = elmt1->linkedElements();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief LinkElementsCommand::~LinkElementsCommand
|
||||
*destructor
|
||||
*/
|
||||
LinkElementsCommand::~LinkElementsCommand(){}
|
||||
|
||||
/**
|
||||
* @brief LinkElementsCommand::undo
|
||||
*Undo command
|
||||
*/
|
||||
void LinkElementsCommand::undo() {
|
||||
diagram_->showMe();
|
||||
|
||||
foreach (Element *elmt, elmt_list)
|
||||
element_->unlinkElement(elmt);
|
||||
|
||||
foreach (Element *elmt, previous_linked)
|
||||
element_->linkToElement(elmt);
|
||||
|
||||
QUndoCommand::undo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief LinkElementsCommand::redo
|
||||
*redo command
|
||||
*/
|
||||
void LinkElementsCommand::redo() {
|
||||
diagram_->showMe();
|
||||
|
||||
foreach (Element *elmt, elmt_list)
|
||||
element_->linkToElement(elmt);
|
||||
|
||||
//If element are report, check if text of this potential is identical.
|
||||
if ((element_->linkType() &Element::AllReport) && first_redo) {
|
||||
if(element_->conductors().count() && elmt_list.first()->conductors().count()) {
|
||||
ConductorAutoNumerotation::checkPotential(element_->conductors().first());
|
||||
}
|
||||
first_redo = false;
|
||||
}
|
||||
QUndoCommand::redo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief unlinkElementsCommand::unlinkElementsCommand
|
||||
* Constructor, unlink elmt2 or all elements if elmt2 isn't specified
|
||||
* @param elmt1 element to set undo command
|
||||
* @param elmt2 element to be unlinked
|
||||
* @param parent undo parent
|
||||
*/
|
||||
unlinkElementsCommand::unlinkElementsCommand(Element *elmt1, Element *elmt2, QUndoCommand *parent):
|
||||
QUndoCommand(parent),
|
||||
diagram_(elmt1->diagram()),
|
||||
element_(elmt1)
|
||||
{
|
||||
if (elmt2) elmt_list << elmt2;
|
||||
else elmt_list << elmt1->linkedElements();
|
||||
setText(QObject::tr("Délier %n élément(s)", "", elmt_list.size()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief unlinkElementsCommand::unlinkElementsCommand
|
||||
* @param elmt1 Element to set the link
|
||||
* @param elmtList list of all element to be linked to elmt1
|
||||
* @param parent undo command
|
||||
*/
|
||||
unlinkElementsCommand::unlinkElementsCommand(Element *elmt1, QList<Element *> &elmtList, QUndoCommand *parent):
|
||||
QUndoCommand(parent),
|
||||
diagram_(elmt1->diagram()),
|
||||
element_(elmt1),
|
||||
elmt_list(elmtList)
|
||||
{
|
||||
setText(QObject::tr("Délier %n élément(s)", "", elmt_list.size()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief unlinkElementsCommand::~unlinkElementsCommand
|
||||
* destructor
|
||||
*/
|
||||
unlinkElementsCommand::~unlinkElementsCommand(){}
|
||||
|
||||
/**
|
||||
* @brief unlinkElementsCommand::undo
|
||||
*undo command
|
||||
*/
|
||||
void unlinkElementsCommand::undo() {
|
||||
foreach (Element *elmt, elmt_list)
|
||||
element_->linkToElement(elmt);
|
||||
QUndoCommand::undo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief unlinkElementsCommand::redo
|
||||
*redo command
|
||||
*/
|
||||
void unlinkElementsCommand::redo() {
|
||||
foreach (Element *elmt, elmt_list)
|
||||
element_->unlinkElement(elmt);
|
||||
QUndoCommand::redo();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user