mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 06:35:52 +08:00
refs #247 All our value classes registered with our new custom metatype system.
This commit is contained in:
@@ -21,6 +21,9 @@ namespace BlackMisc
|
||||
template <class>
|
||||
struct CValueObjectStdTuplePolicy;
|
||||
|
||||
template <typename T>
|
||||
void registerMetaValueType();
|
||||
|
||||
namespace Policy
|
||||
{
|
||||
namespace Private
|
||||
@@ -40,7 +43,15 @@ namespace BlackMisc
|
||||
{
|
||||
//! Register with QMetaType
|
||||
template <class T, class...>
|
||||
static void registerImpl() { qRegisterMetaType<T>(); qDBusRegisterMetaType<T>(); }
|
||||
static void registerImpl() { qRegisterMetaType<T>(); qDBusRegisterMetaType<T>(); maybeRegisterMetaValueType<T>(); }
|
||||
|
||||
private:
|
||||
template <class T>
|
||||
static void maybeRegisterMetaValueType() { maybeRegisterMetaValueType<T>(std::is_base_of<CValueObject, T>()); }
|
||||
template <class T>
|
||||
static void maybeRegisterMetaValueType(std::true_type) { BlackMisc::registerMetaValueType<T>(); }
|
||||
template <class T>
|
||||
static void maybeRegisterMetaValueType(std::false_type) {}
|
||||
};
|
||||
|
||||
//! CValueObjectStdTuple registerMetadata policy which inherits the policy of the base class
|
||||
|
||||
Reference in New Issue
Block a user