From 646da9d255a08e7cdc670a66bfec0b7a100c9a0a Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 15 Oct 2012 11:53:54 +0300 Subject: [PATCH] Fixed crash at adding new page after conversion item as tool. --- src/board/UBBoardController.cpp | 11 +++++++++-- src/board/UBBoardView.cpp | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index b188a5d7..37a23e34 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -2362,10 +2362,17 @@ void UBBoardController::togglePodcast(bool checked) void UBBoardController::moveGraphicsWidgetToControlView(UBGraphicsWidgetItem* graphicsWidget) { mActiveScene->setURStackEnable(false); + UBGraphicsItem *toolW3C = duplicateItem(dynamic_cast(graphicsWidget)); + UBGraphicsWidgetItem *copyedGraphicsWidget = NULL; + + if (UBGraphicsWidgetItem::Type == toolW3C->type()) + copyedGraphicsWidget = static_cast(toolW3C); + + UBToolWidget *toolWidget = new UBToolWidget(copyedGraphicsWidget, mControlView); + graphicsWidget->remove(false); mActiveScene->addItemToDeletion(graphicsWidget); - - UBToolWidget *toolWidget = new UBToolWidget(graphicsWidget, mControlView); + mActiveScene->setURStackEnable(true); QPoint controlViewPos = mControlView->mapFromScene(graphicsWidget->sceneBoundingRect().center()); diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 1fef53e1..37c2fa15 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -866,6 +866,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) mMouseDownPos = event->pos (); movingItem = scene()->itemAt(this->mapToScene(event->posF().toPoint())); + if (!movingItem) emit clickOnBoard(); @@ -1099,6 +1100,11 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) if (currentTool == UBStylusTool::Selector) { bool bReleaseIsNeed = true; + if (movingItem != determineItemToPress(scene()->itemAt(this->mapToScene(event->posF().toPoint())))) + { + movingItem = NULL; + bReleaseIsNeed = false; + } if (mWidgetMoved) { mWidgetMoved = false;