mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-09 05:28:09 +08:00
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:
@@ -13,8 +13,20 @@ namespace BlackMisc
|
||||
{
|
||||
namespace Aviation
|
||||
{
|
||||
QString CAircraftEngine::convertToQString(bool /** i18n */) const
|
||||
CAircraftEngine::CAircraftEngine(int number, bool on) : m_number(number), m_on(on)
|
||||
{
|
||||
Q_ASSERT_X(number > 0, "CAircraftEngine", "Engine number have to be > 1");
|
||||
}
|
||||
|
||||
void CAircraftEngine::setNumber(int number)
|
||||
{
|
||||
Q_ASSERT_X(number > 0, "setNumber", "Engine number have to be > 1");
|
||||
m_number = number;
|
||||
}
|
||||
|
||||
QString CAircraftEngine::convertToQString(bool i18n) const
|
||||
{
|
||||
Q_UNUSED(i18n);
|
||||
QString s(m_number);
|
||||
s += m_on;
|
||||
return s;
|
||||
|
||||
@@ -27,13 +27,13 @@ namespace BlackMisc
|
||||
CAircraftEngine() = default;
|
||||
|
||||
//! Constructor
|
||||
CAircraftEngine(int number, bool on) : m_number(number), m_on(on) {}
|
||||
CAircraftEngine(int number, bool on);
|
||||
|
||||
//! Get engine number
|
||||
int getNumber() const { return m_number; }
|
||||
|
||||
//! Set engine number
|
||||
void setNumber (int number) { m_number = number; }
|
||||
void setNumber (int number);
|
||||
|
||||
//! Is on/off?
|
||||
bool isOn() const { return m_on; }
|
||||
@@ -61,4 +61,4 @@ BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Aviation::CAircraftEngine, (
|
||||
|
||||
Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftEngine)
|
||||
|
||||
#endif // BLACKMISC_AIRCRAFTENGINES_H
|
||||
#endif // guard
|
||||
|
||||
@@ -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>>();
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "aircraftengine.h"
|
||||
#include "blackmisc/collection.h"
|
||||
#include "blackmisc/sequence.h"
|
||||
#include <initializer_list>
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
@@ -27,41 +28,29 @@ namespace BlackMisc
|
||||
//! Default constructor.
|
||||
CAircraftEngineList() = default;
|
||||
|
||||
//! Construct by bool values for engines 1,2 ...
|
||||
CAircraftEngineList(std::initializer_list<bool> enginesOnOff);
|
||||
|
||||
//! Construct from a base class object.
|
||||
CAircraftEngineList(const CSequence<CAircraftEngine> &other);
|
||||
|
||||
//! Get engine 1..n
|
||||
CAircraftEngine getEngine(int engineNumber) const;
|
||||
|
||||
//! Engine number 1..x on?
|
||||
bool isEngineOn(int engineNumber) const;
|
||||
|
||||
//! \copydoc CValueObject::toQVariant
|
||||
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); }
|
||||
|
||||
//! \copydoc CValueObject::convertFromQVariant
|
||||
virtual void convertFromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); }
|
||||
|
||||
virtual QJsonObject toJson() const override
|
||||
{
|
||||
QJsonObject map;
|
||||
|
||||
for (const auto &e : *this)
|
||||
{
|
||||
QJsonObject value = e.toJson();
|
||||
map.insert(QString::number(e.getNumber()), value);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
//! \copydoc CValueObject::toJson
|
||||
virtual QJsonObject toJson() const override;
|
||||
|
||||
//! \copydoc CValueObject::convertFromJson
|
||||
virtual void convertFromJson(const QJsonObject &json) override
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
virtual void convertFromJson(const QJsonObject &json) override;
|
||||
|
||||
//! Register metadata
|
||||
static void registerMetadata();
|
||||
|
||||
@@ -100,12 +100,12 @@ namespace BlackMisc
|
||||
|
||||
CAircraftEngine CAircraftParts::getEngine(int number) const
|
||||
{
|
||||
return this->m_engines.findBy(&CAircraftEngine::getNumber, number).frontOrDefault();
|
||||
return this->m_engines.getEngine(number);
|
||||
}
|
||||
|
||||
bool CAircraftParts::isEngineOn(int number) const
|
||||
{
|
||||
return this->getEngine(number).isOn();
|
||||
return this->m_engines.isEngineOn(number);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace BlackMisc
|
||||
//! Engine with number
|
||||
CAircraftEngine getEngine(int number) const;
|
||||
|
||||
//! Is engine with number on?
|
||||
//! Is engine with number 1..n on?
|
||||
bool isEngineOn(int number) const;
|
||||
|
||||
//! Set engines
|
||||
|
||||
Reference in New Issue
Block a user