/ proxyroles / proxyrolecontainer.cpp
proxyrolecontainer.cpp
1 #include "proxyrolecontainer.h" 2 3 namespace qqsfpm { 4 5 QList<ProxyRole*> ProxyRoleContainer::proxyRoles() const 6 { 7 return m_proxyRoles; 8 } 9 10 void ProxyRoleContainer::appendProxyRole(ProxyRole* proxyRole) 11 { 12 m_proxyRoles.append(proxyRole); 13 onProxyRoleAppended(proxyRole); 14 } 15 16 void ProxyRoleContainer::removeProxyRole(ProxyRole* proxyRole) 17 { 18 m_proxyRoles.removeOne(proxyRole); 19 onProxyRoleRemoved(proxyRole); 20 } 21 22 void ProxyRoleContainer::clearProxyRoles() 23 { 24 m_proxyRoles.clear(); 25 onProxyRolesCleared(); 26 } 27 28 QQmlListProperty<ProxyRole> ProxyRoleContainer::proxyRolesListProperty() 29 { 30 return QQmlListProperty<ProxyRole>(reinterpret_cast<QObject*>(this), &m_proxyRoles, 31 &ProxyRoleContainer::append_proxyRole, 32 &ProxyRoleContainer::count_proxyRole, 33 &ProxyRoleContainer::at_proxyRole, 34 &ProxyRoleContainer::clear_proxyRoles); 35 } 36 37 void ProxyRoleContainer::append_proxyRole(QQmlListProperty<ProxyRole>* list, ProxyRole* proxyRole) 38 { 39 if (!proxyRole) 40 return; 41 42 ProxyRoleContainer* that = reinterpret_cast<ProxyRoleContainer*>(list->object); 43 that->appendProxyRole(proxyRole); 44 } 45 46 qqsfpm::ProxyRoleContainer::sizetype ProxyRoleContainer::count_proxyRole(QQmlListProperty<ProxyRole>* list) 47 { 48 QList<ProxyRole*>* ProxyRoles = static_cast<QList<ProxyRole*>*>(list->data); 49 return ProxyRoles->count(); 50 } 51 52 ProxyRole* ProxyRoleContainer::at_proxyRole(QQmlListProperty<ProxyRole>* list, qqsfpm::ProxyRoleContainer::sizetype index) 53 { 54 QList<ProxyRole*>* ProxyRoles = static_cast<QList<ProxyRole*>*>(list->data); 55 return ProxyRoles->at(index); 56 } 57 58 void ProxyRoleContainer::clear_proxyRoles(QQmlListProperty<ProxyRole> *list) 59 { 60 ProxyRoleContainer* that = reinterpret_cast<ProxyRoleContainer*>(list->object); 61 that->clearProxyRoles(); 62 } 63 64 }