#ifndef LOADTHREAD_H #define LOADTHREAD_H #include #include #include #include #include class Media; class Footage; class Clip; class Sequence; class LoadDialog; class EffectMeta; class LoadThread : public QThread { Q_OBJECT public: LoadThread(LoadDialog* l, bool a); void run(); void cancel(); signals: void success(); void start_create_effect_ui(QXmlStreamReader* stream, Clip* c, int type, const EffectMeta* meta, long effect_length, bool effect_enabled); void report_progress(int p); private slots: void success_func(); void create_effect_ui(QXmlStreamReader* stream, Clip* c, int type, const EffectMeta* meta, long effect_length, bool effect_enabled); private: LoadDialog* ld; bool autorecovery; bool load_worker(QFile& f, QXmlStreamReader& stream, int type); void load_effect(QXmlStreamReader& stream, Clip* c); void read_next(QXmlStreamReader& stream); void read_next_start_element(QXmlStreamReader& stream); void update_current_element_count(QXmlStreamReader& stream); Sequence* open_seq; QVector loaded_media_items; QDir proj_dir; QDir internal_proj_dir; QString internal_proj_url; bool show_err; QString error_str; bool is_element(QXmlStreamReader& stream); QVector loaded_folders; QVector loaded_clips; QVector loaded_sequences; Media* find_loaded_folder_by_id(int id); int current_element_count; int total_element_count; QMutex mutex; QWaitCondition waitCond; bool cancelled; }; #endif // LOADTHREAD_H