more streamlined UI

This commit is contained in:
itsmattkc
2018-10-15 10:33:58 +11:00
parent 3ca39d7b57
commit 20a264554c
6 changed files with 143 additions and 105 deletions
+43 -8
View File
@@ -32,6 +32,7 @@ Viewer::Viewer(QWidget *parent) :
{
ui->setupUi(this);
ui->headers->viewer = this;
ui->headers->snapping = false;
ui->headers->show_text(false);
ui->glViewerPane->child = ui->openGLWidget;
viewer_widget = ui->openGLWidget;
@@ -178,13 +179,13 @@ void Viewer::play() {
start_msecs = QDateTime::currentMSecsSinceEpoch();
playback_updater.start();
playing = true;
panel_sequence_viewer->set_playpause_icon(false);
set_playpause_icon(false);
audio_thread->notifyReceiver();
}
void Viewer::pause() {
playing = false;
panel_sequence_viewer->set_playpause_icon(true);
set_playpause_icon(true);
playback_updater.stop();
}
@@ -197,10 +198,28 @@ void Viewer::update_playhead_timecode(long p) {
}
void Viewer::update_end_timecode() {
ui->endTimecode->setText((seq == NULL) ? frame_to_timecode(0, config.timecode_view, 30) : frame_to_timecode(seq->getEndFrame(), config.timecode_view, seq->frame_rate));
ui->endTimecode->setText((seq == NULL) ? frame_to_timecode(0, config.timecode_view, 30) : frame_to_timecode(seq->getEndFrame(), config.timecode_view, seq->frame_rate));
}
void Viewer::update_header_zoom() {
if (seq != NULL) {
long sequenceEndFrame = seq->getEndFrame();
if (sequenceEndFrame > 0) {
ui->headers->update_zoom((double) ui->headers->width() / (double) sequenceEndFrame);
} else {
ui->headers->update_zoom(1);
}
}
}
void Viewer::update_viewer() {
viewer_widget->update();
update_header_zoom();
update_playhead_timecode(seq->playhead);
}
void Viewer::set_media(int type, void* media) {
main_sequence = false;
clean_created_seq();
switch (type) {
case MEDIA_TYPE_FOOTAGE:
@@ -209,6 +228,7 @@ void Viewer::set_media(int type, void* media) {
seq = new Sequence();
created_sequence = true;
seq->name = footage->name;
if (footage->video_tracks.size() > 0) {
MediaStream* video_stream = footage->video_tracks.at(0);
@@ -219,12 +239,13 @@ void Viewer::set_media(int type, void* media) {
Clip* c = new Clip(seq);
c->media = footage;
c->media_type = type;
c->media_stream = footage->video_tracks.at(0)->file_index;
c->media_stream = video_stream->file_index;
c->timeline_in = 0;
c->timeline_out = footage->get_length_in_frames(seq->frame_rate);
c->track = -1;
c->clip_in = 0;
c->recalculateMaxLength();
seq->clips.append(c);
} else {
seq->width = 1920;
seq->height = 1080;
@@ -234,6 +255,17 @@ void Viewer::set_media(int type, void* media) {
if (footage->audio_tracks.size() > 0) {
MediaStream* audio_stream = footage->audio_tracks.at(0);
seq->audio_frequency = audio_stream->audio_frequency;
Clip* c = new Clip(seq);
c->media = footage;
c->media_type = type;
c->media_stream = footage->video_tracks.at(0)->file_index;
c->timeline_in = 0;
c->timeline_out = footage->get_length_in_frames(seq->frame_rate);
c->track = -1;
c->clip_in = 0;
c->recalculateMaxLength();
seq->clips.append(c);
} else {
seq->audio_frequency = 48000;
}
@@ -274,9 +306,11 @@ void Viewer::update_playhead() {
}
void Viewer::timer_update() {
update_playhead_timecode(seq->playhead);
seq->playhead = round(playhead_start + ((QDateTime::currentMSecsSinceEpoch()-start_msecs) * 0.001 * seq->frame_rate));
if (main_sequence) panel_timeline->repaint_timeline(false);
update_viewer();
if (main_sequence) {
panel_timeline->repaint_timeline(false);
}
}
void Viewer::clean_created_seq() {
@@ -297,6 +331,7 @@ void Viewer::set_sequence(bool main, Sequence *s) {
bool null_sequence = (seq == NULL);
ui->headers->setEnabled(!null_sequence);
qDebug() << "headers enabled:" << ui->headers->isEnabled();
ui->currentTimecode->setEnabled(!null_sequence);
ui->openGLWidget->setEnabled(!null_sequence);
ui->openGLWidget->setVisible(!null_sequence);
@@ -311,8 +346,6 @@ void Viewer::set_sequence(bool main, Sequence *s) {
if (!null_sequence) {
playback_updater.setInterval(qFloor(1000 / seq->frame_rate));
config.timecode_view = (frame_rate_is_droppable(seq->frame_rate)) ? TIMECODE_DROP : TIMECODE_NONDROP;
update_playhead_timecode(seq->playhead);
update_end_timecode();
@@ -327,6 +360,8 @@ void Viewer::set_sequence(bool main, Sequence *s) {
setWindowTitle(panel_name + "(none)");
}
update_header_zoom();
viewer_widget->update();
update();