mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
Add utility function to locate the manager for a window
This commit is contained in:
+13
-9
@@ -275,6 +275,15 @@ void ToolWindowManager::removeToolWindow(QWidget *toolWindow) {
|
||||
delete toolWindow;
|
||||
}
|
||||
|
||||
ToolWindowManager* ToolWindowManager::managerOf(QWidget* toolWindow) {
|
||||
if (!toolWindow) {
|
||||
qWarning("NULL tool window");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return findClosestParent<ToolWindowManager*>(toolWindow);
|
||||
}
|
||||
|
||||
void ToolWindowManager::closeToolWindow(QWidget *toolWindow) {
|
||||
if (!toolWindow) {
|
||||
qWarning("NULL tool window");
|
||||
@@ -282,16 +291,11 @@ void ToolWindowManager::closeToolWindow(QWidget *toolWindow) {
|
||||
}
|
||||
|
||||
// search up to find the first parent manager
|
||||
QWidget *parent = toolWindow->parentWidget();
|
||||
while(parent) {
|
||||
ToolWindowManager *manager = qobject_cast<ToolWindowManager*>(parent);
|
||||
ToolWindowManager *manager = findClosestParent<ToolWindowManager*>(toolWindow);
|
||||
|
||||
if(manager) {
|
||||
manager->removeToolWindow(toolWindow);
|
||||
return;
|
||||
}
|
||||
|
||||
parent = parent->parentWidget();
|
||||
if(manager) {
|
||||
manager->removeToolWindow(toolWindow);
|
||||
return;
|
||||
}
|
||||
|
||||
qWarning("window not child of any tool window");
|
||||
|
||||
@@ -233,7 +233,8 @@ public:
|
||||
* \a toolWindow must be added to the manager prior to calling this function.
|
||||
*/
|
||||
void hideToolWindow(QWidget* toolWindow) { moveToolWindow(toolWindow, NoArea); }
|
||||
|
||||
|
||||
static ToolWindowManager* managerOf(QWidget* toolWindow);
|
||||
static void closeToolWindow(QWidget *toolWindow);
|
||||
static void raiseToolWindow(QWidget *toolWindow);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user