KTp/Tasks/ModelRoles: Difference between revisions
Appearance
(4 intermediate revisions by the same user not shown) | |||
Line 86: | Line 86: | ||
//contact/person roles | //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 | |||
</pre> | </pre> |
Latest revision as of 01:16, 25 January 2013
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