refs #415, mixin style lists

This commit is contained in:
Klaus Basan
2015-05-18 20:33:34 +02:00
parent 6d5c3d85a1
commit bad3ed3ea8
48 changed files with 126 additions and 528 deletions

View File

@@ -39,12 +39,5 @@ namespace BlackMisc
});
}
void CAudioDeviceInfoList::registerMetadata()
{
qRegisterMetaType<CAudioDeviceInfoList>();
qDBusRegisterMetaType<CAudioDeviceInfoList>();
registerMetaValueType<CAudioDeviceInfoList>();
}
} // namespace
} // namespace

View File

@@ -25,9 +25,13 @@ namespace BlackMisc
namespace Audio
{
//! Value object encapsulating a list of audio devices.
class BLACKMISC_EXPORT CAudioDeviceInfoList : public CSequence<CAudioDeviceInfo>
class BLACKMISC_EXPORT CAudioDeviceInfoList :
public CSequence<CAudioDeviceInfo>,
public BlackMisc::Mixin::MetaType<CAudioDeviceInfoList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAudioDeviceInfoList)
//! Default constructor.
CAudioDeviceInfoList();
@@ -42,15 +46,6 @@ namespace BlackMisc
//! Count (as of type)
int count(CAudioDeviceInfo::DeviceType type) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -21,13 +21,6 @@ namespace BlackMisc
CSequence(other)
{ }
void CVoiceRoomList::registerMetadata()
{
qRegisterMetaType<CVoiceRoomList>();
qDBusRegisterMetaType<CVoiceRoomList>();
registerMetaValueType<CVoiceRoomList>();
}
const CVoiceRoomList &CVoiceRoomList::twoEmptyRooms()
{
static CVoiceRoomList emptyRooms;

View File

@@ -24,27 +24,20 @@ namespace BlackMisc
{
namespace Audio
{
/*!
* Value object encapsulating a list of voice rooms.
*/
class BLACKMISC_EXPORT CVoiceRoomList : public CSequence<CVoiceRoom>
//! Value object encapsulating a list of voice rooms.
class BLACKMISC_EXPORT CVoiceRoomList :
public CSequence<CVoiceRoom>,
public BlackMisc::Mixin::MetaType<CVoiceRoomList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CVoiceRoomList)
//! Default constructor.
CVoiceRoomList();
//! Construct from a base class object.
CVoiceRoomList(const CSequence &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! \brief Register metadata
static void registerMetadata();
//! Frequently needed for voice room resolutions
static const CVoiceRoomList &twoEmptyRooms();
};

View File

@@ -64,17 +64,5 @@ namespace BlackMisc
push_back(engine);
}
}
void CAircraftEngineList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftEngine>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftEngine>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftEngine>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftEngine>>();
qRegisterMetaType<CAircraftEngineList>();
qDBusRegisterMetaType<CAircraftEngineList>();
registerMetaValueType<CAircraftEngineList>();
}
} // namespace
} // namespace

View File

@@ -23,9 +23,13 @@ namespace BlackMisc
namespace Aviation
{
//! Value object encapsulating a list of aircraft engines.
class BLACKMISC_EXPORT CAircraftEngineList : public CSequence<CAircraftEngine>
class BLACKMISC_EXPORT CAircraftEngineList :
public CSequence<CAircraftEngine>,
public BlackMisc::Mixin::MetaType<CAircraftEngineList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftEngineList)
//! Default constructor.
CAircraftEngineList() = default;
@@ -41,20 +45,12 @@ namespace BlackMisc
//! Engine number 1..x on?
bool isEngineOn(int engineNumber) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! \copydoc CValueObject::toJson
QJsonObject toJson() const;
//! \copydoc CValueObject::convertFromJson
void convertFromJson(const QJsonObject &json);
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -27,7 +27,6 @@ namespace BlackMisc
public CSequence<CAircraftIcaoCode>,
public BlackMisc::Mixin::MetaType<CAircraftIcaoCodeList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftIcaoCodeList)

View File

@@ -27,17 +27,6 @@ namespace BlackMisc
CSequence<CAircraft>(other)
{ }
void CAircraftList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraft>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraft>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraft>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraft>>();
qRegisterMetaType<CAircraftList>();
qDBusRegisterMetaType<CAircraftList>();
registerMetaValueType<CAircraftList>();
}
CUserList CAircraftList::getPilots() const
{
return this->findBy(Predicates::MemberValid(&CAircraft::getPilot)).transform(Predicates::MemberTransform(&CAircraft::getPilot));

View File

@@ -29,12 +29,16 @@ namespace BlackMisc
namespace Aviation
{
//! Value object encapsulating a list of aircraft.
//! \deprecated consider using CSimulatedAircraftList
class BLACKMISC_EXPORT CAircraftList :
public CSequence<CAircraft>,
public ICallsignObjectList<CAircraft, CAircraftList>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAircraft, CAircraftList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAircraft, CAircraftList>,
public BlackMisc::Mixin::MetaType<CAircraftList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftList)
//! Default constructor.
CAircraftList();
@@ -44,19 +48,10 @@ namespace BlackMisc
//! All pilots (with valid data)
BlackMisc::Network::CUserList getPilots() const;
//! \brief Update aircraft with data from VATSIM data file
//! \remarks The list used needs to contain the VATSIM data file objects
//! Update aircraft with data from VATSIM data file
//! \remarks The list used ("this") needs to contain the VATSIM data file objects
bool updateWithVatsimDataFileData(CAircraft &aircraftToBeUpdated) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -20,16 +20,5 @@ namespace BlackMisc
CSequence<CAircraftParts>(other)
{ }
void CAircraftPartsList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftParts>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftParts>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftParts>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftParts>>();
qRegisterMetaType<CAircraftPartsList>();
qDBusRegisterMetaType<CAircraftPartsList>();
registerMetaValueType<CAircraftPartsList>();
}
} // namespace
} // namespace

View File

@@ -26,24 +26,17 @@ namespace BlackMisc
class BLACKMISC_EXPORT CAircraftPartsList :
public CSequence<CAircraftParts>,
public ITimestampObjectList<CAircraftParts, CAircraftPartsList>,
public ICallsignObjectList<CAircraftParts, CAircraftPartsList>
public ICallsignObjectList<CAircraftParts, CAircraftPartsList>,
public BlackMisc::Mixin::MetaType<CAircraftPartsList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftPartsList)
//! Default constructor.
CAircraftPartsList();
//! Construct from a base class object.
CAircraftPartsList(const CSequence<CAircraftParts> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -24,16 +24,5 @@ namespace BlackMisc
CSequence<CAircraftSituation>(other)
{ }
void CAircraftSituationList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftSituation>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftSituation>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftSituation>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftSituation>>();
qRegisterMetaType<CAircraftSituationList>();
qDBusRegisterMetaType<CAircraftSituationList>();
registerMetaValueType<CAircraftSituationList>();
}
} // namespace
} // namespace

View File

@@ -26,24 +26,19 @@ namespace BlackMisc
class BLACKMISC_EXPORT CAircraftSituationList :
public CSequence<CAircraftSituation>,
public ITimestampObjectList<CAircraftSituation, CAircraftSituationList>,
public ICallsignObjectList<CAircraftSituation, CAircraftSituationList>
public ICallsignObjectList<CAircraftSituation, CAircraftSituationList>,
public BlackMisc::Mixin::MetaType<CAircraftSituationList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftSituationList)
//! Default constructor.
CAircraftSituationList();
//! Construct from a base class object.
CAircraftSituationList(const CSequence<CAircraftSituation> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Metadata
static void registerMetadata();
};
} // namespace
} // namespace

View File

@@ -19,17 +19,6 @@ namespace BlackMisc
CSequence<CAirport>(other)
{ }
void CAirportList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAirport>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAirport>>();
qRegisterMetaType<BlackMisc::CCollection<CAirport>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAirport>>();
qRegisterMetaType<CAirportList>();
qDBusRegisterMetaType<CAirportList>();
registerMetaValueType<CAirportList>();
}
CAirportList CAirportList::findByIcao(const CAirportIcaoCode &icao) const
{
return this->findBy(&CAirport::getIcao, icao);

View File

@@ -29,9 +29,12 @@ namespace BlackMisc
//! Value object for a list of airports.
class BLACKMISC_EXPORT CAirportList :
public CSequence<CAirport>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAirport, CAirportList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAirport, CAirportList>,
public BlackMisc::Mixin::MetaType<CAirportList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAirportList)
//! Default constructor.
CAirportList();
@@ -46,16 +49,6 @@ namespace BlackMisc
//! Find first station by callsign, if not return given value / default
CAirport findFirstByIcao(const CAirportIcaoCode &icao, const CAirport &ifNotFound = CAirport()) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace
} // namespace

View File

@@ -24,17 +24,6 @@ namespace BlackMisc
CSequence<CAtcStation>(other)
{ }
void CAtcStationList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAtcStation>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAtcStation>>();
qRegisterMetaType<BlackMisc::CCollection<CAtcStation>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAtcStation>>();
qRegisterMetaType<CAtcStationList>();
qDBusRegisterMetaType<CAtcStationList>();
registerMetaValueType<CAtcStationList>();
}
CAtcStationList CAtcStationList::findIfComUnitTunedIn25KHz(const CComSystem &comUnit) const
{
return this->findBy([&](const CAtcStation & atcStation)

View File

@@ -31,9 +31,12 @@ namespace BlackMisc
class BLACKMISC_EXPORT CAtcStationList :
public CSequence<CAtcStation>,
public BlackMisc::Aviation::ICallsignObjectList<CAtcStation, CAtcStationList>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAtcStation, CAtcStationList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CAtcStation, CAtcStationList>,
public BlackMisc::Mixin::MetaType<CAtcStationList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAtcStationList)
//! Default constructor.
CAtcStationList();
@@ -54,16 +57,6 @@ namespace BlackMisc
//! Both sides (booking, online station) will be updated.
//! \pre Can be used only if the stored data in this list are online ATC stations
int syncronizeWithBookedStation(CAtcStation &bookedAtcStation);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -21,16 +21,5 @@ namespace BlackMisc
CSequence<CKeyboardKey>(baseClass)
{ }
void CKeyboardKeyList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CKeyboardKey>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CKeyboardKey>>();
qRegisterMetaType<BlackMisc::CCollection<CKeyboardKey>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CKeyboardKey>>();
qRegisterMetaType<CKeyboardKeyList>();
qDBusRegisterMetaType<CKeyboardKeyList>();
registerMetaValueType<CKeyboardKeyList>();
}
} // namespace
} // namespace

View File

@@ -22,23 +22,20 @@ namespace BlackMisc
{
namespace Hardware
{
/*!
* Value object encapsulating a list of keyboard keys.
*/
class BLACKMISC_EXPORT CKeyboardKeyList : public CSequence<CKeyboardKey>
//! Value object encapsulating a list of keyboard keys.
class BLACKMISC_EXPORT CKeyboardKeyList :
public CSequence<CKeyboardKey>,
public BlackMisc::Mixin::MetaType<CKeyboardKeyList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CKeyboardKeyList)
//! Default constructor
CKeyboardKeyList();
//! Construct from a base class object.
CKeyboardKeyList(const CSequence<CKeyboardKey> &baseClass);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -70,15 +70,4 @@ namespace BlackMisc
}
return -1;
}
void CNameVariantPairList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CNameVariantPair>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CNameVariantPair>>();
qRegisterMetaType<BlackMisc::CCollection<CNameVariantPair>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CNameVariantPair>>();
qRegisterMetaType<CNameVariantPairList>();
qDBusRegisterMetaType<CNameVariantPairList>();
registerMetaValueType<CNameVariantPairList>();
}
} // namespace

View File

@@ -20,10 +20,14 @@
namespace BlackMisc
{
//! Value object encapsulating a list of name/variant pairs
//! Currently name must be unique
class BLACKMISC_EXPORT CNameVariantPairList : public CSequence<CNameVariantPair>
//! \note Currently name must be unique
class BLACKMISC_EXPORT CNameVariantPairList :
public CSequence<CNameVariantPair>,
public BlackMisc::Mixin::MetaType<CNameVariantPairList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CNameVariantPairList)
//! Default constructor.
CNameVariantPairList();
@@ -49,15 +53,6 @@ namespace BlackMisc
//! If one is sure(!) the name does not exists, \sa push_back() can be used
bool addOrReplaceValue(const QString &name, const CVariant &value, const CIcon &icon = CIcon());
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -74,16 +74,5 @@ namespace BlackMisc
});
}
void CAircraftMappingList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftMapping>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftMapping>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftMapping>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftMapping>>();
qRegisterMetaType<CAircraftMappingList>();
qDBusRegisterMetaType<CAircraftMappingList>();
registerMetaValueType<CAircraftMappingList>();
}
} // namespace
} // namespace

View File

@@ -25,9 +25,13 @@ namespace BlackMisc
namespace Network
{
//! Value object encapsulating a list of aircraft mappings
class BLACKMISC_EXPORT CAircraftMappingList : public CSequence<CAircraftMapping>
class BLACKMISC_EXPORT CAircraftMappingList :
public CSequence<CAircraftMapping>,
public BlackMisc::Mixin::MetaType<CAircraftMappingList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftMappingList)
//! Empty constructor.
CAircraftMappingList();
@@ -51,15 +55,6 @@ namespace BlackMisc
//! Find by model string
CAircraftMappingList findByModelString(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -22,16 +22,5 @@ namespace BlackMisc
CClientList::CClientList(const CSequence &other) : CSequence<CClient>(other)
{ }
void CClientList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CClient>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CClient>>();
qRegisterMetaType<BlackMisc::CCollection<CClient>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CClient>>();
qRegisterMetaType<CClientList>();
qDBusRegisterMetaType<CClientList>();
registerMetaValueType<CClientList>();
}
} // namespace
} // namespace

View File

@@ -30,22 +30,19 @@ namespace BlackMisc
//! Value object encapsulating a list of voice rooms.
class BLACKMISC_EXPORT CClientList :
public CSequence<CClient>,
public BlackMisc::Aviation::ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>
public BlackMisc::Aviation::ICallsignObjectList<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>,
public BlackMisc::Mixin::MetaType<CClientList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CClientList)
//! Default constructor.
CClientList();
//! Construct from a base class object.
CClientList(const CSequence &other);
//! QVariant, required for DBus QVariant lists
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! Register metadata
static void registerMetadata();
};
} //namespace
} // namespace

View File

@@ -20,16 +20,5 @@ namespace BlackMisc
CSequence<CServer>(other)
{ }
void CServerList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CServer>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CServer>>();
qRegisterMetaType<BlackMisc::CCollection<CServer>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CServer>>();
qRegisterMetaType<CServerList>();
qDBusRegisterMetaType<CServerList>();
registerMetaValueType<CServerList>();
}
} // namespace
} // namespace

View File

@@ -21,27 +21,19 @@ namespace BlackMisc
{
namespace Network
{
/*!
* Value object encapsulating a list of servers.
*/
class BLACKMISC_EXPORT CServerList : public CSequence<CServer>
//! Value object encapsulating a list of servers.
class BLACKMISC_EXPORT CServerList :
public CSequence<CServer>,
public BlackMisc::Mixin::MetaType<CServerList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CServerList)
//! Default constructor.
CServerList();
//! Construct from a base class object.
CServerList(const CSequence<CServer> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -87,17 +87,6 @@ namespace BlackMisc
return this->contains(&CTextMessage::isRadioMessage, true);
}
void CTextMessageList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CTextMessage>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CTextMessage>>();
qRegisterMetaType<BlackMisc::CCollection<CTextMessage>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CTextMessage>>();
qRegisterMetaType<CTextMessageList>();
qDBusRegisterMetaType<CTextMessageList>();
registerMetaValueType<CTextMessageList>();
}
CTextMessageList CTextMessageList::findByFrequency(const CFrequency &frequency) const
{
return this->findBy(&CTextMessage::getFrequency, frequency);

View File

@@ -25,14 +25,15 @@ namespace BlackMisc
{
namespace Network
{
/*!
* Value object encapsulating a list of text messages
*/
//! Value object encapsulating a list of text messages
class BLACKMISC_EXPORT CTextMessageList :
public CSequence<CTextMessage>,
public BlackMisc::ITimestampObjectList<CTextMessage, CTextMessageList>
public BlackMisc::ITimestampObjectList<CTextMessage, CTextMessageList>,
public BlackMisc::Mixin::MetaType<CTextMessageList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CTextMessageList)
//! Default constructor.
CTextMessageList();
@@ -81,15 +82,6 @@ namespace BlackMisc
//! Mark all messages as sent
void markAsSent();
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace
} // namespace

View File

@@ -20,12 +20,5 @@ namespace BlackMisc
CUserList::CUserList(const CSequence &other) : CSequence<CUser>(other)
{ }
void CUserList::registerMetadata()
{
qRegisterMetaType<CUserList>();
qDBusRegisterMetaType<CUserList>();
registerMetaValueType<CUserList>();
}
} // namespace
} // namespace

View File

@@ -25,24 +25,19 @@ namespace BlackMisc
namespace Network
{
//! Value object encapsulating a list of voice rooms.
class BLACKMISC_EXPORT CUserList : public CSequence<CUser>
class BLACKMISC_EXPORT CUserList :
public CSequence<CUser>,
public BlackMisc::Mixin::MetaType<CUserList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CUserList)
//! Default constructor.
CUserList();
//! Construct from a base class object.
CUserList(const CSequence &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -20,9 +20,7 @@ namespace BlackMisc
{
namespace Network
{
/*!
* Value object encapsulating information for voice capabilities.
*/
//! Value object encapsulating information for voice capabilities.
class BLACKMISC_EXPORT CVoiceCapabilities : public CValueObject<CVoiceCapabilities>
{
public:

View File

@@ -11,30 +11,10 @@
namespace BlackMisc
{
/*
* Default constructor
*/
CPropertyIndexList::CPropertyIndexList() { }
/*
* Construct from base class object
*/
CPropertyIndexList::CPropertyIndexList(const CSequence<CPropertyIndex> &other) :
CSequence<CPropertyIndex>(other)
{ }
/*
* Register metadata
*/
void CPropertyIndexList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CPropertyIndex>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CPropertyIndex>>();
qRegisterMetaType<BlackMisc::CCollection<CPropertyIndex>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CPropertyIndex>>();
qRegisterMetaType<CPropertyIndexList>();
qDBusRegisterMetaType<CPropertyIndexList>();
registerMetaValueType<CPropertyIndexList>();
}
} // namespace

View File

@@ -20,28 +20,20 @@
namespace BlackMisc
{
/*!
* Value object encapsulating a list of property indexes.
*/
class BLACKMISC_EXPORT CPropertyIndexList : public CSequence<CPropertyIndex>
//! Value object encapsulating a list of property indexes.
class BLACKMISC_EXPORT CPropertyIndexList :
public CSequence<CPropertyIndex>,
public BlackMisc::Mixin::MetaType<CPropertyIndexList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CPropertyIndexList)
//! Default constructor.
CPropertyIndexList();
//! Construct from a base class object.
CPropertyIndexList(const CSequence<CPropertyIndex> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace
Q_DECLARE_METATYPE(BlackMisc::CPropertyIndexList)

View File

@@ -44,20 +44,6 @@ namespace BlackMisc
return this->findBy(&CSettingKeyboardHotkey::getFunction, function).frontOrDefault();
}
/*
* Register metadata
*/
void CSettingKeyboardHotkeyList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CSettingKeyboardHotkey>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CSettingKeyboardHotkey>>();
qRegisterMetaType<BlackMisc::CCollection<CSettingKeyboardHotkey>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CSettingKeyboardHotkey>>();
qRegisterMetaType<CSettingKeyboardHotkeyList>();
qDBusRegisterMetaType<CSettingKeyboardHotkeyList>();
registerMetaValueType<CSettingKeyboardHotkeyList>();
}
/*
* Hotkey list
*/

View File

@@ -23,12 +23,14 @@ namespace BlackMisc
{
namespace Settings
{
/*!
* Value object encapsulating a list of keyboard keys.
*/
class BLACKMISC_EXPORT CSettingKeyboardHotkeyList : public CSequence<CSettingKeyboardHotkey>
//! Value object encapsulating a list of keyboard keys.
class BLACKMISC_EXPORT CSettingKeyboardHotkeyList :
public CSequence<CSettingKeyboardHotkey>,
public BlackMisc::Mixin::MetaType<CSettingKeyboardHotkeyList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CSettingKeyboardHotkeyList)
//! Default constructor
CSettingKeyboardHotkeyList();
@@ -41,21 +43,10 @@ namespace BlackMisc
//! Key for given function
BlackMisc::Settings::CSettingKeyboardHotkey keyForFunction(const CHotkeyFunction &function) const;
/*!
* Fill the list with hotkeys
* \param reset true, list will be be reset, otherwise values will not be overridde
*/
//! Fill the list with hotkeys
//! \param reset true, list will be be reset, otherwise values will not be overridde
void initAsHotkeyList(bool reset = true);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -61,16 +61,5 @@ namespace BlackMisc
return ms;
}
void CAircraftModelList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftModel>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftModel>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftModel>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftModel>>();
qRegisterMetaType<CAircraftModelList>();
qDBusRegisterMetaType<CAircraftModelList>();
registerMetaValueType<CAircraftModelList>();
}
} // namespace
} // namespace

View File

@@ -21,21 +21,20 @@ namespace BlackMisc
{
namespace Simulation
{
/*!
* Value object encapsulating a list of aircraft models
*/
class BLACKMISC_EXPORT CAircraftModelList : public CSequence<CAircraftModel>
//! Value object encapsulating a list of aircraft models
class BLACKMISC_EXPORT CAircraftModelList :
public CSequence<CAircraftModel>,
public BlackMisc::Mixin::MetaType<CAircraftModelList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftModelList)
//! Empty constructor.
CAircraftModelList();
//! Construct from a base class object.
CAircraftModelList(const CSequence<CAircraftModel> &other);
//! QVariant, required for DBus QVariant lists
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! Contains model string
bool containsModelString(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;
@@ -51,12 +50,6 @@ namespace BlackMisc
//! Model strings
QStringList getSortedModelStrings() const;
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -282,7 +282,7 @@ namespace BlackMisc
QString content(line.mid(index + 1).trimmed());
// fix "" strings, some are malformed and just contain " at beginning, end
// fix "" strings, some are malformed and just contain " at beginning, not clsoing at end of line
if (content.endsWith('"')) { content.remove(content.size() - 1 , 1); }
if (content.startsWith('"')) { content.remove(0 , 1); }
@@ -294,17 +294,6 @@ namespace BlackMisc
return content;
}
void CAircraftCfgEntriesList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CAircraftCfgEntries>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CAircraftCfgEntries>>();
qRegisterMetaType<BlackMisc::CCollection<CAircraftCfgEntries>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CAircraftCfgEntries>>();
qRegisterMetaType<CAircraftCfgEntriesList>();
qDBusRegisterMetaType<CAircraftCfgEntriesList>();
BlackMisc::registerMetaValueType<CAircraftCfgEntriesList>();
}
} // namespace
} // namespace
} // namespace

View File

@@ -28,12 +28,13 @@ namespace BlackMisc
{
namespace FsCommon
{
//! Utility, providing FS aircraft.cfg entries
class BLACKMISC_EXPORT CAircraftCfgEntriesList : public BlackMisc::CSequence<CAircraftCfgEntries>
class BLACKMISC_EXPORT CAircraftCfgEntriesList :
public BlackMisc::CSequence<CAircraftCfgEntries>,
public BlackMisc::Mixin::MetaType<CAircraftCfgEntriesList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CAircraftCfgEntriesList)
//! Constructor
CAircraftCfgEntriesList(const QString &rootDirectory = "") : m_rootDirectory(rootDirectory) {}
@@ -74,18 +75,9 @@ namespace BlackMisc
//! Find by title
CAircraftCfgEntriesList findByTitle(const QString &title, Qt::CaseSensitivity caseSensitivity = Qt::CaseInsensitive) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Do not include the following directories for FS
static const QStringList &excludeDirectories();
//! Register metadata
static void registerMetadata();
private:
QString m_rootDirectory; //!< root directory reading aircraft.cfg files
bool m_readForDirectory = false; //!< valid read for given directory

View File

@@ -28,17 +28,6 @@ namespace BlackMisc
CSequence<CSimulatedAircraft>(other)
{ }
void CSimulatedAircraftList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CSimulatedAircraft>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CSimulatedAircraft>>();
qRegisterMetaType<BlackMisc::CCollection<CSimulatedAircraft>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CSimulatedAircraft>>();
qRegisterMetaType<CSimulatedAircraftList>();
qDBusRegisterMetaType<CSimulatedAircraftList>();
registerMetaValueType<CSimulatedAircraftList>();
}
CUserList CSimulatedAircraftList::getPilots() const
{
return this->findBy(Predicates::MemberValid(&CSimulatedAircraft::getPilot)).transform(Predicates::MemberTransform(&CSimulatedAircraft::getPilot));

View File

@@ -32,9 +32,12 @@ namespace BlackMisc
class BLACKMISC_EXPORT CSimulatedAircraftList :
public BlackMisc::CSequence<CSimulatedAircraft>,
public BlackMisc::Aviation::ICallsignObjectList<CSimulatedAircraft, CSimulatedAircraftList>,
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CSimulatedAircraft, CSimulatedAircraftList>
public BlackMisc::Geo::IGeoObjectWithRelativePositionList<CSimulatedAircraft, CSimulatedAircraftList>,
public BlackMisc::Mixin::MetaType<CSimulatedAircraftList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CSimulatedAircraftList)
//! Default constructor.
CSimulatedAircraftList();
@@ -71,18 +74,9 @@ namespace BlackMisc
//! Rendered?
bool isRendered(const BlackMisc::Aviation::CCallsign &callsign) const;
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! To aircraft list
BlackMisc::Aviation::CAircraftList toAircraftList() const;
//! Register metadata
static void registerMetadata();
};
} //namespace

View File

@@ -29,16 +29,5 @@ namespace BlackMisc
return this->transform([i18n](const CSimulatorPluginInfo & info) { return info.toQString(i18n); });
}
void CSimulatorPluginInfoList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CSimulatorPluginInfo>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CSimulatorPluginInfo>>();
qRegisterMetaType<BlackMisc::CCollection<CSimulatorPluginInfo>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CSimulatorPluginInfo>>();
qRegisterMetaType<CSimulatorPluginInfoList>();
qDBusRegisterMetaType<CSimulatorPluginInfoList>();
BlackMisc::registerMetaValueType<CSimulatorPluginInfoList>();
}
} // namespace
} // namespace

View File

@@ -23,27 +23,25 @@ namespace BlackMisc
namespace Simulation
{
//! Value object encapsulating a list of SimulatorInfo objects.
class BLACKMISC_EXPORT CSimulatorPluginInfoList : public BlackMisc::CSequence<CSimulatorPluginInfo>
class BLACKMISC_EXPORT CSimulatorPluginInfoList :
public BlackMisc::CSequence<CSimulatorPluginInfo>,
public BlackMisc::Mixin::MetaType<CSimulatorPluginInfoList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CSimulatorPluginInfoList)
//! Default constructor
CSimulatorPluginInfoList();
//! Construct from a base class object.
CSimulatorPluginInfoList(const CSequence<CSimulatorPluginInfo> &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! Is simulator supported
bool supportsSimulator(const QString &simulator);
//! String list with meaningful representations
QStringList toStringList(bool i18n = false) const;
//! Register the metatypes
static void registerMetadata();
};
} // ns
} // ns

View File

@@ -56,18 +56,4 @@ namespace BlackMisc
msg.addCategories(categories);
}
}
/*
* Metadata
*/
void CStatusMessageList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CStatusMessage>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CStatusMessage>>();
qRegisterMetaType<BlackMisc::CCollection<CStatusMessage>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CStatusMessage>>();
qRegisterMetaType<CStatusMessageList>();
qDBusRegisterMetaType<CStatusMessageList>();
registerMetaValueType<CStatusMessageList>();
}
}
} // ns

View File

@@ -22,14 +22,15 @@
namespace BlackMisc
{
/*!
* Status messages, e.g. from Core -> GUI
*/
//! Status messages, e.g. from Core -> GUI
class BLACKMISC_EXPORT CStatusMessageList :
public CSequence<CStatusMessage>,
public ITimestampObjectList<CStatusMessage, CStatusMessageList>
public ITimestampObjectList<CStatusMessage, CStatusMessageList>,
public BlackMisc::Mixin::MetaType<CStatusMessageList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CStatusMessageList)
//! Constructor
CStatusMessageList() {}
@@ -48,17 +49,8 @@ namespace BlackMisc
//! Add some categories to all messages in the list
void addCategories(const CLogCategoryList &categories);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! Register metadata of unit and quantity
static void registerMetadata();
};
}
} // ns
Q_DECLARE_METATYPE(BlackMisc::CStatusMessageList)
Q_DECLARE_METATYPE(BlackMisc::CCollection<BlackMisc::CStatusMessage>)

View File

@@ -11,11 +11,6 @@
namespace BlackMisc
{
/*
* Default constructor
*/
CVariantList::CVariantList() = default;
/*
* Construct from base class object
*/
@@ -23,13 +18,4 @@ namespace BlackMisc
CSequence(other)
{}
/*
* Register metadata
*/
void CVariantList::registerMetadata()
{
qRegisterMetaType<CVariantList>();
qDBusRegisterMetaType<CVariantList>();
registerMetaValueType<CVariantList>();
}
} // namespace

View File

@@ -20,28 +20,21 @@
namespace BlackMisc
{
/*!
* Value object encapsulating a list of variants.
*/
class BLACKMISC_EXPORT CVariantList : public CSequence<CVariant>
//! Value object encapsulating a list of variants.
class BLACKMISC_EXPORT CVariantList :
public CSequence<CVariant>,
public BlackMisc::Mixin::MetaType<CVariantList>
{
public:
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CVariantList)
//! Default constructor.
CVariantList();
CVariantList() = default;
//! Construct from a base class object.
CVariantList(const CSequence &other);
//! \copydoc CValueObject::toQVariant
QVariant toQVariant() const { return QVariant::fromValue(*this); }
//! \copydoc CValueObject::convertFromQVariant
void convertFromQVariant(const QVariant &variant) { BlackMisc::setFromQVariant(this, variant); }
//! \brief Register metadata
static void registerMetadata();
};
}
Q_DECLARE_METATYPE(BlackMisc::CVariantList)