MythTV  master
storageGroupDirList.h
Go to the documentation of this file.
1 #ifndef STORAGEGROUPDIRLIST_H_
2 #define STORAGEGROUPDIRLIST_H_
3 
4 #include <QVariantList>
5 
6 #include "serviceexp.h"
7 #include "datacontracthelper.h"
8 
9 #include "storageGroupDir.h"
10 
11 namespace DTC
12 {
13 
14 class SERVICE_PUBLIC StorageGroupDirList : public QObject
15 {
16  Q_OBJECT
17  Q_CLASSINFO( "version", "1.0" );
18 
19  // Q_CLASSINFO Used to augment Metadata for properties.
20  // See datacontracthelper.h for details
21 
22  Q_CLASSINFO( "StorageGroupDirs", "type=DTC::StorageGroupDir");
23 
24  Q_PROPERTY( QVariantList StorageGroupDirs READ StorageGroupDirs DESIGNABLE true )
25 
26  PROPERTYIMP_RO_REF( QVariantList, StorageGroupDirs );
27 
28  public:
29 
30  static inline void InitializeCustomTypes();
31 
32  Q_INVOKABLE StorageGroupDirList(QObject *parent = nullptr)
33  : QObject( parent )
34  {
35  }
36 
37  void Copy( const StorageGroupDirList *src )
38  {
39  CopyListContents< StorageGroupDir >( this, m_StorageGroupDirs, src->m_StorageGroupDirs );
40  }
41 
43  {
44  // We must make sure the object added to the QVariantList has
45  // a parent of 'this'
46 
47  StorageGroupDir *pObject = new StorageGroupDir( this );
48  m_StorageGroupDirs.append( QVariant::fromValue<QObject *>( pObject ));
49 
50  return pObject;
51  }
52 
53  private:
54  Q_DISABLE_COPY(StorageGroupDirList);
55 };
56 
58 {
59  qRegisterMetaType< StorageGroupDirList* >();
60 
62 }
63 
64 } // namespace DTC
65 
66 #endif
#define SERVICE_PUBLIC
Definition: serviceexp.h:9
void Copy(const StorageGroupDirList *src)
StorageGroupDir * AddNewStorageGroupDir()
#define PROPERTYIMP_RO_REF(type, name)
static void InitializeCustomTypes()
Q_INVOKABLE StorageGroupDirList(QObject *parent=nullptr)