-autocollapse property to extendergroup: if it's on when the group collapses/expands theextenderItem collapses/expands as well (default false)

-isGroupcollapsed/setGroupCollapsed to unform APi with ExtenderItem

svn path=/trunk/KDE/kdelibs/; revision=1066229
This commit is contained in:
Marco Martin 2009-12-26 13:02:53 +00:00
parent 763ac6b862
commit b521f3e158
4 changed files with 64 additions and 2 deletions

View File

@ -114,8 +114,38 @@ void ExtenderGroup::setAutoHide(bool autoHide)
} }
} }
bool ExtenderGroup::isAutoCollapse() const
{
return d->autoCollapse;
}
void ExtenderGroup::setAutoCollapse(bool collapse)
{
d->autoCollapse = collapse;
if (collapse) {
setCollapsed(d->collapsed);
}
}
bool ExtenderGroup::isGroupCollapsed() const
{
return d->collapsed;
}
void ExtenderGroup::setGroupCollapsed(bool collapsed)
{
if (collapsed) {
collapseGroup();
} else {
expandGroup();
}
}
void ExtenderGroup::expandGroup() void ExtenderGroup::expandGroup()
{ {
if (d->autoCollapse) {
setCollapsed(false);
}
if (d->collapsed == false) { if (d->collapsed == false) {
return; return;
} }
@ -134,6 +164,9 @@ void ExtenderGroup::expandGroup()
void ExtenderGroup::collapseGroup() void ExtenderGroup::collapseGroup()
{ {
if (d->autoCollapse) {
setCollapsed(true);
}
if (d->collapsed == true) { if (d->collapsed == true) {
return; return;
} }
@ -155,7 +188,8 @@ ExtenderGroupPrivate::ExtenderGroupPrivate(ExtenderGroup *group)
: q(group), : q(group),
svg(new Svg(group)), svg(new Svg(group)),
collapsed(true), collapsed(true),
autoHide(true) autoHide(true),
autoCollapse(true)
{ {
} }

View File

@ -51,6 +51,8 @@ class PLASMA_EXPORT ExtenderGroup : public ExtenderItem
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool autoHide READ autoHide WRITE setAutoHide) Q_PROPERTY(bool autoHide READ autoHide WRITE setAutoHide)
Q_PROPERTY(bool groupCollapsed READ isGroupCollapsed WRITE setGroupCollapsed)
Q_PROPERTY(bool autoCollapse READ isAutoCollapse WRITE setAutoCollapse)
public: public:
/** /**
@ -72,11 +74,35 @@ class PLASMA_EXPORT ExtenderGroup : public ExtenderItem
bool autoHide() const; bool autoHide() const;
/** /**
* @param autoHide whether or not this item hides itself if less then 2 items belong to this group. * @param autoHide whether or not this item hides itself if less then 2 items belong to this group. The default value is true.
*/ */
void setAutoHide(bool autoHide); void setAutoHide(bool autoHide);
/**
* @return if the group is collapsed
* @since 4.4
*/
bool isGroupCollapsed() const;
/**
* @return whether or not this item collapses itself when the group gets collapsed
* @since 4.4
*/
bool isAutoCollapse() const;
/**
* @param autoCollapse whether or not this item collapses itself when the group gets collapsed, the default value is false
* @since 4.4
*/
void setAutoCollapse(bool collapse);
public Q_SLOTS: public Q_SLOTS:
/**
* expands or collapses this group
* @since 4.4
*/
void setGroupCollapsed(bool collapsed);
/** /**
* Expands this group to show all ExtenderItems that are contained in this group. * Expands this group to show all ExtenderItems that are contained in this group.
*/ */

View File

@ -198,6 +198,7 @@ void ExtenderItem::setWidget(QGraphicsItem *widget)
widget->setPos(QPointF(d->bgLeft + d->dragLeft, panelSize.height() + d->bgTop)); widget->setPos(QPointF(d->bgLeft + d->dragLeft, panelSize.height() + d->bgTop));
d->widget = widget; d->widget = widget;
d->updateSizeHints(); d->updateSizeHints();
d->widget->setVisible(!d->collapsed);
} }
QGraphicsItem *ExtenderItem::widget() const QGraphicsItem *ExtenderItem::widget() const

View File

@ -41,6 +41,7 @@ class ExtenderGroupPrivate
Plasma::Svg *svg; Plasma::Svg *svg;
bool collapsed; bool collapsed;
bool autoHide; bool autoHide;
bool autoCollapse;
}; };
} }