refs #391, allow to send aircraft parts from GUI

* GUI component for aircraft parts
* remote aircraft selector component
* Adjusted GUI for internals component
* Enable / disable debug messages from GUI
* Allow to init engines directly
* Removed unused async sort in sequence

In same step fixed found issues in interpolator
* allow to set max rendered aircraft
This commit is contained in:
Klaus Basan
2015-03-07 03:34:17 +01:00
parent f31445e873
commit 5ed95aee3d
63 changed files with 1575 additions and 165 deletions

View File

@@ -13,10 +13,57 @@ namespace BlackMisc
{
namespace Aviation
{
CAircraftEngineList::CAircraftEngineList(std::initializer_list<bool> enginesOnOff)
{
int no = 1; // engines 1 based
for (auto it = enginesOnOff.begin(); it != enginesOnOff.end(); ++it)
{
CAircraftEngine engine(no++, *it);
this->push_back(engine);
}
}
CAircraftEngineList::CAircraftEngineList(const CSequence<CAircraftEngine> &other) :
CSequence<CAircraftEngine>(other)
{ }
CAircraftEngine CAircraftEngineList::getEngine(int engineNumber) const
{
Q_ASSERT(engineNumber >= 0);
return this->findBy(&CAircraftEngine::getNumber, engineNumber).frontOrDefault();
}
bool CAircraftEngineList::isEngineOn(int engineNumber) const
{
return getEngine(engineNumber).isOn();
}
QJsonObject CAircraftEngineList::toJson() const
{
QJsonObject map;
for (const auto &e : *this)
{
QJsonObject value = e.toJson();
map.insert(QString::number(e.getNumber()), value);
}
return map;
}
void CAircraftEngineList::convertFromJson(const QJsonObject &json)
{
clear();
for (const auto &e : json.keys())
{
CAircraftEngine engine;
int number = e.toInt();
engine.convertFromJson(json.value(e).toObject());
engine.setNumber(number);
push_back(engine);
}
}
void CAircraftEngineList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftEngine>>();