void MediaView::activeVideoChanged(Video *video, Video *previousVideo) { if (stopped) return; media->stop(); errorTimer->stop(); if (previousVideo && previousVideo != video) { if (previousVideo->isLoadingStreamUrl()) previousVideo->abortLoadStreamUrl(); } // optimize window for 16:9 video adjustWindowSize(); videoAreaWidget->showLoading(video); connect(video, &Video::gotStreamUrl, this, &MediaView::gotStreamUrl, Qt::UniqueConnection); connect(video, SIGNAL(errorStreamUrl(QString)), SLOT(skip()), Qt::UniqueConnection); video->loadStreamUrl(); // video title in titlebar MainWindow::instance()->setWindowTitle(video->getTitle() + QLatin1String(" - ") + QLatin1String(Constants::NAME)); // ensure active item is visible int row = playlistModel->rowForVideo(video); if (row != -1) { QModelIndex index = playlistModel->index(row, 0, QModelIndex()); playlistView->scrollTo(index, QAbstractItemView::EnsureVisible); } // enable/disable actions MainWindow::instance() ->getAction("download") ->setEnabled(DownloadManager::instance()->itemForVideo(video) == nullptr); MainWindow::instance()->getAction("previous")->setEnabled(row > 0); MainWindow::instance()->getAction("stopafterthis")->setEnabled(true); MainWindow::instance()->getAction("relatedVideos")->setEnabled(true); bool enableDownload = video->getLicense() == Video::LicenseCC; #ifdef APP_ACTIVATION enableDownload = enableDownload || Activation::instance().isLegacy(); #endif #ifdef APP_DOWNLOADS enableDownload = true; #endif QAction *a = MainWindow::instance()->getAction("download"); a->setEnabled(enableDownload); a->setVisible(enableDownload); updateSubscriptionAction(video, YTChannel::isSubscribed(video->getChannelId())); for (QAction *action : currentVideoActions) action->setEnabled(true); #ifdef APP_SNAPSHOT if (snapshotSettings) { delete snapshotSettings; snapshotSettings = nullptr; MainWindow::instance()->adjustStatusBarVisibility(); } #endif // see you in gotStreamUrl... }
void MediaView::activeRowChanged(int row) { if (stopped) return; errorTimer->stop(); #ifdef APP_PHONON mediaObject->stop(); #endif if (downloadItem) { downloadItem->stop(); delete downloadItem; downloadItem = 0; currentVideoSize = 0; } Video *video = playlistModel->videoAt(row); if (!video) return; videoAreaWidget->showLoading(video); connect(video, SIGNAL(gotStreamUrl(QUrl)), SLOT(gotStreamUrl(QUrl)), Qt::UniqueConnection); connect(video, SIGNAL(errorStreamUrl(QString)), SLOT(skip()), Qt::UniqueConnection); video->loadStreamUrl(); // video title in titlebar MainWindow::instance()->setWindowTitle(video->title() + " - " + Constants::NAME); // ensure active item is visible if (row != -1) { QModelIndex index = playlistModel->index(row, 0, QModelIndex()); playlistView->scrollTo(index, QAbstractItemView::EnsureVisible); } // enable/disable actions The::globalActions()->value("download")->setEnabled( DownloadManager::instance()->itemForVideo(video) == 0); The::globalActions()->value("previous")->setEnabled(row > 0); The::globalActions()->value("stopafterthis")->setEnabled(true); The::globalActions()->value("related-videos")->setEnabled(true); bool enableDownload = video->license() == Video::LicenseCC; #ifdef APP_ACTIVATION enableDownload = enableDownload || Activation::instance().isLegacy(); #endif #ifdef APP_DOWNLOADS enableDownload = true; #endif QAction *a = The::globalActions()->value("download"); a->setEnabled(enableDownload); a->setVisible(enableDownload); updateSubscriptionAction(video, YTChannel::isSubscribed(video->channelId())); foreach (QAction *action, currentVideoActions) action->setEnabled(true); #ifndef APP_PHONON_SEEK QSlider *slider = MainWindow::instance()->getSlider(); slider->setEnabled(false); slider->setValue(0); #endif if (snapshotSettings) { delete snapshotSettings; snapshotSettings = 0; MainWindow::instance()->adjustStatusBarVisibility(); } // see you in gotStreamUrl... }