* add API docu to the methods i added
* add a resetLayout() so layouts can release LayoutItems on deletion, avoiding dangling pointers and possible crashes svn path=/trunk/KDE/kdebase/workspace/plasma/lib/; revision=668931
This commit is contained in:
parent
c300ff48bc
commit
3c690fea84
@ -70,6 +70,11 @@ qreal LayoutItem::widthForHeight(qreal h) const
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LayoutItem::resetLayout()
|
||||||
|
{
|
||||||
|
d->layout = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void LayoutItem::setLayout(Layout* layout)
|
void LayoutItem::setLayout(Layout* layout)
|
||||||
{
|
{
|
||||||
if (d->layout) {
|
if (d->layout) {
|
||||||
|
@ -54,7 +54,27 @@ class KDE_EXPORT LayoutItem
|
|||||||
|
|
||||||
virtual QSizeF sizeHint() const = 0;
|
virtual QSizeF sizeHint() const = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the layout to 0 and doesn't notify the previous layout.
|
||||||
|
* Should only be used by the current layout when relinquishing the item,
|
||||||
|
* e.g. during layout destruction.
|
||||||
|
*/
|
||||||
|
void resetLayout();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the layout so that the LayoutItem may inform the layout of its
|
||||||
|
* deletion. Should only be used by the layout it is added to.
|
||||||
|
*
|
||||||
|
* If the layout item is currently associated with another layout, it will
|
||||||
|
* first remove itself from that layout.
|
||||||
|
*
|
||||||
|
* @param layout The Layout that this LayoutItem will be managed by.
|
||||||
|
*/
|
||||||
void setLayout(Layout* layout);
|
void setLayout(Layout* layout);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the layout this item is currently associated with
|
||||||
|
*/
|
||||||
Layout* layout();
|
Layout* layout();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -44,6 +44,9 @@ VBoxLayout::VBoxLayout(LayoutItem *parent)
|
|||||||
|
|
||||||
VBoxLayout::~VBoxLayout()
|
VBoxLayout::~VBoxLayout()
|
||||||
{
|
{
|
||||||
|
foreach (LayoutItem *l, d->childList) {
|
||||||
|
l->resetLayout();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Qt::Orientations VBoxLayout::expandingDirections() const
|
Qt::Orientations VBoxLayout::expandingDirections() const
|
||||||
|
Loading…
Reference in New Issue
Block a user