/**
* This file is part of the KDE project
- * Copyright (C) 2007 Rafael Fernández López <ereslibre@gmail.com>
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#ifndef KCATEGORIZEDVIEW_P_H
#define KCATEGORIZEDVIEW_P_H
-class KSortFilterProxyModel;
+class KCategorizedSortFilterProxyModel;
+class KCategoryDrawer;
/**
* @internal
*/
void drawDraggedItems();
+ void layoutChanged(bool forceItemReload = false);
+
// Attributes
// Basic data
KCategorizedView *listView;
- KItemCategorizer *itemCategorizer;
+ KCategoryDrawer *categoryDrawer;
QSize biggestItemSize;
// Behavior data
bool mouseButtonPressed;
+ bool rightMouseButtonPressed;
bool isDragging;
bool dragLeftViewport;
QModelIndex hovered;
QString hoveredCategory;
QPoint initialPressPosition;
QPoint mousePosition;
- QItemSelection lastSelection;
- QModelIndex currentViewIndex;
int forcedSelectionPosition;
// Cache data
// We cannot merge some of them into structs because it would affect
// performance
- QHash<QModelIndex, struct ElementInfo> elementsInfo; // in source model
- QHash<QModelIndex, QRect> elementsPosition; // in source model
- QHash<QModelIndex, QModelIndex> elementDictionary; // mapped indexes
- QHash<QModelIndex, QModelIndex> invertedElementDictionary; // mapped indexes
+ QHash<int, struct ElementInfo> elementsInfo;
+ QHash<int, QRect> elementsPosition;
QHash<QString, QModelIndexList> categoriesIndexes;
QHash<QString, QRect> categoriesPosition;
QStringList categories;
QModelIndexList intersectedIndexes;
QRect lastDraggedItemsRect;
- QRect lastSelectionRect;
+ int modelSortRole;
+ int modelSortColumn;
+ int modelLastRowCount;
+ bool modelCategorized;
+ Qt::SortOrder modelSortOrder;
+ QItemSelection lastSelection;
// Attributes for speed reasons
- KSortFilterProxyModel *proxyModel;
- QModelIndexList sourceModelIndexList; // in source model
+ KCategorizedSortFilterProxyModel *proxyModel;
+ QModelIndexList modelIndexList;
};
#endif // KCATEGORIZEDVIEW_P_H