Add a static function for programmatically closing tool windows

This commit is contained in:
baldurk
2016-11-14 14:02:35 +01:00
parent e65ca2937a
commit 07b4ebb3ba
2 changed files with 24 additions and 0 deletions
@@ -274,6 +274,28 @@ void ToolWindowManager::removeToolWindow(QWidget *toolWindow) {
delete toolWindow;
}
void ToolWindowManager::closeToolWindow(QWidget *toolWindow) {
if (!toolWindow) {
qWarning("NULL tool window");
return;
}
// search up to find the first parent manager
QWidget *parent = toolWindow->parentWidget();
while(parent) {
ToolWindowManager *manager = qobject_cast<ToolWindowManager*>(parent);
if(manager) {
manager->removeToolWindow(toolWindow);
return;
}
parent = parent->parentWidget();
}
qWarning("window not child of any tool window");
}
QWidget* ToolWindowManager::createToolWindow(const QString& objectName)
{
if (m_createCallback) {
@@ -234,6 +234,8 @@ public:
*/
void hideToolWindow(QWidget* toolWindow) { moveToolWindow(toolWindow, NoArea); }
static void closeToolWindow(QWidget *toolWindow);
/*!
* \brief saveState
*/