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();
};