update the return to source button visibility based on the hostapplet immutability rather than sourceapplet, works also if not all containments have the same immutability (netbook)

BUG:235949

svn path=/trunk/KDE/kdelibs/; revision=1137192
This commit is contained in:
Marco Martin 2010-06-11 22:02:54 +00:00
parent b959b74d36
commit c77396e412

View File

@ -186,7 +186,7 @@ ExtenderItem::ExtenderItem(Extender *hostExtender, uint extenderItemId)
//make sure we keep monitoring if the source applet still exists, so the return to source icon
//can be hidden if it is removed.
connect(d->sourceApplet, SIGNAL(destroyed()), this, SLOT(sourceAppletRemoved()));
connect(d->sourceApplet, SIGNAL(immutabilityChanged(Plasma::ImmutabilityType)), this, SLOT(updateToolBox()));
connect(d->collapseIcon, SIGNAL(clicked()), this, SLOT(toggleCollapse()));
//set the extender we want to move to.
@ -325,7 +325,11 @@ void ExtenderItem::setExtender(Extender *extender, const QPointF &pos)
setParentItem(extender);
setParent(extender);
if (d->extender) {
disconnect(d->extender->applet(), SIGNAL(immutabilityChanged(Plasma::ImmutabilityType)), this, SLOT(updateToolBox()));
}
d->extender = extender;
connect(d->extender->applet(), SIGNAL(immutabilityChanged(Plasma::ImmutabilityType)), this, SLOT(updateToolBox()));
//change parent.
extender->d->addExtenderItem(this, pos);
@ -751,7 +755,7 @@ void ExtenderItemPrivate::updateToolBox()
QAction *closeAction = actions.value("close");
QAction *returnToSourceAction = actions.value("extenderItemReturnToSource");
bool returnToSourceVisibility = q->isDetached() && sourceApplet && (sourceApplet->immutability() == Plasma::Mutable);
bool returnToSourceVisibility = q->isDetached() && sourceApplet && (hostApplet()->immutability() == Plasma::Mutable);
int closeIndex = -1;
int returnToSourceIndex = -1;
const int startingIndex = 2; // collapse item is index 0, title label is 1