mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Add auto conductor even if movement is null
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3627 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -125,14 +125,11 @@ void ElementsMover::endMovement()
|
|||||||
// A movement must be inited
|
// A movement must be inited
|
||||||
if (!movement_running_) return;
|
if (!movement_running_) return;
|
||||||
|
|
||||||
// No need of an undo command if the movement is NULL
|
QUndoCommand *undo_object = nullptr;
|
||||||
if (!current_movement_.isNull()) {
|
|
||||||
// Create an undo object for this new movement
|
//Create undo move if there is a movement
|
||||||
MoveElementsCommand *undo_object = new MoveElementsCommand(
|
if (!current_movement_.isNull())
|
||||||
diagram_,
|
undo_object = new MoveElementsCommand(diagram_, moved_content_, current_movement_);
|
||||||
moved_content_,
|
|
||||||
current_movement_
|
|
||||||
);
|
|
||||||
|
|
||||||
//There is only one element moved, and project authorize auto conductor,
|
//There is only one element moved, and project authorize auto conductor,
|
||||||
//we try auto connection of conductor;
|
//we try auto connection of conductor;
|
||||||
@@ -145,20 +142,27 @@ void ElementsMover::endMovement()
|
|||||||
|
|
||||||
while (!elmt -> AlignedFreeTerminals().isEmpty())
|
while (!elmt -> AlignedFreeTerminals().isEmpty())
|
||||||
{
|
{
|
||||||
QPair <Terminal *, Terminal *> pair = elmt->AlignedFreeTerminals().takeFirst();
|
QPair <Terminal *, Terminal *> pair = elmt -> AlignedFreeTerminals().takeFirst();
|
||||||
|
|
||||||
Conductor *conductor = new Conductor(pair.first, pair.second);
|
Conductor *conductor = new Conductor(pair.first, pair.second);
|
||||||
conductor -> setProperties(diagram_ -> defaultConductorProperties);
|
conductor -> setProperties(diagram_ -> defaultConductorProperties);
|
||||||
//Create an undo object for each new auto conductor, with undo_object for parent;
|
|
||||||
|
//Create an undo object for each new auto conductor, with undo_object for parent if exist
|
||||||
|
//Else the first undo for this auto conductor become the undo_object
|
||||||
|
if (undo_object)
|
||||||
new AddItemCommand<Conductor *>(conductor, diagram_, QPointF(), undo_object);
|
new AddItemCommand<Conductor *>(conductor, diagram_, QPointF(), undo_object);
|
||||||
|
else
|
||||||
|
undo_object = new AddItemCommand<Conductor *>(conductor, diagram_, QPointF());
|
||||||
|
|
||||||
//Autonum the new conductor, the undo command associated for this, have for parent undo_object
|
//Autonum the new conductor, the undo command associated for this, have for parent undo_object
|
||||||
ConductorAutoNumerotation can (conductor, diagram_, undo_object);
|
ConductorAutoNumerotation can (conductor, diagram_, undo_object);
|
||||||
can.numerate();
|
can.numerate();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add undo_object if exist
|
||||||
|
if (undo_object)
|
||||||
diagram_ -> undoStack().push(undo_object);
|
diagram_ -> undoStack().push(undo_object);
|
||||||
}
|
|
||||||
|
|
||||||
// There is no movement in progress now
|
// There is no movement in progress now
|
||||||
movement_running_ = false;
|
movement_running_ = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user