void BackgroundJobs::SearchForVideosWithoutVideoThumbnailsJob::execute() { const DB::FileNameList images = DB::ImageDB::instance()->images(); for( const DB::FileName& image : images ) { const DB::ImageInfoPtr info = image.info(); if ( !info->isVideo() ) continue; // silently ignore videos not (currently) on disk: if ( ! info->fileName().exists() ) continue; const DB::FileName thumbnailName = BackgroundJobs::HandleVideoThumbnailRequestJob::frameName(info->fileName(),9); if ( thumbnailName.exists() ) continue; BackgroundJobs::ReadVideoLengthJob* readVideoLengthJob = new BackgroundJobs::ReadVideoLengthJob(info->fileName(), BackgroundTaskManager::BackgroundVideoPreviewRequest); for (int i=0; i<10; ++i) { ExtractOneThumbnailJob* extractJob = new ExtractOneThumbnailJob( info->fileName(), i, BackgroundTaskManager::BackgroundVideoPreviewRequest ); extractJob->addDependency(readVideoLengthJob); } BackgroundTaskManager::JobManager::instance()->addJob( readVideoLengthJob); } emit completed(); }
void MainWindow::ExternalPopup::populate( DB::ImageInfoPtr current, const DB::FileNameList& imageList ) { _list = imageList; _currentInfo = current; clear(); QAction *action; QStringList list = QStringList() << i18n("Current Item") << i18n("All Selected Items") << i18n("Copy and Open"); for ( int which = 0; which < 3; ++which ) { if ( which == 0 && !current ) continue; const bool multiple = (_list.count() > 1); const bool enabled = (which != 1 && _currentInfo ) || (which == 1 && multiple); // Submenu QMenu *submenu = addMenu( list[which] ); submenu->setEnabled(enabled); // Fetch set of offers OfferType offers; if ( which == 0 ) offers = appInfos( DB::FileNameList() << current->fileName() ); else offers = appInfos( imageList ); for ( OfferType::const_iterator offerIt = offers.begin(); offerIt != offers.end(); ++offerIt ) { action = submenu->addAction( (*offerIt).first ); action->setObjectName( (*offerIt).first ); // Notice this is needed to find the application later! action->setIcon( KIcon((*offerIt).second) ); action->setData( which ); action->setEnabled( enabled ); } // A personal command action = submenu->addAction( i18n("Open With...") ); action->setObjectName( i18n("Open With...") ); // Notice this is needed to find the application later! // XXX: action->setIcon( KIcon((*offerIt).second) ); action->setData( which ); action->setEnabled( enabled ); // A personal command // XXX: see kdialog.h for simple usage action = submenu->addAction( i18n("Your Command Line") ); action->setObjectName( i18n("Your Command Line") ); // Notice this is needed to find the application later! // XXX: action->setIcon( KIcon((*offerIt).second) ); action->setData( which ); action->setEnabled( enabled ); } }