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

1
tools/chatgui/src/videoplayer_window.h

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

Loading…
Cancel
Save