KTp/Tasks/ModelRoles
Old Roles
Original Role | Type | Comment |
---|---|---|
Qt::DisplayRole | Contact's alias OR account name OR readable group name | |
AccountRole | Tp::AccountPtr | |
AliasRole | Contact's alias | |
AudioCallCapabilityRole | bool | both you can remote can audio call |
AvatarRole | TODO | contact's avatar |
BlockedRole | bool | isBlocked |
ClientTypesRole | QStringList | client types from Tp::Contact |
ContactRole | Tp::ContactPtr | |
DesktopSharingCapabilityRole | bool | both you and remote can desktop share.. I Want to kill this, and expose QStringList streamTubeRoles |
FileTransferCapabilityRole | bool | both you and remote can file transfer |
GroupsRole | no idea, probably deprecated | KILL IT! (EDIT: Don't dave is an idiot, we need this) |
IconRole | ?? | KILL IT! |
IdRole | string | contact ID or account ID or group ID as appropriate |
index | ???? | KILL IT! |
ItemRole | deprecated | KILL IT! |
MediaCallCapabilityRole | bool | ??? |
NicknameRole | KILL IT! | |
OnlineUsersCountRole | number of online contacts in this group | |
PresenceMessageRole | string - status message | |
PresenceRole | Tp::Presence | Should use KTp::Presence |
PresenceTypeRole | enum | |
RowType | enum | either AccountsRowType, ContactsRowType, GroupRowType |
SSHContactCapabilityRole | bool | both you + remote can SSH contact. I Want to kill this, and expose QStringList streamTubeRoles |
TextChatCapabilityRole | bool | both you + remote can text chat |
TotalUsersCountRole | int | total users in this group |
TypeRole | ??? | KILL IT! |
VideoCallCapabilityRole | bool | both you + remote can video call |
NEW Role Requests
Roles for:
- unread message count - hasTextChannel - tubesRoles (QVariantMap of stream + dbus tubes) Rationale - hardcoding types into the model is bad
Proposed Enum
namespace MainModel { enum Roles { //core Qt::DisplayRole // returns Contact Alias, Account displayName or Group Name RowTypeRole,= Qt::UserRole //returns one of KTp::ContactRowType, KTp::PersonRowType, KTp::GroupRowType, KTp::AccountRowType IdRole, //returns Contact ID, Account UID, or group ID (group name or "_ungrouped") //telepathy roles ContactRole = Qt::UserRole + 1000, //returns Tp::ContactPtr AccountRole, // Tp::AccountPtr CustomTelepathyRole, //future extensibility without breaking ABI //contact/person roles ContactClientTypesRole = Qt::UserRole + 2000, // ContactAvatarRole, ContactGroupsRole, ContactPresenceRole, ContactPresenceMessageRole, ContactPresenceTypeRole, ContactPresenceIconRole, ContactHasTextChannelRole, ContactUnreadMessageCountRole, //FIXME caps CustomContactRole //heading roles HeaderTotalUsersRole = Qt::UserRole + 3000, HeaderOnlineUsersRole, CustomHeaderRole }; } TODO list: - contact caps: - account icon in account group header... DecorationRole or HeaderIconRole? - docs on contact roles - learn how to document an enum in Doxygen :) - poke mck182 to see if metacontacts need any more roles - don't put Qt::DisplayRole in our enum! that's silly