vastly improved multithreaded loading and annchor point gizmo
This commit is contained in:
@@ -4,12 +4,15 @@
|
||||
#include <QThread>
|
||||
#include <QDir>
|
||||
#include <QXmlStreamReader>
|
||||
#include <QMutex>
|
||||
#include <QWaitCondition>
|
||||
|
||||
class Media;
|
||||
class Footage;
|
||||
class Clip;
|
||||
class Sequence;
|
||||
class LoadDialog;
|
||||
class EffectMeta;
|
||||
|
||||
class LoadThread : public QThread
|
||||
{
|
||||
@@ -17,15 +20,25 @@ class LoadThread : public QThread
|
||||
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<Media*> loaded_media_items;
|
||||
QDir proj_dir;
|
||||
@@ -34,10 +47,20 @@ private:
|
||||
bool show_err;
|
||||
QString error_str;
|
||||
|
||||
bool is_element(QXmlStreamReader& stream);
|
||||
|
||||
QVector<Media*> loaded_folders;
|
||||
QVector<Clip*> loaded_clips;
|
||||
QVector<Media*> 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
|
||||
|
||||
Reference in New Issue
Block a user