diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index 7c48853a..9109ad67 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -94,9 +94,6 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte connect(Delegate(), SIGNAL(showOnDisplayChanged(bool)), this, SLOT(showOnDisplayChanged(bool))); - connect(mMediaObject, SIGNAL(videoAvailableChanged(bool)), - this, SLOT(hasMediaChanged(bool))); - connect(mMediaObject, static_cast(&QMediaPlayer::error), this, &UBGraphicsMediaItem::mediaError); } @@ -136,6 +133,8 @@ UBGraphicsVideoItem::UBGraphicsVideoItem(const QUrl &pMediaFileUrl, QGraphicsIte connect(mVideoItem, SIGNAL(nativeSizeChanged(QSizeF)), this, SLOT(videoSizeChanged(QSizeF))); + connect(mMediaObject, SIGNAL(videoAvailableChanged(bool)), + this, SLOT(hasVideoChanged(bool))); setAcceptHoverEvents(true); @@ -186,7 +185,7 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria void UBGraphicsMediaItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); - painter->setCompositionMode(QPainter::CompositionMode_SourceOver); + //painter->setCompositionMode(QPainter::CompositionMode_SourceOver); Delegate()->postpaint(painter, option, widget); painter->restore(); } @@ -290,19 +289,6 @@ void UBGraphicsMediaItem::setMute(bool bMute) sIsMutedByDefault = mMuted; } - -void UBGraphicsMediaItem::hasMediaChanged(bool hasMedia) -{ - if(hasMedia && mMediaObject->isSeekable()) { - mMediaObject->setPosition(mInitialPos); - - UBGraphicsMediaItemDelegate *med = dynamic_cast(Delegate()); - if (med) - med->updateTicker(initialPos()); - } -} - - UBGraphicsScene* UBGraphicsMediaItem::scene() { return qobject_cast(QGraphicsItem::scene()); @@ -517,7 +503,12 @@ void UBGraphicsVideoItem::videoSizeChanged(QSizeF newSize) Delegate()->showToolBar(false); } +void UBGraphicsVideoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + QGraphicsRectItem::paint(painter, option, widget); + UBGraphicsMediaItem::paint(painter, option, widget); +} void UBGraphicsVideoItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { @@ -536,3 +527,15 @@ void UBGraphicsVideoItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { QGraphicsRectItem::hoverLeaveEvent(event); } + +void UBGraphicsVideoItem::hasVideoChanged(bool hasVideo) +{ + if (hasVideo) { + setBrush(QColor(Qt::transparent)); + setPen(QColor(Qt::transparent)); + } + else { + setBrush(QColor(Qt::black)); + setPen(QColor(Qt::white)); + } +} diff --git a/src/domain/UBGraphicsMediaItem.h b/src/domain/UBGraphicsMediaItem.h index 3eb6e26d..3046e074 100644 --- a/src/domain/UBGraphicsMediaItem.h +++ b/src/domain/UBGraphicsMediaItem.h @@ -111,7 +111,6 @@ public slots: void toggleMute(); void setMute(bool bMute); void activeSceneChanged(); - void hasMediaChanged(bool hasMedia); void showOnDisplayChanged(bool shown); virtual void play(); @@ -176,8 +175,11 @@ public: virtual UBItem* deepCopy() const; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + public slots: void videoSizeChanged(QSizeF newSize); + void hasVideoChanged(bool hasVideo); protected: