From 5a47080303be54afdce84efbf8133d36a6edaf42 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 14 Sep 2012 12:53:34 +0300 Subject: [PATCH] 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