]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemcategorizer.h
use "Sort by" instead of "Sort By"
[dolphin.git] / src / kitemcategorizer.h
index 782f625665608dd3c7d03e55710ede991c545252..aff048e2980112d9400296d04f1e9771d9f44b2b 100644 (file)
   * 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