summaryrefslogtreecommitdiffstats
path: root/examples/multimediawidgets/player/player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/multimediawidgets/player/player.cpp')
-rw-r--r--examples/multimediawidgets/player/player.cpp50
1 files changed, 38 insertions, 12 deletions
diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp
index 4d3340855..89246e65c 100644
--- a/examples/multimediawidgets/player/player.cpp
+++ b/examples/multimediawidgets/player/player.cpp
@@ -174,6 +174,15 @@ Player::Player(QWidget *parent)
layout->addLayout(hLayout);
layout->addLayout(controlLayout);
layout->addLayout(histogramLayout);
+#if defined(Q_OS_QNX)
+ // On QNX, the main window doesn't have a title bar (or any other decorations).
+ // Create a status bar for the status information instead.
+ m_statusLabel = new QLabel;
+ m_statusBar = new QStatusBar;
+ m_statusBar->addPermanentWidget(m_statusLabel);
+ m_statusBar->setSizeGripEnabled(false); // Without mouse grabbing, it doesn't work very well.
+ layout->addWidget(m_statusBar);
+#endif
setLayout(layout);
@@ -308,15 +317,17 @@ void Player::statusChanged(QMediaPlayer::MediaStatus status)
case QMediaPlayer::UnknownMediaStatus:
case QMediaPlayer::NoMedia:
case QMediaPlayer::LoadedMedia:
- case QMediaPlayer::BufferingMedia:
- case QMediaPlayer::BufferedMedia:
setStatusInfo(QString());
break;
case QMediaPlayer::LoadingMedia:
setStatusInfo(tr("Loading..."));
break;
+ case QMediaPlayer::BufferingMedia:
+ case QMediaPlayer::BufferedMedia:
+ setStatusInfo(tr("Buffering %1%").arg(m_player->bufferStatus()));
+ break;
case QMediaPlayer::StalledMedia:
- setStatusInfo(tr("Media Stalled"));
+ setStatusInfo(tr("Stalled %1%").arg(m_player->bufferStatus()));
break;
case QMediaPlayer::EndOfMedia:
QApplication::alert(this);
@@ -347,7 +358,10 @@ void Player::handleCursor(QMediaPlayer::MediaStatus status)
void Player::bufferingProgress(int progress)
{
- setStatusInfo(tr("Buffering %4%").arg(progress));
+ if (m_player->mediaStatus() == QMediaPlayer::StalledMedia)
+ setStatusInfo(tr("Stalled %1%").arg(progress));
+ else
+ setStatusInfo(tr("Buffering %1%").arg(progress));
}
void Player::videoAvailableChanged(bool available)
@@ -369,19 +383,31 @@ void Player::videoAvailableChanged(bool available)
void Player::setTrackInfo(const QString &info)
{
m_trackInfo = info;
- if (!m_statusInfo.isEmpty())
- setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
- else
- setWindowTitle(m_trackInfo);
+
+ if (m_statusBar) {
+ m_statusBar->showMessage(m_trackInfo);
+ m_statusLabel->setText(m_statusInfo);
+ } else {
+ if (!m_statusInfo.isEmpty())
+ setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
+ else
+ setWindowTitle(m_trackInfo);
+ }
}
void Player::setStatusInfo(const QString &info)
{
m_statusInfo = info;
- if (!m_statusInfo.isEmpty())
- setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
- else
- setWindowTitle(m_trackInfo);
+
+ if (m_statusBar) {
+ m_statusBar->showMessage(m_trackInfo);
+ m_statusLabel->setText(m_statusInfo);
+ } else {
+ if (!m_statusInfo.isEmpty())
+ setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
+ else
+ setWindowTitle(m_trackInfo);
+ }
}
void Player::displayErrorMessage()