From f041099904d809b5370285185fbbb2303c40b953 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Tue, 13 Mar 2012 16:26:16 +0100 Subject: Remove RolesInfoAccessor Now KFileItemModel provides a way to access the available roles including their translations. Note that the 3 roles "comments", "rating" and "tags" have not been implemented yet in KFileItemModel and turning them on does not work currently. --- src/kitemviews/kfileitemmodel.h | 43 +++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) (limited to 'src/kitemviews/kfileitemmodel.h') diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index bb77003c3..5d7a7fc8b 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -90,7 +90,7 @@ public: virtual bool supportsDropping(int index) const; /** @reimp */ - virtual QString roleDescription(const QByteArray& role) const; + virtual QString roleDescription(const QByteArray& typeForRole) const; /** @reimp */ virtual QList > groups() const; @@ -158,6 +158,14 @@ public: void setNameFilter(const QString& nameFilter); QString nameFilter() const; + struct RoleInfo + { QByteArray role; + QString translation; + QString group; + }; + + static QList rolesInformation(); + signals: /** * Is emitted after the loading of a directory has been completed or new @@ -192,7 +200,7 @@ private slots: void dispatchPendingItemsToInsert(); private: - enum Role { + enum RoleType { NoRole, NameRole, SizeRole, @@ -239,16 +247,16 @@ private: void resetRoles(); /** - * @return Role-index for the given role byte-array. + * @return Role-type for the given role. * Runtime complexity is O(1). */ - Role roleIndex(const QByteArray& role) const; + RoleType typeForRole(const QByteArray& role) const; /** - * @return Role-byte-array for the given role-index. + * @return Role-byte-array for the given role-type. * Runtime complexity is O(1). */ - QByteArray roleByteArray(Role role) const; + QByteArray roleForType(RoleType roleType) const; QHash retrieveData(const KFileItem& item) const; @@ -314,7 +322,7 @@ private: QList > dateRoleGroups() const; QList > permissionRoleGroups() const; QList > ratingRoleGroups() const; - QList > genericStringRoleGroups(const QByteArray& role) const; + QList > genericStringRoleGroups(const QByteArray& typeForRole) const; /** * Helper method for all xxxRoleGroups() methods to check whether the @@ -331,13 +339,32 @@ private: */ KFileItemList childItems(const KFileItem& item) const; + /** + * Maps the QByteArray-roles to RoleTypes and provides translation- and + * group-contexts. + */ + struct RoleInfoMap + { + const char* const role; + const RoleType roleType; + const char* const roleTranslationContext; + const char* const roleTranslation; + const char* const groupTranslationContext; + const char* const groupTranslation; + }; + + /** + * @return Map of user visible roles that are accessible by KFileItemModel::rolesInformation(). + */ + static const RoleInfoMap* rolesInfoMap(int& count); + private: QWeakPointer m_dirLister; bool m_naturalSorting; bool m_sortFoldersFirst; - Role m_sortRole; + RoleType m_sortRole; QSet m_roles; Qt::CaseSensitivity m_caseSensitivity; -- cgit v1.3.1