X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5b5a7b8da8cb3ee6bbb9f7450c87fca5de41dc05..ec00f379dc42b00a64ab1af25bb4bb1a06bd7449:/src/kitemcategorizer.h diff --git a/src/kitemcategorizer.h b/src/kitemcategorizer.h index 782f62566..aff048e29 100644 --- a/src/kitemcategorizer.h +++ b/src/kitemcategorizer.h @@ -18,26 +18,55 @@ * Boston, MA 02110-1301, USA. */ -#ifndef __KITEMCATEGORIZER_H__ -#define __KITEMCATEGORIZER_H__ +#ifndef KITEMCATEGORIZER_H +#define KITEMCATEGORIZER_H -#include +#include class QString; +class QPainter; class QModelIndex; +class QStyleOption; -class KDEUI_EXPORT KItemCategorizer +/** + * @short Class for item categorizing on KListView + * + * This class is meant to be used with KListView class. Its purpose is + * to decide to which category belongs a given index with the given role. + * Additionally it will let you to customize the way categories are drawn, + * only in the case that you want to do so + * + * @see KListView + * + * @author Rafael Fernández López + */ +class LIBDOLPHINPRIVATE_EXPORT KItemCategorizer { public: - KItemCategorizer() - { - } + KItemCategorizer(); + + virtual ~KItemCategorizer(); + + /** + * This method will return the category where @param index fit on with the + * given @param sortRole role + */ + virtual QString categoryForItem(const QModelIndex &index, + int sortRole) const = 0; - virtual ~KItemCategorizer() - { - } + /** + * This method purpose is to draw a category represented by the given + * @param index with the given @param sortRole sorting role + * + * @note This method will be called one time per category, always with the + * first element in that category + */ + virtual void drawCategory(const QModelIndex &index, + int sortRole, + const QStyleOption &option, + QPainter *painter) const; - virtual QString categoryForItem(const QModelIndex &index, int sortRole) = 0; + virtual int categoryHeight(const QStyleOption &option) const; }; -#endif +#endif // KITEMCATEGORIZER_H