reimplemented loading/saving into transitions
This commit is contained in:
+25
-15
@@ -23,26 +23,36 @@
|
||||
|
||||
#include <QString>
|
||||
|
||||
#define SAVE_VERSION 190201 // YYMMDD
|
||||
#define MIN_SAVE_VERSION 190104 // lowest compatible project version
|
||||
#define SAVE_VERSION 190219 // YYMMDD
|
||||
#define MIN_SAVE_VERSION 190219 // lowest compatible project version
|
||||
|
||||
#define TIMECODE_DROP 0
|
||||
#define TIMECODE_NONDROP 1
|
||||
#define TIMECODE_FRAMES 2
|
||||
#define TIMECODE_MILLISECONDS 3
|
||||
enum TimecodeType {
|
||||
TIMECODE_DROP,
|
||||
TIMECODE_NONDROP,
|
||||
TIMECODE_FRAMES,
|
||||
TIMECODE_MILLISECONDS
|
||||
};
|
||||
|
||||
#define RECORD_MODE_MONO 1
|
||||
#define RECORD_MODE_STEREO 2
|
||||
enum RecordingMode {
|
||||
RECORD_MODE_MONO,
|
||||
RECORD_MODE_STEREO
|
||||
};
|
||||
|
||||
#define AUTOSCROLL_NO_SCROLL 0
|
||||
#define AUTOSCROLL_PAGE_SCROLL 1
|
||||
#define AUTOSCROLL_SMOOTH_SCROLL 2
|
||||
enum AutoScrollMode {
|
||||
AUTOSCROLL_NO_SCROLL,
|
||||
AUTOSCROLL_PAGE_SCROLL,
|
||||
AUTOSCROLL_SMOOTH_SCROLL
|
||||
};
|
||||
|
||||
#define PROJECT_VIEW_TREE 0
|
||||
#define PROJECT_VIEW_ICON 1
|
||||
enum ProjectView {
|
||||
PROJECT_VIEW_TREE,
|
||||
PROJECT_VIEW_ICON
|
||||
};
|
||||
|
||||
#define FRAME_QUEUE_TYPE_FRAMES 0
|
||||
#define FRAME_QUEUE_TYPE_SECONDS 1
|
||||
enum FrameQueueType {
|
||||
FRAME_QUEUE_TYPE_FRAMES,
|
||||
FRAME_QUEUE_TYPE_SECONDS
|
||||
};
|
||||
|
||||
struct Config {
|
||||
Config();
|
||||
|
||||
+630
-696
File diff suppressed because it is too large
Load Diff
+38
-48
@@ -30,69 +30,59 @@
|
||||
|
||||
#include "project/projectelements.h"
|
||||
|
||||
struct TransitionData {
|
||||
int id;
|
||||
QString name;
|
||||
long length;
|
||||
ClipPtr otc;
|
||||
ClipPtr ctc;
|
||||
};
|
||||
|
||||
class LoadThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
public:
|
||||
LoadThread(bool a);
|
||||
void run();
|
||||
void cancel();
|
||||
LoadThread(bool a);
|
||||
void run();
|
||||
void cancel();
|
||||
signals:
|
||||
void start_question(const QString &title, const QString &text, int buttons);
|
||||
void success();
|
||||
void error();
|
||||
void start_create_effect_ui(QXmlStreamReader* stream, ClipPtr c, int type, const QString *effect_name, const EffectMeta* meta, long effect_length, bool effect_enabled);
|
||||
void start_create_dual_transition(const TransitionData* td, ClipPtr primary, ClipPtr secondary, const EffectMeta* meta);
|
||||
void report_progress(int p);
|
||||
void start_question(const QString &title, const QString &text, int buttons);
|
||||
void success();
|
||||
void error();
|
||||
void start_create_effect_ui(QXmlStreamReader* stream, ClipPtr c, int type, const QString *effect_name, const EffectMeta* meta, long effect_length, bool effect_enabled);
|
||||
void report_progress(int p);
|
||||
private slots:
|
||||
void question_func(const QString &title, const QString &text, int buttons);
|
||||
void error_func();
|
||||
void success_func();
|
||||
void create_effect_ui(QXmlStreamReader* stream, ClipPtr c, int type, const QString *effect_name, const EffectMeta* meta, long effect_length, bool effect_enabled);
|
||||
void create_dual_transition(const TransitionData* td, ClipPtr primary, ClipPtr secondary, const EffectMeta* meta);
|
||||
void question_func(const QString &title, const QString &text, int buttons);
|
||||
void error_func();
|
||||
void success_func();
|
||||
void create_effect_ui(QXmlStreamReader* stream, ClipPtr c, int type, const QString *effect_name, const EffectMeta* meta, long effect_length, bool effect_enabled);
|
||||
private:
|
||||
bool autorecovery;
|
||||
bool autorecovery;
|
||||
|
||||
bool load_worker(QFile& f, QXmlStreamReader& stream, int type);
|
||||
void load_effect(QXmlStreamReader& stream, ClipPtr c);
|
||||
bool load_worker(QFile& f, QXmlStreamReader& stream, int type);
|
||||
void load_effect(QXmlStreamReader& stream, ClipPtr c);
|
||||
|
||||
void read_next(QXmlStreamReader& stream);
|
||||
void read_next_start_element(QXmlStreamReader& stream);
|
||||
void update_current_element_count(QXmlStreamReader& stream);
|
||||
void read_next(QXmlStreamReader& stream);
|
||||
void read_next_start_element(QXmlStreamReader& stream);
|
||||
void update_current_element_count(QXmlStreamReader& stream);
|
||||
|
||||
SequencePtr open_seq;
|
||||
QVector<Media*> loaded_media_items;
|
||||
QDir proj_dir;
|
||||
QDir internal_proj_dir;
|
||||
QString internal_proj_url;
|
||||
bool show_err;
|
||||
QString error_str;
|
||||
SequencePtr open_seq;
|
||||
QVector<Media*> 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);
|
||||
bool is_element(QXmlStreamReader& stream);
|
||||
|
||||
QVector<Media*> loaded_folders;
|
||||
QVector<ClipPtr> loaded_clips;
|
||||
QVector<Media*> loaded_sequences;
|
||||
Media* find_loaded_folder_by_id(int id);
|
||||
QVector<Media*> loaded_folders;
|
||||
QVector<ClipPtr> loaded_clips;
|
||||
QVector<Media*> loaded_sequences;
|
||||
Media* find_loaded_folder_by_id(int id);
|
||||
|
||||
int current_element_count;
|
||||
int total_element_count;
|
||||
int current_element_count;
|
||||
int total_element_count;
|
||||
|
||||
QMutex mutex;
|
||||
QWaitCondition waitCond;
|
||||
QMutex mutex;
|
||||
QWaitCondition waitCond;
|
||||
|
||||
bool cancelled;
|
||||
bool xml_error;
|
||||
bool cancelled;
|
||||
bool xml_error;
|
||||
|
||||
QMessageBox::StandardButton question_btn;
|
||||
QMessageBox::StandardButton question_btn;
|
||||
};
|
||||
|
||||
#endif // LOADTHREAD_H
|
||||
|
||||
Reference in New Issue
Block a user