]> git.sur5r.net Git - minitube/commitdiff
Fixed loading of empty url when stopping videos
authorFlavio Tordini <flavio.tordini@gmail.com>
Wed, 2 Sep 2009 08:48:34 +0000 (10:48 +0200)
committerFlavio Tordini <flavio.tordini@gmail.com>
Wed, 2 Sep 2009 08:48:34 +0000 (10:48 +0200)
src/MediaView.cpp
src/MediaView.h

index f5b256fe319e31dde1d62a57814768047661ffe6..c4ed91efd7ce750275b7a6b80f8840488fee6db2 100644 (file)
@@ -79,7 +79,14 @@ MediaView::MediaView(QWidget *parent) : QWidget(parent) {
     videoAreaWidget = new VideoAreaWidget(this);
     videoAreaWidget->setMinimumSize(320,240);
 
+
+#ifdef Q_WS_MAC
+    // mouse autohide does not work on the Mac (no mouseMoveEvent)
+    videoWidget = new Phonon::VideoWidget(this);
+#else
     videoWidget = new VideoWidget(this);
+#endif
+
     videoAreaWidget->setVideoWidget(videoWidget);
     videoAreaWidget->setListModel(listModel);
 
@@ -96,6 +103,11 @@ MediaView::MediaView(QWidget *parent) : QWidget(parent) {
     errorTimer->setInterval(3000);
     connect(errorTimer, SIGNAL(timeout()), SLOT(skipVideo()));
 
+    workaroundTimer = new QTimer(this);
+    workaroundTimer->setSingleShot(true);
+    workaroundTimer->setInterval(1000);
+    connect(workaroundTimer, SIGNAL(timeout()), SLOT(timerPlay()));
+
 }
 
 MediaView::~MediaView() {
@@ -173,7 +185,7 @@ void MediaView::stateChanged(Phonon::State newState, Phonon::State /*oldState*/)
 
         // Workaround for Mac playback start problem
         if (!timerPlayFlag) {
-            QTimer::singleShot(1000, this, SLOT(timerPlay()));
+            workaroundTimer->start();
         }
 
         break;
@@ -211,10 +223,13 @@ void MediaView::stop() {
     listModel->abortSearch();
     reallyStopped = true;
     mediaObject->stop();
-    // mediaObject->clear();
+    workaroundTimer->stop();
+    errorTimer->stop();
 }
 
 void MediaView::activeRowChanged(int row) {
+    if (reallyStopped) return;
+
     Video *video = listModel->videoAt(row);
     if (!video) return;
 
@@ -240,6 +255,7 @@ void MediaView::activeRowChanged(int row) {
 }
 
 void MediaView::gotStreamUrl(QUrl streamUrl) {
+    if (reallyStopped) return;
 
     // go!
     mediaObject->setCurrentSource(streamUrl);
@@ -276,7 +292,7 @@ void MediaView::aboutToFinish() {
 }
 
 void MediaView::currentSourceChanged(const Phonon::MediaSource source) {
-    qDebug() << "Source changed:" << source.url();
+    qDebug() << source.url().toString();
 }
 
 
index 5344cc6e8cfe66342d70af0014f288669e8aabb0..616ad3ee08ae14362bcd71e71fc432da0a19baf3 100644 (file)
@@ -95,6 +95,7 @@ private:
     bool reallyStopped;
 
     QTimer *errorTimer;
+    QTimer *workaroundTimer;
     Video *skippedVideo;
 
 };