mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Mod code to drop 2 inden
- if (isReadOnly()) return; - if (dc.items(DiagramContent::All).isEmpty())
This commit is contained in:
@@ -341,116 +341,133 @@ void Diagram::keyPressEvent(QKeyEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isReadOnly())
|
if (isReadOnly()) return;
|
||||||
|
|
||||||
|
QPointF movement;
|
||||||
|
qreal top_position = 0;
|
||||||
|
qreal left_position = 0;
|
||||||
|
DiagramContent dc(this);
|
||||||
|
if (dc.items(DiagramContent::All).isEmpty())
|
||||||
{
|
{
|
||||||
QPointF movement;
|
|
||||||
qreal top_position = 0;
|
|
||||||
qreal left_position = 0;
|
|
||||||
DiagramContent dc(this);
|
|
||||||
if (!dc.items(DiagramContent::All).isEmpty())
|
|
||||||
{
|
|
||||||
#pragma message("@TODO move code to new function")
|
|
||||||
//Move item with the keyboard arrow
|
|
||||||
if(event->modifiers() == Qt::NoModifier)
|
|
||||||
{
|
|
||||||
switch(event->key())
|
|
||||||
{
|
|
||||||
case Qt::Key_Left:
|
|
||||||
for (Element *item : dc.m_elements)
|
|
||||||
{
|
|
||||||
left_position = item->sceneBoundingRect().x();
|
|
||||||
if(left_position <= 5)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
movement = QPointF(-xKeyGrid, 0.0);
|
|
||||||
break;
|
|
||||||
case Qt::Key_Right:
|
|
||||||
movement = QPointF(+xKeyGrid, 0.0);
|
|
||||||
break;
|
|
||||||
case Qt::Key_Up:
|
|
||||||
for(Element *item : dc.m_elements)
|
|
||||||
{
|
|
||||||
top_position = item->sceneBoundingRect().y();
|
|
||||||
if(top_position <= 5)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
movement = QPointF(0.0, -yKeyGrid);
|
|
||||||
break;
|
|
||||||
case Qt::Key_Down:
|
|
||||||
movement = QPointF(0.0, +yKeyGrid);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!movement.isNull() && !focusItem())
|
|
||||||
{
|
|
||||||
m_elements_mover.beginMovement(this);
|
|
||||||
m_elements_mover.continueMovement(movement);
|
|
||||||
event->accept();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(event->modifiers() == Qt::AltModifier)
|
|
||||||
|
|
||||||
{
|
|
||||||
switch(event->key())
|
|
||||||
{
|
|
||||||
case Qt::Key_Left:
|
|
||||||
for (Element *item : dc.m_elements)
|
|
||||||
{
|
|
||||||
left_position = item->sceneBoundingRect().x();
|
|
||||||
if(left_position <= 5)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
movement = QPointF(-xKeyGridFine, 0.0);
|
|
||||||
break;
|
|
||||||
case Qt::Key_Right:
|
|
||||||
movement = QPointF(+xKeyGridFine, 0.0);
|
|
||||||
break;
|
|
||||||
case Qt::Key_Up:
|
|
||||||
for(Element *item : dc.m_elements)
|
|
||||||
{
|
|
||||||
top_position = item->sceneBoundingRect().y();
|
|
||||||
if(top_position <= 5)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
movement = QPointF(0.0, -yKeyGridFine);
|
|
||||||
break;
|
|
||||||
case Qt::Key_Down:
|
|
||||||
movement = QPointF(0.0, +yKeyGridFine);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!movement.isNull() && !focusItem())
|
|
||||||
{
|
|
||||||
m_elements_mover.beginMovement(this);
|
|
||||||
m_elements_mover.continueMovement(movement);
|
|
||||||
event->accept();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(event->modifiers() == Qt::ControlModifier)
|
|
||||||
{
|
|
||||||
//Adjust the alignment of a texts group
|
|
||||||
if(selectedItems().size() == 1 && selectedItems().first()->type() == QGraphicsItemGroup::Type)
|
|
||||||
{
|
|
||||||
if(ElementTextItemGroup *etig = dynamic_cast<ElementTextItemGroup *>(selectedItems().first()))
|
|
||||||
{
|
|
||||||
if(event->key() == Qt::Key_Left && etig->alignment() != Qt::AlignLeft)
|
|
||||||
undoStack().push(new AlignmentTextsGroupCommand(etig, Qt::AlignLeft));
|
|
||||||
|
|
||||||
else if (event->key() == Qt::Key_Up && etig->alignment() != Qt::AlignVCenter)
|
|
||||||
undoStack().push(new AlignmentTextsGroupCommand(etig, Qt::AlignVCenter));
|
|
||||||
|
|
||||||
else if (event->key() == Qt::Key_Right && etig->alignment() != Qt::AlignRight)
|
|
||||||
undoStack().push(new AlignmentTextsGroupCommand(etig, Qt::AlignRight));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
event->ignore();
|
event->ignore();
|
||||||
QGraphicsScene::keyPressEvent(event);
|
QGraphicsScene::keyPressEvent(event);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma message("@TODO move code to new function")
|
||||||
|
//Move item with the keyboard arrow
|
||||||
|
if(event->modifiers() == Qt::NoModifier)
|
||||||
|
{
|
||||||
|
switch(event->key())
|
||||||
|
{
|
||||||
|
case Qt::Key_Left:
|
||||||
|
for (Element *item : dc.m_elements)
|
||||||
|
{
|
||||||
|
left_position = item->sceneBoundingRect().x();
|
||||||
|
if(left_position <= 5)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
movement = QPointF(-xKeyGrid, 0.0);
|
||||||
|
break;
|
||||||
|
case Qt::Key_Right:
|
||||||
|
movement = QPointF(+xKeyGrid, 0.0);
|
||||||
|
break;
|
||||||
|
case Qt::Key_Up:
|
||||||
|
for(Element *item : dc.m_elements)
|
||||||
|
{
|
||||||
|
top_position = item->sceneBoundingRect().y();
|
||||||
|
if(top_position <= 5)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
movement = QPointF(0.0, -yKeyGrid);
|
||||||
|
break;
|
||||||
|
case Qt::Key_Down:
|
||||||
|
movement = QPointF(0.0, +yKeyGrid);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!movement.isNull() && !focusItem())
|
||||||
|
{
|
||||||
|
m_elements_mover.beginMovement(this);
|
||||||
|
m_elements_mover.continueMovement(movement);
|
||||||
|
event->accept();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event->modifiers() == Qt::AltModifier)
|
||||||
|
{
|
||||||
|
switch(event->key())
|
||||||
|
{
|
||||||
|
case Qt::Key_Left:
|
||||||
|
for (Element *item : dc.m_elements)
|
||||||
|
{
|
||||||
|
left_position = item->sceneBoundingRect().x();
|
||||||
|
if(left_position <= 5)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
movement = QPointF(-xKeyGridFine, 0.0);
|
||||||
|
break;
|
||||||
|
case Qt::Key_Right:
|
||||||
|
movement = QPointF(+xKeyGridFine, 0.0);
|
||||||
|
break;
|
||||||
|
case Qt::Key_Up:
|
||||||
|
for(Element *item : dc.m_elements)
|
||||||
|
{
|
||||||
|
top_position = item->sceneBoundingRect().y();
|
||||||
|
if(top_position <= 5)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
movement = QPointF(0.0, -yKeyGridFine);
|
||||||
|
break;
|
||||||
|
case Qt::Key_Down:
|
||||||
|
movement = QPointF(0.0, +yKeyGridFine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!movement.isNull() && !focusItem())
|
||||||
|
{
|
||||||
|
m_elements_mover.beginMovement(this);
|
||||||
|
m_elements_mover.continueMovement(movement);
|
||||||
|
event->accept();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event->modifiers() == Qt::ControlModifier)
|
||||||
|
{
|
||||||
|
//Adjust the alignment of a texts group
|
||||||
|
if(selectedItems().size() == 1
|
||||||
|
&& selectedItems().first()->type()
|
||||||
|
== QGraphicsItemGroup::Type)
|
||||||
|
{
|
||||||
|
if(ElementTextItemGroup *etig =
|
||||||
|
dynamic_cast<ElementTextItemGroup *>
|
||||||
|
(selectedItems().first()))
|
||||||
|
{
|
||||||
|
if(event->key() == Qt::Key_Left
|
||||||
|
&& etig->alignment() != Qt::AlignLeft)
|
||||||
|
undoStack().push(
|
||||||
|
new AlignmentTextsGroupCommand(
|
||||||
|
etig,
|
||||||
|
Qt::AlignLeft));
|
||||||
|
|
||||||
|
else if (event->key() == Qt::Key_Up
|
||||||
|
&& etig->alignment() != Qt::AlignVCenter)
|
||||||
|
undoStack().push(
|
||||||
|
new AlignmentTextsGroupCommand(
|
||||||
|
etig,
|
||||||
|
Qt::AlignVCenter));
|
||||||
|
|
||||||
|
else if (event->key() == Qt::Key_Right
|
||||||
|
&& etig->alignment() != Qt::AlignRight)
|
||||||
|
undoStack().push(
|
||||||
|
new AlignmentTextsGroupCommand(
|
||||||
|
etig,
|
||||||
|
Qt::AlignRight));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
event->ignore();
|
||||||
|
QGraphicsScene::keyPressEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user