|
|
|
@ -214,7 +214,7 @@ UBBoardView::keyPressEvent (QKeyEvent *event) |
|
|
|
|
case Qt::Key_Control: |
|
|
|
|
case Qt::Key_Shift: |
|
|
|
|
{ |
|
|
|
|
mMultipleSelectionIsEnabled = true; |
|
|
|
|
setMultiselection(true); |
|
|
|
|
}break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -274,6 +274,10 @@ UBBoardView::keyPressEvent (QKeyEvent *event) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// if ctrl of shift was pressed combined with other keys - we need to disable multiple selection.
|
|
|
|
|
if (event->isAccepted()) |
|
|
|
|
setMultiselection(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -284,7 +288,7 @@ void UBBoardView::keyReleaseEvent(QKeyEvent *event) |
|
|
|
|
if (Qt::Key_Shift == event->key() |
|
|
|
|
||Qt::Key_Control == event->key()) |
|
|
|
|
{ |
|
|
|
|
mMultipleSelectionIsEnabled = false; |
|
|
|
|
setMultiselection(false); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -459,7 +463,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if we need to uwe multiple selection - we shouldn't deselect other items.
|
|
|
|
|
if (!mMultipleSelectionIsEnabled) |
|
|
|
|
if (!isMultipleSelectionEnabled()) |
|
|
|
|
{ |
|
|
|
|
// here we need to determine what item is pressed. We should work
|
|
|
|
|
// only with UB items.
|
|
|
|
@ -627,8 +631,8 @@ QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item) |
|
|
|
|
{ |
|
|
|
|
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
|
|
|
|
|
|
|
|
|
|
// groups should should be moved instead of strokes groups
|
|
|
|
|
if (item->parentItem() && UBGraphicsStrokesGroup::Type == item->type()) |
|
|
|
|
// groups should should be moved instead of strokes groups
|
|
|
|
|
if (item->parentItem() && UBGraphicsStrokesGroup::Type == item->type()) |
|
|
|
|
return item->parentItem(); |
|
|
|
|
|
|
|
|
|
// if item is on group and froup is not selected - group should take press.
|
|
|
|
@ -687,14 +691,14 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) |
|
|
|
|
{ |
|
|
|
|
mLastPressedMousePos = mapToScene(event->pos()); |
|
|
|
|
|
|
|
|
|
// Determining item who will take mouse press event
|
|
|
|
|
//all other items will be deselected and if all item will be deselected, then
|
|
|
|
|
// wrong item can catch mouse press. because selected items placed on the top
|
|
|
|
|
QGraphicsItem *pressedItem = determineItemToPress(movingItem); |
|
|
|
|
|
|
|
|
|
handleItemsSelection(movingItem); |
|
|
|
|
// Determining item who will take mouse press event
|
|
|
|
|
//all other items will be deselected and if all item will be deselected, then
|
|
|
|
|
// wrong item can catch mouse press. because selected items placed on the top
|
|
|
|
|
QGraphicsItem *pressedItem = determineItemToPress(movingItem); |
|
|
|
|
|
|
|
|
|
handleItemsSelection(movingItem); |
|
|
|
|
|
|
|
|
|
if (mMultipleSelectionIsEnabled) |
|
|
|
|
if (isMultipleSelectionEnabled()) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (itemShouldReceiveMousePressEvent(movingItem)) |
|
|
|
@ -792,6 +796,11 @@ void UBBoardView::moveRubberedItems(QPointF movingVector) |
|
|
|
|
scene()->invalidate(invalidateRect); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void UBBoardView::setMultiselection(bool enable) |
|
|
|
|
{ |
|
|
|
|
mMultipleSelectionIsEnabled = enable; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void UBBoardView::longPressEvent() |
|
|
|
|
{ |
|
|
|
|
UBDrawingController *drawingController = UBDrawingController::drawingController(); |
|
|
|
@ -1090,7 +1099,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) |
|
|
|
|
!(movingItem->parentItem() && UBGraphicsW3CWidgetItem::Type == movingItem->type() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type())) |
|
|
|
|
{ |
|
|
|
|
bReleaseIsNeed = false; |
|
|
|
|
if (movingItem->isSelected() && mMultipleSelectionIsEnabled) |
|
|
|
|
if (movingItem->isSelected() && isMultipleSelectionEnabled()) |
|
|
|
|
movingItem->setSelected(false); |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|