vastly improved multithreaded loading and annchor point gizmo
This commit is contained in:
+14
-6
@@ -868,13 +868,21 @@ void Effect::gizmo_move(EffectGizmo* gizmo, int x_movement, int y_movement, doub
|
||||
if (gizmos.at(i) == gizmo) {
|
||||
ComboAction* ca = NULL;
|
||||
if (done) ca = new ComboAction();
|
||||
if (gizmo->x_field != NULL) {
|
||||
gizmo->x_field->set_double_value(gizmo->x_field->get_double_value(timecode) + x_movement*gizmo->x_field_multi);
|
||||
gizmo->x_field->make_key_from_change(ca);
|
||||
if (gizmo->x_field1 != NULL) {
|
||||
gizmo->x_field1->set_double_value(gizmo->x_field1->get_double_value(timecode) + x_movement*gizmo->x_field_multi1);
|
||||
gizmo->x_field1->make_key_from_change(ca);
|
||||
}
|
||||
if (gizmo->y_field != NULL) {
|
||||
gizmo->y_field->set_double_value(gizmo->y_field->get_double_value(timecode) + y_movement*gizmo->y_field_multi);
|
||||
gizmo->y_field->make_key_from_change(ca);
|
||||
if (gizmo->y_field1 != NULL) {
|
||||
gizmo->y_field1->set_double_value(gizmo->y_field1->get_double_value(timecode) + y_movement*gizmo->y_field_multi1);
|
||||
gizmo->y_field1->make_key_from_change(ca);
|
||||
}
|
||||
if (gizmo->x_field2 != NULL) {
|
||||
gizmo->x_field2->set_double_value(gizmo->x_field2->get_double_value(timecode) + x_movement*gizmo->x_field_multi2);
|
||||
gizmo->x_field2->make_key_from_change(ca);
|
||||
}
|
||||
if (gizmo->y_field2 != NULL) {
|
||||
gizmo->y_field2->set_double_value(gizmo->y_field2->get_double_value(timecode) + y_movement*gizmo->y_field_multi2);
|
||||
gizmo->y_field2->make_key_from_change(ca);
|
||||
}
|
||||
if (done) undo_stack.push(ca);
|
||||
break;
|
||||
|
||||
+12
-6
@@ -4,10 +4,14 @@
|
||||
#include "effectfield.h"
|
||||
|
||||
EffectGizmo::EffectGizmo(int type) :
|
||||
x_field(NULL),
|
||||
x_field_multi(1.0),
|
||||
y_field(NULL),
|
||||
y_field_multi(1.0),
|
||||
x_field1(NULL),
|
||||
x_field_multi1(1.0),
|
||||
y_field1(NULL),
|
||||
y_field_multi1(1.0),
|
||||
x_field2(NULL),
|
||||
x_field_multi2(1.0),
|
||||
y_field2(NULL),
|
||||
y_field_multi2(1.0),
|
||||
type(type),
|
||||
cursor(-1)
|
||||
{
|
||||
@@ -19,8 +23,10 @@ EffectGizmo::EffectGizmo(int type) :
|
||||
}
|
||||
|
||||
void EffectGizmo::set_previous_value() {
|
||||
if (x_field != NULL) static_cast<LabelSlider*>(x_field->ui_element)->set_previous_value();
|
||||
if (y_field != NULL) static_cast<LabelSlider*>(y_field->ui_element)->set_previous_value();
|
||||
if (x_field1 != NULL) static_cast<LabelSlider*>(x_field1->ui_element)->set_previous_value();
|
||||
if (y_field1 != NULL) static_cast<LabelSlider*>(y_field1->ui_element)->set_previous_value();
|
||||
if (x_field2 != NULL) static_cast<LabelSlider*>(x_field2->ui_element)->set_previous_value();
|
||||
if (y_field2 != NULL) static_cast<LabelSlider*>(y_field2->ui_element)->set_previous_value();
|
||||
}
|
||||
|
||||
int EffectGizmo::get_point_count() {
|
||||
|
||||
@@ -24,10 +24,14 @@ public:
|
||||
QVector<QPoint> world_pos;
|
||||
QVector<QPoint> screen_pos;
|
||||
|
||||
EffectField* x_field;
|
||||
double x_field_multi;
|
||||
EffectField* y_field;
|
||||
double y_field_multi;
|
||||
EffectField* x_field1;
|
||||
double x_field_multi1;
|
||||
EffectField* y_field1;
|
||||
double y_field_multi1;
|
||||
EffectField* x_field2;
|
||||
double x_field_multi2;
|
||||
EffectField* y_field2;
|
||||
double y_field_multi2;
|
||||
|
||||
void set_previous_value();
|
||||
|
||||
|
||||
@@ -19,15 +19,13 @@ void ProjectModel::destroy_root() {
|
||||
if (panel_footage_viewer != NULL) panel_footage_viewer->viewer_widget->delete_function();
|
||||
|
||||
if (root_item != NULL) {
|
||||
beginRemoveRows(QModelIndex(), 0, root_item->childCount());
|
||||
delete root_item;
|
||||
endRemoveRows();
|
||||
}
|
||||
}
|
||||
|
||||
void ProjectModel::clear() {
|
||||
destroy_root();
|
||||
beginResetModel();
|
||||
destroy_root();
|
||||
root_item = new Media(0);
|
||||
root_item->root = true;
|
||||
endResetModel();
|
||||
@@ -132,6 +130,13 @@ Media *ProjectModel::getItem(const QModelIndex &index) const {
|
||||
return root_item;
|
||||
}
|
||||
|
||||
void ProjectModel::set_icon(Media* m, const QIcon &ico) {
|
||||
QModelIndex index = createIndex(m->row(), 0, m);
|
||||
m->set_icon(ico);
|
||||
emit dataChanged(index, index);
|
||||
|
||||
}
|
||||
|
||||
void ProjectModel::appendChild(Media *parent, Media *child) {
|
||||
if (parent == NULL) parent = root_item;
|
||||
beginInsertRows(parent == root_item ? QModelIndex() : createIndex(parent->row(), 0, parent), parent->childCount(), parent->childCount());
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
void removeChild(Media *parent, Media* m);
|
||||
Media *child(int i, Media* parent = NULL);
|
||||
int childCount(Media* parent = NULL);
|
||||
void set_icon(Media* m, const QIcon &ico);
|
||||
|
||||
private:
|
||||
Media* root_item;
|
||||
|
||||
Reference in New Issue
Block a user