summaryrefslogtreecommitdiffstats
path: root/examples/multimediawidgets/player/player.cpp
diff options
context:
space:
mode:
authorJames McDonnell <jmcdonnell@blackberry.com>2017-09-19 12:39:48 -0400
committerJames McDonnell <jmcdonnell@blackberry.com>2018-01-16 22:11:16 +0000
commit950e9b472890478f0460a060ae08cc16a06ac659 (patch)
tree56b3e141d77a642d3165fc690ca60c09ae2800a6 /examples/multimediawidgets/player/player.cpp
parentec576ef2a004fc291eb6475c15907f82d425e88e (diff)
QNX 7.0.0 audio management support
[ChangeLog][QNX] Added support for QNX 7.0.0 audio management. Change-Id: Ia9f1740577527126bf666627647084382e4d7ce9 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
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()