diff --git a/dialogs/speeddialog.cpp b/dialogs/speeddialog.cpp index af1ce5aad..fd235fde8 100644 --- a/dialogs/speeddialog.cpp +++ b/dialogs/speeddialog.cpp @@ -40,6 +40,7 @@ SpeedDialog::SpeedDialog(QWidget *parent) : QDialog(parent) { grid->addWidget(new QLabel("Duration:"), 2, 0); duration = new LabelSlider(); duration->set_display_type(LABELSLIDER_FRAMENUMBER); + duration->set_frame_rate(sequence->frame_rate); grid->addWidget(duration, 2, 1); main_layout->addLayout(grid); diff --git a/panels/viewer.cpp b/panels/viewer.cpp index 6a4e13523..b3309754c 100644 --- a/panels/viewer.cpp +++ b/panels/viewer.cpp @@ -347,6 +347,8 @@ void Viewer::set_sequence(bool main, Sequence *s) { init_audio(seq); if (!null_sequence) { + ui->currentTimecode->set_frame_rate(seq->frame_rate); + playback_updater.setInterval(qFloor(1000 / seq->frame_rate)); update_playhead_timecode(seq->playhead); diff --git a/ui/labelslider.cpp b/ui/labelslider.cpp index 9e34c55c0..471227e2a 100644 --- a/ui/labelslider.cpp +++ b/ui/labelslider.cpp @@ -3,7 +3,6 @@ #include "project/undo.h" #include "panels/viewer.h" #include "io/config.h" -#include "project/sequence.h" #include #include @@ -11,6 +10,7 @@ #include LabelSlider::LabelSlider(QWidget* parent) : QLabel(parent) { + frame_rate = 30; decimal_places = 1; drag_start = false; drag_proc = false; @@ -25,6 +25,10 @@ LabelSlider::LabelSlider(QWidget* parent) : QLabel(parent) { display_type = LABELSLIDER_NORMAL; } +void LabelSlider::set_frame_rate(double d) { + frame_rate = d; +} + void LabelSlider::set_display_type(int type) { display_type = type; setText(valueToString(internal_value)); @@ -59,7 +63,7 @@ QString LabelSlider::valueToString(double v) { return "---"; } else { switch (display_type) { - case LABELSLIDER_FRAMENUMBER: return frame_to_timecode(v, config.timecode_view, (sequence != NULL) ? sequence->frame_rate : 30); + case LABELSLIDER_FRAMENUMBER: return frame_to_timecode(v, config.timecode_view, frame_rate); case LABELSLIDER_PERCENT: return QString::number((v*100), 'f', decimal_places) + "%"; } return QString::number(v, 'f', decimal_places); diff --git a/ui/labelslider.h b/ui/labelslider.h index a25e5d1ad..b5d75bd33 100644 --- a/ui/labelslider.h +++ b/ui/labelslider.h @@ -13,6 +13,7 @@ class LabelSlider : public QLabel Q_OBJECT public: LabelSlider(QWidget* parent = 0); + void set_frame_rate(double d); void set_display_type(int type); void set_value(double v, bool userSet); void set_default_value(double v); @@ -48,6 +49,8 @@ private: bool set; int display_type; + + double frame_rate; signals: void valueChanged(); }; diff --git a/ui/timelinewidget.cpp b/ui/timelinewidget.cpp index fce04fc16..d3a098f5a 100644 --- a/ui/timelinewidget.cpp +++ b/ui/timelinewidget.cpp @@ -259,7 +259,7 @@ void TimelineWidget::dragEnterEvent(QDragEnterEvent *event) { } } else { entry_point = panel_timeline->getTimelineFrameFromScreenPoint(pos.x()); - panel_timeline->drag_frame_start = entry_point + panel_timeline->getTimelineFrameFromScreenPoint(50); + panel_timeline->drag_frame_start = entry_point + getFrameFromScreenPoint(panel_timeline->zoom, 50); panel_timeline->drag_track_start = (bottom_align) ? -1 : 0; predicted_new_frame_rate = sequence->frame_rate; } @@ -347,14 +347,14 @@ void TimelineWidget::dragEnterEvent(QDragEnterEvent *event) { } else if (config.enable_drag_files_to_timeline && event->mimeData()->hasUrls()) { // TODO for this to work, we need a way to abort PreviewGenerator - event->accept(); + /*event->accept(); qDebug() << "TODO get data for:"; QList urls = event->mimeData()->urls(); if (!urls.isEmpty()) { for (int i=0;i