From 1ed513866213451d05822e043138b496cd6f1721 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 24 Jul 2012 11:31:45 +0300 Subject: [PATCH 1/2] Fix to Sankore-799. --- src/board/UBBoardView.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index daa8895b..1fca73ef 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -577,6 +577,12 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) { mLastPressedMousePos = mapToScene(event->pos()); + foreach (QGraphicsItem *item, scene()->items()) + { + if (movingItem != item) + item->setSelected(false); + } + if (itemShouldReceiveMousePressEvent(movingItem)) QGraphicsView::mousePressEvent (event); else From 9f95f1bee5b2c6507af40decf10db650b55eeed9 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 24 Jul 2012 15:56:28 +0300 Subject: [PATCH 2/2] Fixed Sankore-793. --- src/board/UBBoardView.cpp | 22 +++++++++++++++------- src/domain/UBGraphicsScene.cpp | 6 ++++-- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 1fca73ef..4953c018 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -417,7 +417,7 @@ bool UBBoardView::itemShouldReceiveMousePressEvent(QGraphicsItem *item) return true; if (item == scene()->backgroundObject()) - return true; + return false; if (itemIsLocked(item)) return false; @@ -577,10 +577,17 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) { mLastPressedMousePos = mapToScene(event->pos()); - foreach (QGraphicsItem *item, scene()->items()) + + if (movingItem && QGraphicsSvgItem::Type != movingItem->type() + && UBGraphicsDelegateFrame::Type != movingItem->type()) { - if (movingItem != item) - item->setSelected(false); + foreach(QGraphicsItem *item, scene()->selectedItems()) + { + if (item != movingItem) + { + item->setSelected(false); + } + } } if (itemShouldReceiveMousePressEvent(movingItem)) @@ -710,7 +717,9 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) mMouseDownPos = event->pos (); - emit clickOnBoard(); + movingItem = scene()->itemAt(this->mapToScene(event->posF().toPoint())); + if (!movingItem) + emit clickOnBoard(); if (event->button () == Qt::LeftButton && isInteractive ()) { @@ -738,8 +747,6 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) } else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play) { - movingItem = scene()->itemAt(this->mapToScene(event->posF().toPoint())); - connect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); if (!movingItem && !mController->cacheIsVisible()) mLongPressTimer.start(); @@ -1004,6 +1011,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) UBDrawingController::drawingController ()->setStylusTool (UBStylusTool::Selector); textItem->setSelected (true); + textItem->setFocus(); } else { diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 07ea3d97..738409ab 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1593,12 +1593,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c if(!textItem){ textItem = addTextWithFont(pString,QPointF(0,0) ,72,UBSettings::settings()->fontFamily(),true,false); textItem->setObjectName(objectName); + QSizeF size = textItem->size(); + textItem->setPos(QPointF(-size.width()/2.0,-size.height()/2.0)); } textItem->setPlainText(pString); textItem->adjustSize(); - QSizeF size = textItem->size(); - textItem->setPos(QPointF(-size.width()/2.0,-size.height()/2.0)); + textItem->clearFocus(); + textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); return textItem; }