Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert mousemove realization for paste #489

Merged
merged 1 commit into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 36 additions & 1 deletion qucs/mouseactions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,41 @@ void MouseActions::MMoveMoving2(Schematic *Doc, QMouseEvent *Event)
MAy1 = MAy2;
}

// moving after paste
// TODO refactor mouse moving
void MouseActions::MMoveMoving3(Schematic *Doc, QMouseEvent *Event)
{
setPainter(Doc);

MAx2 = DOC_X_POS(Event->pos().x());
MAy2 = DOC_Y_POS(Event->pos().y());

Element *pe;
if (drawn) // erase old scheme
for (pe = movingElements.first(); pe != nullptr; pe = movingElements.next())
pe->paintScheme(Doc);

drawn = true;
if ((Event->modifiers().testFlag(Qt::ControlModifier)) == 0)
Doc->setOnGrid(MAx2, MAy2); // use grid only if CTRL key not pressed
MAx1 = MAx2 - MAx1;
MAy1 = MAy2 - MAy1;
MAx3 += MAx1;
MAy3 += MAy1; // keep track of the complete movement

moveElements(&movingElements, MAx1, MAy1); // moves elements by MAx1/MAy1

// paint afterwards to avoid conflict between wire and label painting
for (pe = movingElements.first(); pe != 0; pe = movingElements.next())
pe->paintScheme(Doc);
// if(pe->Type == isWire) if(((Wire*)pe)->Label)
// if(!((Wire*)pe)->Label->isSelected)
// ((Wire*)pe)->Label->paintScheme(&painter);

MAx1 = MAx2;
MAy1 = MAy2;
}

/**
* @brief MouseActions::MMovePaste Moves components after paste from clipboard.
* @param Doc
Expand All @@ -580,7 +615,7 @@ void MouseActions::MMovePaste(Schematic *Doc, QMouseEvent *Event)
paintElementsScheme(Doc);

drawn = true;
QucsMain->MouseMoveAction = &MouseActions::MMoveMoving2;
QucsMain->MouseMoveAction = &MouseActions::MMoveMoving3;
QucsMain->MouseReleaseAction = &MouseActions::MReleasePaste;
}

Expand Down
1 change: 1 addition & 0 deletions qucs/mouseactions.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ class MouseActions {
void MMoveWire2(Schematic*, QMouseEvent*);
void MMoveMoving(Schematic*, QMouseEvent*);
void MMoveMoving2(Schematic*, QMouseEvent*);
void MMoveMoving3(Schematic*, QMouseEvent*);
void MMovePaste(Schematic*, QMouseEvent*);
void MMoveDelete(Schematic*, QMouseEvent*);
void MMoveLabel(Schematic*, QMouseEvent*);
Expand Down