Browse Source

chatgui: автозакрытие видеоплеера по завершении воспроизведения

v2
evgeny 3 weeks ago
parent
commit
c94acd892e
  1. 9
      tools/chatgui/src/videoplayer_window.cpp
  2. 1
      tools/chatgui/src/videoplayer_window.h

9
tools/chatgui/src/videoplayer_window.cpp

@ -101,6 +101,7 @@ VideoPlayerWindow::VideoPlayerWindow(QWidget* parent)
m_playBtn = new QPushButton(QStringLiteral("⏸"), m_controls);
m_playBtn->setToolTip(QStringLiteral("Пауза"));
m_playBtn->setFixedWidth(40);
m_slider = new QSlider(Qt::Horizontal, m_controls);
m_slider->setStyle(new SeekSliderStyle());
m_slider->setRange(0, 0);
@ -137,6 +138,7 @@ VideoPlayerWindow::VideoPlayerWindow(QWidget* parent)
connect(m_engine, &VideoPlayerEngine::stateChanged, this, &VideoPlayerWindow::onStateChanged);
connect(m_engine, &VideoPlayerEngine::error, this, &VideoPlayerWindow::onError);
connect(m_engine, &VideoPlayerEngine::framePresented, this, &VideoPlayerWindow::onFramePresented);
connect(m_engine, &VideoPlayerEngine::finished, this, &VideoPlayerWindow::onFinished);
resize(640, 360);
}
@ -233,6 +235,11 @@ void VideoPlayerWindow::onClose() {
close();
}
void VideoPlayerWindow::onFinished() {
DEBUG_INFO(DEBUG_CATEGORY_VIDEO, "VideoWindow: playback finished, closing");
onClose();
}
void VideoPlayerWindow::toggleFullscreen() {
if (m_fullscreen) {
showNormal();
@ -386,7 +393,7 @@ void VideoPlayerWindow::resizeEvent(QResizeEvent* e) {
int ch = 48;
m_controls->setGeometry(0, height() - ch, width(), ch);
m_controls->raise();
m_closeBtn->setGeometry(width() - 40, 8, 32, 32);
m_closeBtn->setGeometry(width() - 48, 8, 40, 32);
m_closeBtn->raise();
}

1
tools/chatgui/src/videoplayer_window.h

@ -59,6 +59,7 @@ private slots:
void onSliderReleased();
void onPlayPause();
void onClose();
void onFinished();
void showControls();
void hideControls();

Loading…
Cancel
Save