From 5a47080303be54afdce84efbf8133d36a6edaf42 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 14 Sep 2012 12:53:34 +0300 Subject: [PATCH 1/4] Fixed UBMediaItem creation. --- src/domain/UBGraphicsMediaItem.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index d96ab915..1faba0ce 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -73,9 +73,6 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte mMediaObject = new Phonon::MediaObject(this); - setDelegate(new UBGraphicsMediaItemDelegate(this, mMediaObject)); - Delegate()->init(); - if (pMediaFileUrl.toLocalFile().contains("videos")) { mMediaType = mediaType_Video; @@ -91,7 +88,6 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte mVideoWidget->setMinimumSize(140,26); - setWidget(mVideoWidget); haveLinkedImage = true; } else @@ -111,7 +107,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte mAudioWidget->resize(320,26+3*borderSize); mAudioWidget->setMinimumSize(150,26+borderSize); - setWidget(mAudioWidget); + haveLinkedImage = false; } @@ -120,6 +116,19 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte mSource = Phonon::MediaSource(pMediaFileUrl); mMediaObject->setCurrentSource(mSource); + // we should create delegate after media objects because delegate uses his properties at creation. + setDelegate(new UBGraphicsMediaItemDelegate(this, mMediaObject)); + + // delegate should be created earler because we setWidget calls resize event for graphics proxy widgt. + // resize uses delegate. + if (mediaType_Video == mMediaType) + setWidget(mVideoWidget); + else + setWidget(mAudioWidget); + + // media widget should be created and placed on proxy widget here. + Delegate()->init(); + if (mediaType_Audio == mMediaType) Delegate()->frame()->setOperationMode(UBGraphicsDelegateFrame::ResizingHorizontally); else From 38af6e51320a84f0140e2f6eaead64780e51b9b5 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 17 Sep 2012 12:40:36 +0300 Subject: [PATCH 2/4] Fixed selection of added items. Now 1st added pixmap is selected. All selected items is deselected after adding any new item. --- src/board/UBBoardController.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 05c66ace..4fb34984 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1039,6 +1039,9 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri return NULL; } + + mActiveScene->deselectAllItems(); + if (!sourceUrl.toString().startsWith("file://") && !sourceUrl.toString().startsWith("uniboardTool://")) showMessage(tr("Download finished")); @@ -1068,8 +1071,8 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri else { mActiveScene->scaleToFitDocumentSize(pixItem, true, UBSettings::objectInControlViewMargin); - pixItem->setSelected(true); UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector); + pixItem->setSelected(true); } return pixItem; @@ -1088,8 +1091,8 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri else { mActiveScene->scaleToFitDocumentSize(svgItem, true, UBSettings::objectInControlViewMargin); - svgItem->setSelected(true); UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector); + svgItem->setSelected(true); } return svgItem; From 33988f4d48947973d9ed3af9a400d285c54aec58 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 17 Sep 2012 14:37:29 +0300 Subject: [PATCH 3/4] Fixed selection of Cursor and Pointer tools in desktop mode. --- src/desktop/UBDesktopAnnotationController.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index bb3fdbe1..d4ae1e75 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -658,6 +658,7 @@ void UBDesktopAnnotationController::selectorActionPressed() void UBDesktopAnnotationController::selectorActionReleased() { + UBApplication::mainWindow->actionSelector->setChecked(true); switchCursor(UBStylusTool::Selector); } @@ -669,6 +670,7 @@ void UBDesktopAnnotationController::pointerActionPressed() void UBDesktopAnnotationController::pointerActionReleased() { + UBApplication::mainWindow->actionPointer->setChecked(true); switchCursor(UBStylusTool::Pointer); } From f6247a26808eeb260e139aa506ec7385ec5c40d2 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 18 Sep 2012 09:27:17 +0300 Subject: [PATCH 4/4] Strokes can be moved by Play tool. --- src/board/UBBoardView.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 5500ec9b..13808a71 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -545,7 +545,6 @@ Here we determines cases when items should to get mouse press event at pressing break; // Groups shouldn't reacts on any presses and moves for Play tool. - case UBGraphicsStrokesGroup::Type: case UBGraphicsGroupContainerItem::Type: if(currentTool == UBStylusTool::Play) { @@ -631,7 +630,7 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item) case UBGraphicsGroupContainerItem::Type: return true; - case UBGraphicsW3CWidgetItem::Type: + case UBGraphicsWidgetItem::Type: if(currentTool == UBStylusTool::Selector && item->isSelected()) return false; if(currentTool == UBStylusTool::Play) @@ -657,10 +656,6 @@ QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item) if(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()) - return item->parentItem(); // if item is on group and group is not selected - group should take press. if (UBStylusTool::Selector == currentTool @@ -685,7 +680,7 @@ QGraphicsItem* UBBoardView::determineItemToMove(QGraphicsItem *item) UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); //W3C widgets should take mouse move events from play tool. - if ((UBStylusTool::Play == currentTool) && (UBGraphicsW3CWidgetItem::Type == item->type())) + if ((UBStylusTool::Play == currentTool) && (UBGraphicsWidgetItem::Type == item->type())) return item; // if item is in group @@ -754,6 +749,9 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) void UBBoardView::handleItemMouseMove(QMouseEvent *event) { + if (!movingItem) + return; + // determine item to move (maybee we need to move group of item or his parent. movingItem = determineItemToMove(movingItem);