diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index 9d1f8d42..5aafded1 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -1150,11 +1150,10 @@ void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source, UBMetadataDcSubsetAdaptor::persist(proxy); refreshDocumentThumbnailsView(); - // NOTE [Didier]: I think that selecting the thumbnail is not the role of the documentController - mDocumentUI->thumbnailWidget->selectItemAt(target); - // Notify the move to anyone interested in knowing it emit movedToIndex(target); + + UBApplication::boardController->setActiveDocumentScene(proxy, target); } diff --git a/src/gui/UBDocumentNavigator.cpp b/src/gui/UBDocumentNavigator.cpp index 4efea020..0f6b6eff 100644 --- a/src/gui/UBDocumentNavigator.cpp +++ b/src/gui/UBDocumentNavigator.cpp @@ -391,17 +391,13 @@ void UBDocumentNavigator::mousePressEvent(QMouseEvent *event) mCrntItem = pCrntItem; } - // HACK: for an unknown reason, the mousePressEvent of the item is not - // called when a click occurs on it. So I created this method in - // order to handle the click. - mCrntItem->notifyClick(mapToScene(event->pos())); - // Then display the related page emit changeCurrentPage(); refreshScene(); } bNavig = false; } + QGraphicsView::mousePressEvent(event); } /** @@ -448,7 +444,8 @@ void UBDocumentNavigator::onMovedToIndex(int index) UBSceneThumbnailNavigPixmap* pItem = dynamic_cast(mThumbnails.at(index)); if(NULL != pItem) { - mCrntItem = pItem; + if(mCrntItem) mCrntItem->setSelected(false);//deselecting previous one + mCrntItem = pItem; mCrntItem->setSelected(true); centerOn(mCrntItem); } diff --git a/src/gui/UBThumbnailWidget.cpp b/src/gui/UBThumbnailWidget.cpp index e589300b..c7821ab9 100644 --- a/src/gui/UBThumbnailWidget.cpp +++ b/src/gui/UBThumbnailWidget.cpp @@ -740,25 +740,21 @@ void UBSceneThumbnailNavigPixmap::paint(QPainter *painter, const QStyleOptionGra void UBSceneThumbnailNavigPixmap::mousePressEvent(QGraphicsSceneMouseEvent *event) { - // INFO: This implementation should work but this method is not called on a mousePressEvent, why? - // PLEASE DO NOT REMOVE THIS METHOD! We should reactivate this code when we will fix - // the mousePressEvent-not-called issue! - -// QPointF p = event->pos(); - -// // Here we check the position of the click and verify if it has to trig an action or not. -// if(bCanDelete && p.x() >= 0 && p.x() <= BUTTONSIZE && p.y() >= 0 && p.y() <= BUTTONSIZE) -// { -// deletePage(); -// } -// if(bCanMoveUp && p.x() >= BUTTONSIZE + BUTTONSPACING && p.x() <= 2*BUTTONSIZE + BUTTONSPACING && p.y() >= 0 && p.y() <= BUTTONSIZE) -// { -// moveUpPage(); -// } -// if(bCanMoveDown && p.x() >= 2*(BUTTONSIZE + BUTTONSPACING) && p.x() <= 2*(BUTTONSIZE + BUTTONSPACING) + BUTTONSIZE && p.y() >= 0 && p.y() <= BUTTONSIZE) -// { -// moveDownPage(); -// } + QPointF p = event->pos(); + + // Here we check the position of the click and verify if it has to trig an action or not. + if(bCanDelete && p.x() >= 0 && p.x() <= BUTTONSIZE && p.y() >= 0 && p.y() <= BUTTONSIZE) + { + deletePage(); + } + if(bCanMoveUp && p.x() >= BUTTONSIZE + BUTTONSPACING && p.x() <= 2*BUTTONSIZE + BUTTONSPACING && p.y() >= 0 && p.y() <= BUTTONSIZE) + { + moveUpPage(); + } + if(bCanMoveDown && p.x() >= 2*(BUTTONSIZE + BUTTONSPACING) && p.x() <= 2*(BUTTONSIZE + BUTTONSPACING) + BUTTONSIZE && p.y() >= 0 && p.y() <= BUTTONSIZE) + { + moveDownPage(); + } event->accept(); } @@ -809,32 +805,3 @@ void UBSceneThumbnailNavigPixmap::moveDownPage() { UBApplication::documentController->moveSceneToIndex(proxy(), sceneIndex(), sceneIndex() + 1); } - -void UBSceneThumbnailNavigPixmap::notifyClick(QPointF clickedScenePos) -{ - QPointF p = clickedPos(clickedScenePos); - - // Here we check the position of the click and verify if it has to trig an action or not. - if(bCanDelete && p.x() >= 0 && p.x() <= BUTTONSIZE/2 && p.y() >= 0 && p.y() <= BUTTONSIZE/2) - { - deletePage(); - } - if(bCanMoveUp && p.x() >= (BUTTONSIZE + BUTTONSPACING)/2 && p.x() <= BUTTONSIZE + BUTTONSPACING && p.y() >= 0 && p.y() <= BUTTONSIZE/2) - { - moveUpPage(); - } - if(bCanMoveDown && p.x() >= BUTTONSIZE + BUTTONSPACING && p.x() <= BUTTONSIZE + BUTTONSPACING + BUTTONSIZE/2 && p.y() >= 0 && p.y() <= BUTTONSIZE/2) - { - moveDownPage(); - } -} - -QPointF UBSceneThumbnailNavigPixmap::clickedPos(QPointF clickedScenePos) -{ - QPointF p; - - p.setX(clickedScenePos.x() - scenePos().x()); - p.setY(clickedScenePos.y() - scenePos().y()); - - return p; -} diff --git a/src/gui/UBThumbnailWidget.h b/src/gui/UBThumbnailWidget.h index f3f25d6a..ed47869b 100644 --- a/src/gui/UBThumbnailWidget.h +++ b/src/gui/UBThumbnailWidget.h @@ -292,7 +292,6 @@ class UBSceneThumbnailNavigPixmap : public UBSceneThumbnailPixmap public: UBSceneThumbnailNavigPixmap(const QPixmap& pix, UBDocumentProxy* proxy, int pSceneIndex); ~UBSceneThumbnailNavigPixmap(); - void notifyClick(QPointF clickedScenePos); protected: void hoverEnterEvent(QGraphicsSceneHoverEvent *event); @@ -305,7 +304,6 @@ class UBSceneThumbnailNavigPixmap : public UBSceneThumbnailPixmap void deletePage(); void moveUpPage(); void moveDownPage(); - QPointF clickedPos(QPointF clickedScenePos); bool bButtonsVisible; bool bCanDelete;