began work on scrollable headers on viewer panels
This commit is contained in:
+11
-3
@@ -311,7 +311,11 @@ void MainWindow::on_actionZoom_In_triggered()
|
||||
panel_timeline->set_zoom(true);
|
||||
} else if (panel_effect_controls->keyframe_focus()) {
|
||||
panel_effect_controls->set_zoom(true);
|
||||
}
|
||||
} else if (panel_footage_viewer->is_focused()) {
|
||||
panel_footage_viewer->set_zoom(true);
|
||||
} else if (panel_sequence_viewer->is_focused()) {
|
||||
panel_sequence_viewer->set_zoom(true);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionZoom_out_triggered()
|
||||
@@ -320,7 +324,11 @@ void MainWindow::on_actionZoom_out_triggered()
|
||||
panel_timeline->set_zoom(false);
|
||||
} else if (panel_effect_controls->keyframe_focus()) {
|
||||
panel_effect_controls->set_zoom(false);
|
||||
}
|
||||
} else if (panel_footage_viewer->is_focused()) {
|
||||
panel_footage_viewer->set_zoom(false);
|
||||
} else if (panel_sequence_viewer->is_focused()) {
|
||||
panel_sequence_viewer->set_zoom(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionExport_triggered()
|
||||
@@ -582,7 +590,7 @@ void MainWindow::on_actionEdit_Tool_triggered()
|
||||
|
||||
void MainWindow::on_actionToggle_Snapping_triggered()
|
||||
{
|
||||
if (panel_timeline->focused()) panel_timeline->ui->snappingButton->click();
|
||||
if (panel_timeline->focused() || panel_effect_controls->keyframe_focus()) panel_timeline->ui->snappingButton->click();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionPointer_Tool_triggered()
|
||||
|
||||
+18
-3
@@ -37,7 +37,8 @@ Viewer::Viewer(QWidget *parent) :
|
||||
ui(new Ui::Viewer),
|
||||
created_sequence(false),
|
||||
cue_recording_internal(false),
|
||||
panel_name("Viewer: ")
|
||||
panel_name("Viewer: "),
|
||||
minimum_zoom(1.0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->headers->viewer = this;
|
||||
@@ -59,6 +60,7 @@ Viewer::Viewer(QWidget *parent) :
|
||||
|
||||
connect(&playback_updater, SIGNAL(timeout()), this, SLOT(timer_update()));
|
||||
connect(&recording_flasher, SIGNAL(timeout()), this, SLOT(recording_flasher_update()));
|
||||
connect(ui->horizontalScrollBar, SIGNAL(valueChanged(int)), ui->headers, SLOT(set_scroll(int)));
|
||||
|
||||
update_playhead_timecode(0);
|
||||
update_end_timecode();
|
||||
@@ -380,7 +382,12 @@ void Viewer::update_end_timecode() {
|
||||
void Viewer::update_header_zoom() {
|
||||
if (seq != NULL) {
|
||||
long sequenceEndFrame = seq->getEndFrame();
|
||||
ui->headers->update_zoom((sequenceEndFrame > 0) ? ((double) ui->headers->width() / (double) sequenceEndFrame) : 1);
|
||||
if (cached_end_frame != sequenceEndFrame) {
|
||||
minimum_zoom = (sequenceEndFrame > 0) ? ((double) ui->headers->width() / (double) sequenceEndFrame) : 1;
|
||||
ui->headers->update_zoom(qMax(ui->headers->get_zoom(), minimum_zoom));
|
||||
} else {
|
||||
ui->headers->update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,7 +418,15 @@ void Viewer::set_in_point() {
|
||||
}
|
||||
|
||||
void Viewer::set_out_point() {
|
||||
ui->headers->set_out_point(seq->playhead);
|
||||
ui->headers->set_out_point(seq->playhead);
|
||||
}
|
||||
|
||||
void Viewer::set_zoom(bool in) {
|
||||
if (in) {
|
||||
ui->headers->update_zoom(ui->headers->get_zoom()*2);
|
||||
} else {
|
||||
ui->headers->update_zoom(qMax(minimum_zoom, ui->headers->get_zoom()*0.5));
|
||||
}
|
||||
}
|
||||
|
||||
void Viewer::set_media(int type, void* media) {
|
||||
|
||||
@@ -36,6 +36,7 @@ public:
|
||||
void clear_inout_point();
|
||||
void set_in_point();
|
||||
void set_out_point();
|
||||
void set_zoom(bool in);
|
||||
|
||||
// playback functions
|
||||
void go_to_start();
|
||||
@@ -86,7 +87,9 @@ private:
|
||||
void set_sequence(bool main, Sequence* s);
|
||||
bool main_sequence;
|
||||
bool created_sequence;
|
||||
long cached_end_frame;
|
||||
QString panel_name;
|
||||
double minimum_zoom;
|
||||
|
||||
bool cue_recording_internal;
|
||||
QTimer recording_flasher;
|
||||
|
||||
@@ -64,6 +64,13 @@
|
||||
<item>
|
||||
<widget class="TimelineHeader" name="headers" native="true"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QScrollBar" name="horizontalScrollBar">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="playbackControls" native="true">
|
||||
<property name="sizePolicy">
|
||||
|
||||
@@ -255,7 +255,11 @@ void TimelineHeader::update_parents() {
|
||||
|
||||
void TimelineHeader::update_zoom(double z) {
|
||||
zoom = z;
|
||||
update();
|
||||
update();
|
||||
}
|
||||
|
||||
double TimelineHeader::get_zoom() {
|
||||
return zoom;
|
||||
}
|
||||
|
||||
void TimelineHeader::delete_markers() {
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
|
||||
void show_text(bool enable);
|
||||
void update_zoom(double z);
|
||||
double get_zoom();
|
||||
void delete_markers();
|
||||
|
||||
public slots:
|
||||
|
||||
Reference in New Issue
Block a user