forked from qt-creator/qt-creator
QmlDesigner.formeEditor: add handler for context menu
This patch adds a handler for a context menu to AbstactFormEditorTool. Also all the tools are patched to ignore right mouse keys for now. The ResizeManipulator gets an active property. Change-Id: I66b247ce6ae8e9f88517a1c1698432fb64f70da7 Reviewed-on: http://codereview.qt.nokia.com/770 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Marco Bubke <marco.bubke@nokia.com>
This commit is contained in:
committed by
Marco Bubke
parent
a9f53ec9c5
commit
d7ed0667e9
@@ -74,46 +74,52 @@ void MoveTool::clear()
|
||||
void MoveTool::mousePressEvent(const QList<QGraphicsItem*> &itemList,
|
||||
QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (itemList.isEmpty())
|
||||
return;
|
||||
m_movingItems = movingItems(items());
|
||||
if (m_movingItems.isEmpty())
|
||||
return;
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
if (itemList.isEmpty())
|
||||
return;
|
||||
m_movingItems = movingItems(items());
|
||||
if (m_movingItems.isEmpty())
|
||||
return;
|
||||
|
||||
m_moveManipulator.setItems(m_movingItems);
|
||||
m_moveManipulator.begin(event->scenePos());
|
||||
m_moveManipulator.setItems(m_movingItems);
|
||||
m_moveManipulator.begin(event->scenePos());
|
||||
}
|
||||
|
||||
AbstractFormEditorTool::mousePressEvent(itemList, event);
|
||||
}
|
||||
|
||||
void MoveTool::mouseMoveEvent(const QList<QGraphicsItem*> &itemList,
|
||||
QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (m_movingItems.isEmpty())
|
||||
return;
|
||||
if (m_moveManipulator.isActive()) {
|
||||
if (m_movingItems.isEmpty())
|
||||
return;
|
||||
|
||||
// m_selectionIndicator.hide();
|
||||
m_resizeIndicator.hide();
|
||||
// m_selectionIndicator.hide();
|
||||
m_resizeIndicator.hide();
|
||||
|
||||
FormEditorItem *containerItem = containerFormEditorItem(itemList, m_movingItems);
|
||||
if (containerItem
|
||||
&& view()->currentState().isBaseState()) {
|
||||
if (containerItem != m_movingItems.first()->parentItem()
|
||||
&& event->modifiers().testFlag(Qt::ShiftModifier)) {
|
||||
m_moveManipulator.reparentTo(containerItem);
|
||||
FormEditorItem *containerItem = containerFormEditorItem(itemList, m_movingItems);
|
||||
if (containerItem
|
||||
&& view()->currentState().isBaseState()) {
|
||||
if (containerItem != m_movingItems.first()->parentItem()
|
||||
&& event->modifiers().testFlag(Qt::ShiftModifier)) {
|
||||
m_moveManipulator.reparentTo(containerItem);
|
||||
}
|
||||
}
|
||||
|
||||
bool shouldSnapping = view()->widget()->snappingAction()->isChecked();
|
||||
bool shouldSnappingAndAnchoring = view()->widget()->snappingAndAnchoringAction()->isChecked();
|
||||
|
||||
MoveManipulator::Snapping useSnapping = MoveManipulator::NoSnapping;
|
||||
if (event->modifiers().testFlag(Qt::ControlModifier) != (shouldSnapping || shouldSnappingAndAnchoring)) {
|
||||
if (shouldSnappingAndAnchoring)
|
||||
useSnapping = MoveManipulator::UseSnappingAndAnchoring;
|
||||
else
|
||||
useSnapping = MoveManipulator::UseSnapping;
|
||||
}
|
||||
|
||||
m_moveManipulator.update(event->scenePos(), useSnapping);
|
||||
}
|
||||
|
||||
bool shouldSnapping = view()->widget()->snappingAction()->isChecked();
|
||||
bool shouldSnappingAndAnchoring = view()->widget()->snappingAndAnchoringAction()->isChecked();
|
||||
|
||||
MoveManipulator::Snapping useSnapping = MoveManipulator::NoSnapping;
|
||||
if (event->modifiers().testFlag(Qt::ControlModifier) != (shouldSnapping || shouldSnappingAndAnchoring)) {
|
||||
if (shouldSnappingAndAnchoring)
|
||||
useSnapping = MoveManipulator::UseSnappingAndAnchoring;
|
||||
else
|
||||
useSnapping = MoveManipulator::UseSnapping;
|
||||
}
|
||||
|
||||
m_moveManipulator.update(event->scenePos(), useSnapping);
|
||||
}
|
||||
|
||||
void MoveTool::hoverMoveEvent(const QList<QGraphicsItem*> &itemList,
|
||||
@@ -195,31 +201,35 @@ void MoveTool::keyReleaseEvent(QKeyEvent *keyEvent)
|
||||
}
|
||||
}
|
||||
|
||||
void MoveTool::mouseReleaseEvent(const QList<QGraphicsItem*> &/*itemList*/,
|
||||
void MoveTool::mouseReleaseEvent(const QList<QGraphicsItem*> &itemList,
|
||||
QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (m_movingItems.isEmpty())
|
||||
return;
|
||||
if (m_moveManipulator.isActive()) {
|
||||
if (m_movingItems.isEmpty())
|
||||
return;
|
||||
|
||||
QLineF moveVector(event->scenePos(), m_moveManipulator.beginPoint());
|
||||
if (moveVector.length() < QApplication::startDragDistance())
|
||||
{
|
||||
QPointF beginPoint(m_moveManipulator.beginPoint());
|
||||
QLineF moveVector(event->scenePos(), m_moveManipulator.beginPoint());
|
||||
if (moveVector.length() < QApplication::startDragDistance())
|
||||
{
|
||||
QPointF beginPoint(m_moveManipulator.beginPoint());
|
||||
|
||||
m_moveManipulator.end(beginPoint);
|
||||
m_moveManipulator.end(beginPoint);
|
||||
|
||||
// m_selectionIndicator.show();
|
||||
m_resizeIndicator.show();
|
||||
m_movingItems.clear();
|
||||
// m_selectionIndicator.show();
|
||||
m_resizeIndicator.show();
|
||||
m_movingItems.clear();
|
||||
|
||||
view()->changeToSelectionTool(event);
|
||||
} else {
|
||||
m_moveManipulator.end(event->scenePos());
|
||||
view()->changeToSelectionTool(event);
|
||||
} else {
|
||||
m_moveManipulator.end(event->scenePos());
|
||||
|
||||
m_selectionIndicator.show();
|
||||
m_resizeIndicator.show();
|
||||
m_movingItems.clear();
|
||||
m_selectionIndicator.show();
|
||||
m_resizeIndicator.show();
|
||||
m_movingItems.clear();
|
||||
}
|
||||
}
|
||||
|
||||
AbstractFormEditorTool::mouseReleaseEvent(itemList, event);
|
||||
}
|
||||
|
||||
void MoveTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> &itemList, QGraphicsSceneMouseEvent *event)
|
||||
|
||||
Reference in New Issue
Block a user