Allow to select COM frequencies from ATC view (context menu)

* added functions in component to select COM frequencies
* changed views to contain ObjectType in template
* function to obtain selected objects in view base class
This commit is contained in:
Klaus Basan
2014-12-22 21:17:13 +01:00
parent d0b5fc1249
commit b26fa651ed
25 changed files with 182 additions and 55 deletions

View File

@@ -20,7 +20,7 @@ namespace BlackCore
case CRuntimeConfig::Remote:
return new BlackCore::CContextOwnAircraftProxy(BlackCore::CDBusServer::ServiceName, conn, mode, parent);
default:
qFatal("Always initialize an ownaircraft context");
qFatal("Always initialize an ownAircraft context");
return nullptr;
}
}

View File

@@ -105,6 +105,9 @@ namespace BlackCore
//! \todo remove "own", left over from past
virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) = 0;
//! Tune in a com frequency
virtual bool updateComFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, int comUnit, const QString &originator) = 0;
//! Set current pilot
virtual bool updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator) = 0;

View File

@@ -179,6 +179,31 @@ namespace BlackCore
return changed;
}
/*
* COM frequency
*/
bool CContextOwnAircraft::updateComFrequency(const CFrequency &frequency, int comUnit, const QString &originator)
{
CComSystem::ComUnit unit = static_cast<CComSystem::ComUnit>(comUnit);
if (unit != CComSystem::Com1 && unit != CComSystem::Com2) { return false; }
if (!CComSystem::isValidComFrequency(frequency)) { return false; }
CComSystem com1 = this->m_ownAircraft.getCom1System();
CComSystem com2 = this->m_ownAircraft.getCom2System();
CTransponder xpdr = this->m_ownAircraft.getTransponder();
if (unit == CComSystem::Com1)
{
com1.setFrequencyActive(frequency);
}
else
{
com2.setFrequencyActive(frequency);
}
return updateOwnCockpit(com1, com2, xpdr, originator);
}
/*
* Pilot
*/
bool CContextOwnAircraft::updatePilot(const CUser &pilot, const QString &originator)
{
if (this->m_ownAircraft.getPilot() == pilot) { return false; }

View File

@@ -55,6 +55,9 @@ namespace BlackCore
//! \copydoc IContextOwnAircraft::updateOwnCockpit
virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override;
//! \copydoc IContextOwnAircraft::updateComFrequency
virtual bool updateComFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, int comUnit, const QString &originator) override;
//! \copydoc IContextOwnAircraft::updatePilot
virtual bool updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator) override;

View File

@@ -64,6 +64,11 @@ namespace BlackCore
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateOwnCockpit"), com1, com2, transponder, originator);
}
bool CContextOwnAircraftProxy::updateComFrequency(const PhysicalQuantities::CFrequency &frequency, int comUnit, const QString &originator)
{
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateComFrequency"), frequency, comUnit, originator);
}
bool CContextOwnAircraftProxy::updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator)
{
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updatePilot"), pilot, originator);

View File

@@ -61,6 +61,9 @@ namespace BlackCore
//! \copydoc IContextOwnAircraft::updateOwnCockpit
virtual bool updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override;
//! \copydoc IContextOwnAircraft::updateComFrequency
virtual bool updateComFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, int comUnit, const QString &originator) override;
//! \copydoc IContextOwnAircraft::updatePilot
virtual bool updatePilot(const BlackMisc::Network::CUser &pilot, const QString &originator) override;