* Boston, MA 02110-1301, USA.
*/
-#ifndef __KITEMCATEGORIZER_H__
-#define __KITEMCATEGORIZER_H__
+#ifndef KITEMCATEGORIZER_H
+#define KITEMCATEGORIZER_H
-#include <kdeui_export.h>
+#include <libdolphin_export.h>
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 <ereslibre@gmail.com>
+ */
+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