Skip to content

Commit 4fd8b91

Browse files
committed
- Fixed the movement of components through keyboard. git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@23306 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 6c358bc commit 4fd8b91

File tree

8 files changed

+558
-280
lines changed

8 files changed

+558
-280
lines changed

OMEdit/OMEditGUI/Annotations/ShapeAnnotation.cpp

Lines changed: 170 additions & 59 deletions
Large diffs are not rendered by default.

OMEdit/OMEditGUI/Annotations/ShapeAnnotation.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,16 @@ public slots:
186186
void rotateAntiClockwiseMouseRightClick();
187187
void moveUp();
188188
void moveShiftUp();
189+
void moveCtrlUp();
189190
void moveDown();
190191
void moveShiftDown();
192+
void moveCtrlDown();
191193
void moveLeft();
192194
void moveShiftLeft();
195+
void moveCtrlLeft();
193196
void moveRight();
194197
void moveShiftRight();
198+
void moveCtrlRight();
195199
void cornerItemPressed();
196200
void cornerItemReleased();
197201
void updateCornerItemPoint(int index, QPointF point);

OMEdit/OMEditGUI/Component/Component.cpp

Lines changed: 217 additions & 107 deletions
Large diffs are not rendered by default.

OMEdit/OMEditGUI/Component/Component.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,16 @@ public slots:
180180
void flipVertical();
181181
void moveUp();
182182
void moveShiftUp();
183+
void moveCtrlUp();
183184
void moveDown();
184185
void moveShiftDown();
186+
void moveCtrlDown();
185187
void moveLeft();
186188
void moveShiftLeft();
189+
void moveCtrlLeft();
187190
void moveRight();
188191
void moveShiftRight();
192+
void moveCtrlRight();
189193
void showParameters();
190194
void showAttributes();
191195
void viewClass();

OMEdit/OMEditGUI/Component/Transformation.cpp

Lines changed: 84 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,21 @@ bool Transformation::getVisible()
163163
return mVisible;
164164
}
165165

166+
void Transformation::updatePosition(qreal x, qreal y)
167+
{
168+
switch (mViewType)
169+
{
170+
case StringHandler::Icon:
171+
updatePositionIcon(x, y);
172+
break;
173+
case StringHandler::Diagram:
174+
case StringHandler::ModelicaText:
175+
default:
176+
updatePositionDiagram(x, y);
177+
break;
178+
}
179+
}
180+
166181
void Transformation::setOrigin(QPointF origin)
167182
{
168183
switch (mViewType)
@@ -365,12 +380,25 @@ bool Transformation::getFlipVertical()
365380

366381
QTransform Transformation::getTransformationMatrixDiagram()
367382
{
368-
mPositionXDiagram = mOriginDiagram.x() + ((mExtent1Diagram.x() + mExtent2Diagram.x()) / 2);
369-
mPositionYDiagram = mOriginDiagram.y() + ((mExtent1Diagram.y() + mExtent2Diagram.y()) / 2);
370-
383+
// determine X position
384+
if (mExtent1Diagram.x() + mExtent2Diagram.x() == 0) {
385+
mPositionXDiagram = mOriginDiagram.x();
386+
} else if ((mExtent1Diagram.x() + mExtent2Diagram.x() != 0) && mOriginDiagram.x() == 0) {
387+
mPositionXDiagram = (mExtent1Diagram.x() + mExtent2Diagram.x()) / 2;
388+
} else {
389+
mPositionXDiagram = mOriginDiagram.x() + ((mExtent1Diagram.x() + mExtent2Diagram.x()) / 2);
390+
}
391+
// determine Y position
392+
if (mExtent1Diagram.y() + mExtent2Diagram.y() == 0) {
393+
mPositionYDiagram = mOriginDiagram.y();
394+
} else if ((mExtent1Diagram.y() + mExtent2Diagram.y() != 0) && mOriginDiagram.y() == 0) {
395+
mPositionYDiagram = (mExtent1Diagram.y() + mExtent2Diagram.y()) / 2;
396+
} else {
397+
mPositionYDiagram = mOriginDiagram.y() + ((mExtent1Diagram.y() + mExtent2Diagram.y()) / 2);
398+
}
399+
// get scale
371400
qreal tempwidth = fabs(mExtent1Diagram.x() - mExtent2Diagram.x());
372401
qreal tempHeight = fabs(mExtent1Diagram.y() - mExtent2Diagram.y());
373-
// get scale
374402
mScaleDiagram = tempwidth / mWidth;
375403
// get aspectratio
376404
mAspectRatioDiagram = tempHeight / (mHeight * mScaleDiagram);
@@ -402,12 +430,25 @@ QTransform Transformation::getTransformationMatrixDiagram()
402430

403431
QTransform Transformation::getTransformationMatrixIcon()
404432
{
405-
mPositionXIcon = mOriginIcon.x() + ((mExtent1Icon.x() + mExtent2Icon.x()) / 2);
406-
mPositionYIcon = mOriginIcon.y() + ((mExtent1Icon.y() + mExtent2Icon.y()) / 2);
407-
433+
// determine X position
434+
if (mExtent1Icon.x() + mExtent2Icon.x() == 0) {
435+
mPositionXIcon = mOriginIcon.x();
436+
} else if ((mExtent1Icon.x() + mExtent2Icon.x() != 0) && mOriginIcon.x() == 0) {
437+
mPositionXIcon = (mExtent1Icon.x() + mExtent2Icon.x()) / 2;
438+
} else {
439+
mPositionXIcon = mOriginIcon.x() + ((mExtent1Icon.x() + mExtent2Icon.x()) / 2);
440+
}
441+
// determine Y position
442+
if (mExtent1Icon.y() + mExtent2Icon.y() == 0) {
443+
mPositionYIcon = mOriginIcon.y();
444+
} else if ((mExtent1Icon.y() + mExtent2Icon.y() != 0) && mOriginIcon.y() == 0) {
445+
mPositionYIcon = (mExtent1Icon.y() + mExtent2Icon.y()) / 2;
446+
} else {
447+
mPositionYIcon = mOriginIcon.y() + ((mExtent1Icon.y() + mExtent2Icon.y()) / 2);
448+
}
449+
// get scale
408450
qreal tempwidthIcon = fabs(mExtent1Icon.x() - mExtent2Icon.x());
409451
qreal tempHeightIcon = fabs(mExtent1Icon.y() - mExtent2Icon.y());
410-
// get scale
411452
mScaleIcon = tempwidthIcon / mWidth;
412453
// get aspectratio
413454
mAspectRatioIcon = tempHeightIcon / (mHeight * mScaleIcon);
@@ -437,6 +478,24 @@ QTransform Transformation::getTransformationMatrixIcon()
437478
return QTransform (m11, m12, m21, m22, m31, m32);
438479
}
439480

481+
void Transformation::updatePositionDiagram(qreal x, qreal y)
482+
{
483+
// determine X position
484+
if (mExtent1Diagram.x() + mExtent2Diagram.x() == 0) {
485+
mOriginDiagram.setX(mOriginDiagram.x() + x);
486+
} else {
487+
mExtent1Diagram.setX(mExtent1Diagram.x() + x);
488+
mExtent2Diagram.setX(mExtent2Diagram.x() + x);
489+
}
490+
// determine Y position
491+
if (mExtent1Diagram.y() + mExtent2Diagram.y() == 0) {
492+
mOriginDiagram.setY(mOriginDiagram.y() + y);
493+
} else {
494+
mExtent1Diagram.setY(mExtent1Diagram.y() + y);
495+
mExtent2Diagram.setY(mExtent2Diagram.y() + y);
496+
}
497+
}
498+
440499
void Transformation::setOriginDiagram(QPointF origin)
441500
{
442501
mOriginDiagram = origin;
@@ -501,6 +560,23 @@ bool Transformation::getFlipVerticalDiagram()
501560
{
502561
return mFlipVerticalDiagram;
503562
}
563+
void Transformation::updatePositionIcon(qreal x, qreal y)
564+
{
565+
// determine X position
566+
if (mExtent1Icon.x() + mExtent2Icon.x() == 0) {
567+
mOriginIcon.setX(mOriginIcon.x() + x);
568+
} else {
569+
mExtent1Icon.setX(mExtent1Icon.x() + x);
570+
mExtent2Icon.setX(mExtent2Icon.x() + x);
571+
}
572+
// determine Y position
573+
if (mExtent1Icon.y() + mExtent2Icon.y() == 0) {
574+
mOriginIcon.setY(mOriginIcon.y() + y);
575+
} else {
576+
mExtent1Icon.setY(mExtent1Icon.y() + y);
577+
mExtent2Icon.setY(mExtent2Icon.y() + y);
578+
}
579+
}
504580

505581
void Transformation::setOriginIcon(QPointF origin)
506582
{

OMEdit/OMEditGUI/Component/Transformation.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class Transformation
5252
void parseTransformationString(QString value, qreal width, qreal height);
5353
QTransform getTransformationMatrix();
5454
bool getVisible();
55+
void updatePosition(qreal x, qreal y);
5556
void setOrigin(QPointF origin);
5657
QPointF getOrigin();
5758
void setExtent1(QPointF extent);
@@ -92,6 +93,7 @@ class Transformation
9293
bool mFlipVerticalIcon;
9394
QTransform getTransformationMatrixDiagram();
9495
QTransform getTransformationMatrixIcon();
96+
void updatePositionDiagram(qreal x, qreal y);
9597
void setOriginDiagram(QPointF origin);
9698
QPointF getOriginDiagram();
9799
void setExtent1Diagram(QPointF extent);
@@ -105,6 +107,7 @@ class Transformation
105107
bool getFlipHorizontalDiagram();
106108
void setFlipVerticalDiagram(bool On);
107109
bool getFlipVerticalDiagram();
110+
void updatePositionIcon(qreal x, qreal y);
108111
void setOriginIcon(QPointF origin);
109112
QPointF getOriginIcon();
110113
void setExtent1Icon(QPointF extent);

0 commit comments

Comments
 (0)