libdrmconf 0.12.1
A library to program DMR radios.
Loading...
Searching...
No Matches
rxgrouplist.hh
1#ifndef RXGROUPLIST_HH
2#define RXGROUPLIST_HH
3
4#include <QObject>
5#include "configreference.hh"
6
7class Config;
8class DMRContact;
9
10
14{
15 Q_OBJECT
16 Q_CLASSINFO("IdPrefix", "grp")
17
18
20
21public:
23 Q_INVOKABLE explicit RXGroupList(QObject *parent=nullptr);
27 RXGroupList(const QString &name, QObject *parent=nullptr);
28
30 RXGroupList &operator =(const RXGroupList &other);
31 ConfigItem *clone() const;
32
34 int count() const;
36 void clear();
37
39 DMRContact *contact(int idx) const;
41 int addContact(DMRContact *contact, int idx=-1);
45 bool remContact(int idx);
46
48 const DMRContactRefList *contacts() const;
51
52public:
53 YAML::Node serialize(const Context &context, const ErrorStack &err=ErrorStack());
54
55protected slots:
57 void onModified();
58
59protected:
62};
63
64
68{
69 Q_OBJECT
70
71public:
73 explicit RXGroupLists(QObject *parent=nullptr);
74
76 RXGroupList *list(int idx) const;
77
78 int add(ConfigObject *obj, int row=-1, bool unique=true);
79
80public:
81 ConfigItem *allocateChild(const YAML::Node &node, ConfigItem::Context &ctx, const ErrorStack &err=ErrorStack());
82};
83
84#endif // RXGROUPLIST_HH
Parse context for config objects.
Definition configobject.hh:48
Base class for all configuration objects (channels, zones, contacts, etc).
Definition configobject.hh:40
virtual ConfigItem * allocateChild(QMetaProperty &prop, const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack())
Allocates an instance for the given property on the given YAML node.
Definition configobject.cc:490
List class for config objects.
Definition configobject.hh:349
Base class of all labeled and named objects.
Definition configobject.hh:199
QString name
The name of the object.
Definition configobject.hh:203
The config class, representing the codeplug configuration.
Definition config.hh:70
List of references to DMR contacts.
Definition configreference.hh:110
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:41
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
DMRContactRefList _contacts
The list of contacts.
Definition rxgrouplist.hh:61
void clear()
Resets & clears this group list.
Definition rxgrouplist.cc:57
int addContact(DMRContact *contact, int idx=-1)
Adds a contact to the list.
Definition rxgrouplist.cc:70
DMRContactRefList * contacts
The list of contacts.
Definition rxgrouplist.hh:19
ConfigItem * clone() const
Clones this item.
Definition rxgrouplist.cc:42
int count() const
Returns the number of contacts within the group list.
Definition rxgrouplist.cc:52
YAML::Node serialize(const Context &context, const ErrorStack &err=ErrorStack())
Recursively serializes the configuration to YAML nodes.
Definition rxgrouplist.cc:90
void onModified()
Internal used callback to handle list modifications.
Definition rxgrouplist.cc:97
DMRContact * contact(int idx) const
Returns the contact at the given list index.
Definition rxgrouplist.cc:63
bool remContact(DMRContact *contact)
Removes the given contact from the list.
Represents the list of RX group lists within the generic configuration.
Definition rxgrouplist.hh:68