void MediaView::setVideoSource(VideoSource *videoSource, bool addToHistory, bool back) { Q_UNUSED(back); stopped = false; errorTimer->stop(); // qDebug() << "Adding VideoSource" << videoSource->getName() << videoSource; if (addToHistory) { int currentIndex = getHistoryIndex(); if (currentIndex >= 0 && currentIndex < history.size() - 1) { while (history.size() > currentIndex + 1) { VideoSource *vs = history.takeLast(); if (!vs->parent()) { qDebug() << "Deleting VideoSource" << vs->getName() << vs; vs->deleteLater(); } } } history.append(videoSource); } #ifdef APP_EXTRA if (history.size() > 1) Extra::slideTransition(playlistView->viewport(), playlistView->viewport(), back); #endif playlistModel->setVideoSource(videoSource); if (media->state() == Media::StoppedState) { QSettings settings; if (settings.value("manualplay", false).toBool()) { videoAreaWidget->showPickMessage(); } } sidebar->showPlaylist(); sidebar->getRefineSearchWidget()->setSearchParams(getSearchParams()); sidebar->hideSuggestions(); sidebar->getHeader()->updateInfo(); SearchParams *searchParams = getSearchParams(); bool isChannel = searchParams && !searchParams->channelId().isEmpty(); playlistView->setClickableAuthors(!isChannel); }
void MediaView::stop() { stopped = true; while (!history.isEmpty()) { VideoSource *videoSource = history.takeFirst(); // Don't delete videoSource in the Browse view if (!videoSource->parent()) { videoSource->deleteLater(); } } playlistModel->abortSearch(); videoAreaWidget->clear(); videoAreaWidget->update(); errorTimer->stop(); playlistView->selectionModel()->clearSelection(); MainWindow::instance()->getAction("refineSearch")->setChecked(false); updateSubscriptionAction(nullptr, false); #ifdef APP_ACTIVATION demoTimer->stop(); #endif for (QAction *action : currentVideoActions) action->setEnabled(false); QAction *a = MainWindow::instance()->getAction("download"); a->setEnabled(false); a->setVisible(false); media->stop(); media->clearQueue(); currentVideoId.clear(); #ifdef APP_SNAPSHOT if (snapshotSettings) { delete snapshotSettings; snapshotSettings = nullptr; } #endif }