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>
This commit is contained in:
Yoann Lopes
2015-08-24 15:06:53 +02:00
parent 008d20e0ec
commit ded4d7b006

View File

@@ -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)