summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@theqtcompany.com>2015-08-24 15:06:53 +0200
committerYoann Lopes <yoann.lopes@theqtcompany.com>2015-08-25 08:56:17 +0000
commitded4d7b006180d12f4f2e7642877ffc6586a5331 (patch)
tree65e9b4ca807059791cbf953582c16aacb4d17181 /src
parent008d20e0ece4c6dac148915b998a0005657d73a1 (diff)
Fix possible crashes in QDeclarativeRadioData.
It would crash when accessing any of its properties when there is no radio backend available. Task-number: QTBUG-47859 Change-Id: Ic7c0a70ca3e9a4768359b3429ea812caece09fce Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/imports/multimedia/qdeclarativeradiodata.cpp38
1 files changed, 30 insertions, 8 deletions
diff --git a/src/imports/multimedia/qdeclarativeradiodata.cpp b/src/imports/multimedia/qdeclarativeradiodata.cpp
index 51d3bb877..f272e8d09 100644
--- a/src/imports/multimedia/qdeclarativeradiodata.cpp
+++ b/src/imports/multimedia/qdeclarativeradiodata.cpp
@@ -129,7 +129,10 @@ QDeclarativeRadioData::~QDeclarativeRadioData()
*/
QDeclarativeRadioData::Availability QDeclarativeRadioData::availability() const
{
- return Availability(m_radioData->availability());
+ if (m_radioData)
+ return Availability(m_radioData->availability());
+
+ return Unavailable;
}
@@ -141,7 +144,10 @@ QDeclarativeRadioData::Availability QDeclarativeRadioData::availability() const
*/
QString QDeclarativeRadioData::stationId() const
{
- return m_radioData->stationId();
+ if (m_radioData)
+ return m_radioData->stationId();
+
+ return QString();
}
/*!
@@ -206,7 +212,10 @@ QString QDeclarativeRadioData::stationId() const
*/
QDeclarativeRadioData::ProgramType QDeclarativeRadioData::programType() const
{
- return static_cast<QDeclarativeRadioData::ProgramType>(m_radioData->programType());
+ if (m_radioData)
+ return static_cast<QDeclarativeRadioData::ProgramType>(m_radioData->programType());
+
+ return Undefined;
}
/*!
@@ -216,7 +225,10 @@ QDeclarativeRadioData::ProgramType QDeclarativeRadioData::programType() const
*/
QString QDeclarativeRadioData::programTypeName() const
{
- return m_radioData->programTypeName();
+ if (m_radioData)
+ return m_radioData->programTypeName();
+
+ return QString();
}
/*!
@@ -226,7 +238,10 @@ QString QDeclarativeRadioData::programTypeName() const
*/
QString QDeclarativeRadioData::stationName() const
{
- return m_radioData->stationName();
+ if (m_radioData)
+ return m_radioData->stationName();
+
+ return QString();
}
/*!
@@ -238,7 +253,10 @@ QString QDeclarativeRadioData::stationName() const
*/
QString QDeclarativeRadioData::radioText() const
{
- return m_radioData->radioText();
+ if (m_radioData)
+ return m_radioData->radioText();
+
+ return QString();
}
/*!
@@ -250,12 +268,16 @@ QString QDeclarativeRadioData::radioText() const
*/
bool QDeclarativeRadioData::alternativeFrequenciesEnabled() const
{
- return m_radioData->isAlternativeFrequenciesEnabled();
+ if (m_radioData)
+ return m_radioData->isAlternativeFrequenciesEnabled();
+
+ return false;
}
void QDeclarativeRadioData::setAlternativeFrequenciesEnabled(bool enabled)
{
- m_radioData->setAlternativeFrequenciesEnabled(enabled);
+ if (m_radioData)
+ m_radioData->setAlternativeFrequenciesEnabled(enabled);
}
void QDeclarativeRadioData::_q_programTypeChanged(QRadioData::ProgramType programType)