takeTab(), removes a tab and returns the tab contents
svn path=/trunk/KDE/kdelibs/; revision=1004310
This commit is contained in:
parent
f8580b442d
commit
6257d4b7a8
@ -383,6 +383,49 @@ void TabBar::removeTab(int index)
|
||||
d->tabProxy->setPreferredSize(d->tabProxy->native->sizeHint());
|
||||
}
|
||||
|
||||
QGraphicsLayoutItem *TabBar::takeTab(int index)
|
||||
{
|
||||
if (index > d->pages.count()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int oldCurrentIndex = d->tabProxy->native->currentIndex();
|
||||
d->tabProxy->native->removeTab(index);
|
||||
QGraphicsWidget *page = d->pages.takeAt(index);
|
||||
|
||||
int currentIndex = d->tabProxy->native->currentIndex();
|
||||
|
||||
if (oldCurrentIndex == index) {
|
||||
d->tabWidgetLayout->removeAt(1);
|
||||
}
|
||||
|
||||
QGraphicsLayoutItem *returnItem = 0;
|
||||
QGraphicsLayout *lay = page->layout();
|
||||
if (lay && lay->count() == 1) {
|
||||
returnItem = lay->itemAt(0);
|
||||
lay->removeAt(0);
|
||||
} else {
|
||||
returnItem = lay;
|
||||
}
|
||||
|
||||
if (returnItem) {
|
||||
returnItem->setParentLayoutItem(0);
|
||||
}
|
||||
|
||||
page->setLayout(0);
|
||||
scene()->removeItem(page);
|
||||
page->deleteLater();
|
||||
|
||||
if (oldCurrentIndex != currentIndex) {
|
||||
setCurrentIndex(currentIndex);
|
||||
}
|
||||
|
||||
d->updateTabWidgetMode();
|
||||
d->tabProxy->setPreferredSize(d->tabProxy->native->sizeHint());
|
||||
|
||||
return returnItem;
|
||||
}
|
||||
|
||||
void TabBar::setTabText(int index, const QString &label)
|
||||
{
|
||||
if (index > d->pages.count()) {
|
||||
|
@ -112,12 +112,20 @@ public:
|
||||
int addTab(const QString &label, QGraphicsLayoutItem *content = 0);
|
||||
|
||||
/**
|
||||
* Removes a tab
|
||||
* Removes a tab, contents are deleted
|
||||
*
|
||||
* @arg index the index of the tab to remove
|
||||
*/
|
||||
void removeTab(int index);
|
||||
|
||||
/**
|
||||
* Removes a tab, the page is reparented to 0 and is returned
|
||||
*
|
||||
* @arg index the index of the tab to remove
|
||||
* @since 4.4
|
||||
*/
|
||||
QGraphicsLayoutItem *takeTab(int index);
|
||||
|
||||
/**
|
||||
* @return the index of the tab currently active
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user