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->setValue(value);
}); });
_playbackSlider->setChangeProgressCallback([this](float64 value) { _playbackSlider->setChangeProgressCallback([this](float64 value) {
handleSeekProgress(value);
_playback->setValue(value, false); _playback->setValue(value, false);
handleSeekProgress(value);
}); });
_playbackSlider->setChangeFinishedCallback([this](float64 value) { _playbackSlider->setChangeFinishedCallback([this](float64 value) {
handleSeekFinished(value);
_playback->setValue(value, false); _playback->setValue(value, false);
handleSeekFinished(value);
}); });
_playPause->setClickedCallback([this] { _playPause->setClickedCallback([this] {
instance()->playPauseCancelClicked(AudioMsgId::Type::Song); instance()->playPauseCancelClicked(AudioMsgId::Type::Song);

View file

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

View file

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