#ifndef PREVIEWCOORDINATOR_H #define PREVIEWCOORDINATOR_H #include #include #include #include "searchresult.h" #include "previewresult.h" #include "ipcpreviewclient.h" #include "rendertarget.h" class PreviewCoordinator : public QObject { Q_OBJECT private: QThread ipcClientThread; IPCPreviewClient ipcPreviewClient; QString socketPath; QVector> previewResults; QVector previewableSearchResults; unsigned int currentPreviewGeneration = 1; /* Quick lookup table for the order a preview should have */ QHash previewOrder; public: PreviewCoordinator(); void init(const QVector &searchResults); int previewableCount() const; const QVector &getPreviewableSearchResults() const; QSharedPointer resultAt(int index); void setSocketPath(QString socketPath); public slots: void startGeneration(RenderConfig config, const QVector &targets); void handleReceivedPreview(QSharedPointer preview, unsigned int previewGeneration); signals: void previewReady(); void completedGeneration(); void error(QString); void ipcStartGeneration(RenderConfig config, const QVector &targets); }; #endif // PREVIEWCOORDINATOR_H