1 #ifndef SINGLEVIDEOSOURCE_H 2 #define SINGLEVIDEOSOURCE_H 3 4 #include <QtCore> 5 6 #include "video.h" 7 #include "videosource.h" 8 9 class SingleVideoSource : public VideoSource { 10 Q_OBJECT 11 12 public: 13 SingleVideoSource(QObject *parent = nullptr); 14 15 void setVideo(Video *value); 16 void setVideoId(const QString &value); 17 18 void loadVideos(int max, int startIndex); 19 bool hasMoreVideos(); abort()20 void abort() { aborted = true; } 21 QString getName(); 22 const QList<QAction *> &getActions(); 23 int maxResults(); 24 25 private: setupSource(SourceType s)26 template <typename SourceType> SourceType setupSource(SourceType s) { 27 if (video) 28 s->setVideo(video); 29 else 30 s->setVideoId(videoId); 31 return s; 32 } 33 void connectSource(int max, int startIndex); 34 35 Video *video = nullptr; 36 QString videoId; 37 VideoSource *source = nullptr; 38 bool aborted = false; 39 QStringList emittedVideoIds; 40 }; 41 42 #endif // SINGLEVIDEOSOURCE_H 43