SEVERAL bug fixes

This commit is contained in:
itsmattkc
2018-10-12 18:48:14 +11:00
parent caee50a943
commit cdbec85a81
30 changed files with 444 additions and 149 deletions
+25 -23
View File
@@ -178,33 +178,35 @@ long Clip::getLength() {
}
void Clip::recalculateMaxLength() {
double fr = this->sequence->frame_rate;
if (sequence != NULL) {
double fr = this->sequence->frame_rate;
fr /= speed;
fr /= speed;
switch (media_type) {
case MEDIA_TYPE_FOOTAGE:
{
Media* m = static_cast<Media*>(media);
MediaStream* ms = m->get_stream_from_file_index(track < 0, media_stream);
if (ms != NULL && ms->infinite_length) {
switch (media_type) {
case MEDIA_TYPE_FOOTAGE:
{
Media* m = static_cast<Media*>(media);
MediaStream* ms = m->get_stream_from_file_index(track < 0, media_stream);
if (ms != NULL && ms->infinite_length) {
calculated_length = LONG_MAX;
} else {
calculated_length = m->get_length_in_frames(fr);
}
}
break;
case MEDIA_TYPE_SEQUENCE:
{
Sequence* s = static_cast<Sequence*>(media);
calculated_length = refactor_frame_number(s->getEndFrame(), s->frame_rate, fr);
}
break;
/*case MEDIA_TYPE_SOLID:
case MEDIA_TYPE_TONE:*/
default:
calculated_length = LONG_MAX;
} else {
calculated_length = m->get_length_in_frames(fr);
break;
}
}
break;
case MEDIA_TYPE_SEQUENCE:
{
Sequence* s = static_cast<Sequence*>(media);
calculated_length = refactor_frame_number(s->getEndFrame(), s->frame_rate, fr);
}
break;
/*case MEDIA_TYPE_SOLID:
case MEDIA_TYPE_TONE:*/
default:
calculated_length = LONG_MAX;
break;
}
}
+1 -3
View File
@@ -8,7 +8,6 @@
#include "project/selection.h"
struct Sequence {
public:
Sequence();
~Sequence();
Sequence* copy();
@@ -31,8 +30,7 @@ public:
int save_id;
QVector<Marker> markers;
QVector<Clip*> clips;
private:
QVector<Clip*> clips;
};
// static variable for the currently active sequence
+7 -3
View File
@@ -352,8 +352,10 @@ DeleteMediaCommand::DeleteMediaCommand(QTreeWidgetItem* i) :
{}
DeleteMediaCommand::~DeleteMediaCommand() {
panel_project->delete_media(item);
delete item;
if (done) {
panel_project->delete_media(item);
delete item;
}
}
void DeleteMediaCommand::undo() {
@@ -364,6 +366,7 @@ void DeleteMediaCommand::undo() {
}
mainWindow->setWindowModified(old_project_changed);
done = false;
}
void DeleteMediaCommand::redo() {
@@ -373,9 +376,10 @@ void DeleteMediaCommand::redo() {
panel_project->source_table->takeTopLevelItem(panel_project->source_table->indexOfTopLevelItem(item));
} else {
parent->removeChild(item);
}
}
mainWindow->setWindowModified(true);
done = true;
}
RippleCommand::RippleCommand(Sequence *s, long ipoint, long ilength) :
+1
View File
@@ -193,6 +193,7 @@ private:
QTreeWidgetItem* item;
QTreeWidgetItem* parent;
bool old_project_changed;
bool done;
};
class RippleCommand : public QUndoCommand {