┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistview.h
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-10-22 02:14:42 +0200
committerPeter Penz <[email protected]>2011-10-22 02:16:42 +0200
commit07b0bf462698cc36db886c555124269a4ad7741f (patch)
tree58b1b9c594fe4035380b49e90a924f44b10d1709 /src/kitemviews/kitemlistview.h
parenteac436d0374d3be323c6ba36799d3cddc98301ea (diff)
Fix crash when grouping items
Because of a wrong usage of parent() vs. parentItem() a crash could occur because the parent might be assigned to an already deleted instance.
Diffstat (limited to 'src/kitemviews/kitemlistview.h')
-rw-r--r--src/kitemviews/kitemlistview.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h
index ee84abe1c..985b7c278 100644
--- a/src/kitemviews/kitemlistview.h
+++ b/src/kitemviews/kitemlistview.h
@@ -331,11 +331,16 @@ private:
/**
* Helper method for createWidget() and setWidgetIndex() to create or update
- * the itemlist groupheader.
+ * the itemlist group-header.
*/
void updateGroupHeaderForWidget(KItemListWidget* widget);
/**
+ * Recycles the group-header from the widget.
+ */
+ void recycleGroupHeaderForWidget(KItemListWidget* widget);
+
+ /**
* @return The widths of each visible role that is shown in the KItemListHeader.
*/
QHash<QByteArray, qreal> headerRolesWidths() const;
@@ -483,9 +488,7 @@ template <class T>
KItemListWidget* KItemListWidgetCreator<T>::create(KItemListView* view)
{
KItemListWidget* widget = static_cast<KItemListWidget*>(popRecycleableWidget());
- if (widget) {
- widget->setParentItem(view);
- } else {
+ if (!widget) {
widget = new T(view);
addCreatedWidget(widget);
}
@@ -504,7 +507,7 @@ class LIBDOLPHINPRIVATE_EXPORT KItemListGroupHeaderCreatorBase : public KItemLis
{
public:
virtual ~KItemListGroupHeaderCreatorBase();
- virtual KItemListGroupHeader* create(QGraphicsWidget* parent) = 0;
+ virtual KItemListGroupHeader* create(KItemListView* view) = 0;
virtual void recycle(KItemListGroupHeader* header);
};
@@ -513,7 +516,7 @@ class LIBDOLPHINPRIVATE_EXPORT KItemListGroupHeaderCreator : public KItemListGro
{
public:
virtual ~KItemListGroupHeaderCreator();
- virtual KItemListGroupHeader* create(QGraphicsWidget* parent);
+ virtual KItemListGroupHeader* create(KItemListView* view);
};
template <class T>
@@ -522,13 +525,11 @@ KItemListGroupHeaderCreator<T>::~KItemListGroupHeaderCreator()
}
template <class T>
-KItemListGroupHeader* KItemListGroupHeaderCreator<T>::create(QGraphicsWidget* parent)
+KItemListGroupHeader* KItemListGroupHeaderCreator<T>::create(KItemListView* view)
{
KItemListGroupHeader* widget = static_cast<KItemListGroupHeader*>(popRecycleableWidget());
- if (widget) {
- widget->setParentItem(parent);
- } else {
- widget = new T(parent);
+ if (!widget) {
+ widget = new T(view);
addCreatedWidget(widget);
}
return widget;