Default to deleting windows from ToolWindowManager when closed

This commit is contained in:
baldurk
2016-11-11 18:58:12 +01:00
parent 614c15d669
commit 097b93ce9c
5 changed files with 22 additions and 17 deletions
@@ -270,6 +270,7 @@ void ToolWindowManager::removeToolWindow(QWidget *toolWindow) {
moveToolWindow(toolWindow, NoArea);
m_toolWindows.removeOne(toolWindow);
m_toolWindowProperties.remove(toolWindow);
delete toolWindow;
}
QWidget* ToolWindowManager::createToolWindow(const QString& objectName)
@@ -790,7 +791,11 @@ void ToolWindowManager::tabCloseRequested(int index) {
qWarning("unknown tab in tab widget");
return;
}
hideToolWindow(toolWindow);
if(toolWindowProperties(toolWindow) & ToolWindowManager::HideOnClose)
hideToolWindow(toolWindow);
else
removeToolWindow(toolWindow);
}
void ToolWindowManager::windowTitleChanged(const QString &title) {
@@ -113,6 +113,8 @@ public:
HideCloseButton = 0x2,
//! Disable the user being able to drag this tab in the tab bar, to rearrange
DisableDraggableTab = 0x4,
//! When the tool window is closed, hide it instead of removing it
HideOnClose = 0x8,
};
//! Type of AreaReference.
+7 -10
View File
@@ -165,6 +165,13 @@ CaptureDialog::CaptureDialog(CaptureContext *ctx, OnCaptureMethod captureCallbac
CaptureDialog::~CaptureDialog()
{
if(ui->toggleGlobal->isChecked())
{
ui->toggleGlobal->setChecked(false);
updateGlobalHook();
}
delete ui;
}
@@ -504,16 +511,6 @@ void CaptureDialog::loadSettings(QString filename)
}
}
void CaptureDialog::closeEvent(QCloseEvent *event)
{
if(ui->toggleGlobal->isChecked())
{
ui->toggleGlobal->setChecked(false);
updateGlobalHook();
}
}
void CaptureDialog::updateGlobalHook()
{
ui->globalGroup->setVisible(!injectMode() && m_Ctx->Config.AllowGlobalHook);
+6 -6
View File
@@ -141,12 +141,12 @@ MainWindow::MainWindow(CaptureContext *ctx) : QMainWindow(NULL), ui(new Ui::Main
// create default layout if layout failed to load
if(!loaded)
{
EventBrowser *eventBrowser = new EventBrowser(m_Ctx);
EventBrowser *eventBrowser = new EventBrowser(m_Ctx, this);
eventBrowser->setObjectName("eventBrowser");
ui->toolWindowManager->addToolWindow(eventBrowser, ToolWindowManager::EmptySpace);
TextureViewer *textureViewer = new TextureViewer(m_Ctx);
TextureViewer *textureViewer = new TextureViewer(m_Ctx, this);
textureViewer->setObjectName("textureViewer");
ui->toolWindowManager->addToolWindow(
@@ -596,9 +596,9 @@ CaptureDialog *MainWindow::createCaptureDialog()
m_Ctx,
[this](const QString &exe, const QString &workingDir, const QString &cmdLine,
const QList<EnvironmentModification> &env,
CaptureOptions opts) { this->OnCaptureTrigger(exe, workingDir, cmdLine, env, opts); },
CaptureOptions opts) { return this->OnCaptureTrigger(exe, workingDir, cmdLine, env, opts); },
[this](uint32_t PID, const QList<EnvironmentModification> &env, const QString &name,
CaptureOptions opts) { this->OnInjectTrigger(PID, env, name, opts); });
CaptureOptions opts) { return this->OnInjectTrigger(PID, env, name, opts); }, this);
ret->setObjectName("capDialog");
return ret;
}
@@ -810,7 +810,7 @@ void MainWindow::on_action_Mesh_Output_triggered()
void MainWindow::on_action_Event_Viewer_triggered()
{
EventBrowser *eventBrowser = new EventBrowser(m_Ctx);
EventBrowser *eventBrowser = new EventBrowser(m_Ctx, this);
eventBrowser->setObjectName("eventBrowser");
ui->toolWindowManager->addToolWindow(eventBrowser, ToolWindowManager::EmptySpace);
@@ -818,7 +818,7 @@ void MainWindow::on_action_Event_Viewer_triggered()
void MainWindow::on_action_Texture_Viewer_triggered()
{
TextureViewer *textureViewer = new TextureViewer(m_Ctx);
TextureViewer *textureViewer = new TextureViewer(m_Ctx, this);
textureViewer->setObjectName("textureViewer");
ui->toolWindowManager->addToolWindow(textureViewer, ToolWindowManager::EmptySpace);
+1
View File
@@ -3251,6 +3251,7 @@ void TextureViewer::on_texListShow_clicked()
ui->textureListFrame,
ToolWindowManager::AreaReference(ToolWindowManager::LeftOf,
ui->dockarea->areaOf(ui->renderContainer), 0.2f));
ui->dockarea->setToolWindowProperties(ui->textureListFrame, ToolWindowManager::HideOnClose);
}
}