Prevent deletion of find tool bar when place holder is deleted.

This happens for example when removing a split editor.
This commit is contained in:
con
2009-07-21 17:48:24 +02:00
parent 51f20d400c
commit eec53984fa
5 changed files with 31 additions and 18 deletions

View File

@@ -264,14 +264,6 @@ bool FindToolBar::eventFilter(QObject *obj, QEvent *event)
return Core::Utils::StyledBar::eventFilter(obj, event);
}
void FindToolBar::removeFromParent()
{
setVisible(false);
setParent(0);
Core::FindToolBarPlaceHolder::setCurrent(0);
}
void FindToolBar::adaptToCandidate()
{
updateFindAction();
@@ -534,7 +526,7 @@ Core::FindToolBarPlaceHolder *FindToolBar::findToolBarPlaceHolder() const
QWidget *candidate = QApplication::focusWidget();
while (candidate) {
foreach (Core::FindToolBarPlaceHolder *ph, placeholders) {
if (ph->widget() == candidate)
if (ph->owner() == candidate)
return ph;
}
candidate = candidate->parentWidget();
@@ -551,11 +543,10 @@ void FindToolBar::openFind()
return;
Core::FindToolBarPlaceHolder *previousHolder = Core::FindToolBarPlaceHolder::getCurrent();
if (previousHolder)
disconnect(previousHolder, SIGNAL(destroyed(QObject*)), this, SLOT(removeFromParent()));
previousHolder->setWidget(0);
Core::FindToolBarPlaceHolder::setCurrent(holder);
connect(holder, SIGNAL(destroyed(QObject*)), this, SLOT(removeFromParent()));
m_currentDocumentFind->acceptCandidate();
holder->layout()->addWidget(this);
holder->setWidget(this);
holder->setVisible(true);
setVisible(true);
setFocus();