Fix crash in video player seeking.

Regression was introduced in 87ff770020.

Seek handler may destroy controller so first the playback is updated.
This commit is contained in:
John Preston 2017-05-31 11:58:43 +03:00
parent 81e728ada0
commit 66662e02a6
3 changed files with 6 additions and 6 deletions

View file

@ -94,12 +94,12 @@ CoverWidget::CoverWidget(QWidget *parent) : TWidget(parent)
_playbackSlider->setValue(value);
});
_playbackSlider->setChangeProgressCallback([this](float64 value) {
handleSeekProgress(value);
_playback->setValue(value, false);
handleSeekProgress(value);
});
_playbackSlider->setChangeFinishedCallback([this](float64 value) {
handleSeekFinished(value);
_playback->setValue(value, false);
handleSeekFinished(value);
});
_playPause->setClickedCallback([this] {
instance()->playPauseCancelClicked(AudioMsgId::Type::Song);

View file

@ -111,15 +111,15 @@ Widget::Widget(QWidget *parent) : TWidget(parent)
if (_type != AudioMsgId::Type::Song) {
return; // Round video seek is not supported for now :(
}
handleSeekProgress(value);
_playback->setValue(value, false);
handleSeekProgress(value);
});
_playbackSlider->setChangeFinishedCallback([this](float64 value) {
if (_type != AudioMsgId::Type::Song) {
return; // Round video seek is not supported for now :(
}
handleSeekFinished(value);
_playback->setValue(value, false);
handleSeekFinished(value);
});
_playPause->setClickedCallback([this] {
instance()->playPauseCancelClicked(_type);

View file

@ -58,12 +58,12 @@ Controller::Controller(QWidget *parent) : TWidget(parent)
_playbackSlider->setValue(value);
});
_playbackSlider->setChangeProgressCallback([this](float64 value) {
handleSeekProgress(value);
_playback->setValue(value, false);
handleSeekProgress(value); // This may destroy Controller.
});
_playbackSlider->setChangeFinishedCallback([this](float64 value) {
handleSeekFinished(value);
_playback->setValue(value, false);
handleSeekFinished(value);
});
}