Movie editor: Fix bug if extending finished movie
This commit is contained in:
parent
81145d38ea
commit
f1399d2f2e
2 changed files with 15 additions and 2 deletions
|
@ -263,11 +263,11 @@ public:
|
|||
/**
|
||||
* Recount frames.
|
||||
*/
|
||||
void recount_frames() { frames_in_movie = movie_data.count_frames(); }
|
||||
void recount_frames() { adjust_frame_count(movie_data.count_frames() - frames_in_movie); }
|
||||
/**
|
||||
* Adjust frame count.
|
||||
*/
|
||||
void adjust_frame_count(int64_t adjust) { frames_in_movie += adjust; }
|
||||
void adjust_frame_count(int64_t adjust);
|
||||
private:
|
||||
//TRUE if readonly mode is active.
|
||||
bool readonly;
|
||||
|
|
|
@ -561,4 +561,17 @@ movie& movie::operator=(const movie& m)
|
|||
cached_subframe = m.cached_subframe;
|
||||
}
|
||||
|
||||
void movie::adjust_frame_count(int64_t adjust)
|
||||
{
|
||||
uint64_t old_frames = frames_in_movie;
|
||||
frames_in_movie += adjust;
|
||||
//If current_frame_first_subframe is in part extended, recompute it.
|
||||
if(current_frame > old_frames + 1) {
|
||||
current_frame_first_subframe = 0;
|
||||
if(current_frame > 0)
|
||||
for(uint64_t i = 0; i < current_frame - 1; i++)
|
||||
current_frame_first_subframe += count_changes(current_frame_first_subframe);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned extended_mode = 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue