UI: Delete log viewer when closing it

When the user would open the log viewer and close it, it would
just hide, instead of deleting it.
This commit is contained in:
Clayton Groeneveld 2021-05-09 20:17:32 -05:00
parent 7aedf78338
commit a5bb527ce5
3 changed files with 9 additions and 13 deletions

View file

@ -16,6 +16,7 @@ OBSLogViewer::OBSLogViewer(QWidget *parent) : QDialog(parent)
{
setWindowFlags(windowFlags() & Qt::WindowMaximizeButtonHint &
~Qt::WindowContextHelpButtonHint);
setAttribute(Qt::WA_DeleteOnClose);
QVBoxLayout *layout = new QVBoxLayout();
layout->setContentsMargins(0, 0, 0, 0);
@ -35,7 +36,7 @@ OBSLogViewer::OBSLogViewer(QWidget *parent) : QDialog(parent)
connect(openButton, &QPushButton::clicked, this,
&OBSLogViewer::OpenFile);
QPushButton *closeButton = new QPushButton(QTStr("Close"));
connect(closeButton, &QPushButton::clicked, this, &QDialog::hide);
connect(closeButton, &QPushButton::clicked, this, &QDialog::close);
bool showLogViewerOnStartup = config_get_bool(
App()->GlobalConfig(), "LogViewer", "ShowLogStartup");

View file

@ -2554,7 +2554,6 @@ OBSBasic::~OBSBasic()
updateCheckThread->wait();
delete screenshotData;
delete logView;
delete multiviewProjectorMenu;
delete previewProjector;
delete studioProgramProjector;
@ -5725,15 +5724,12 @@ void OBSBasic::on_actionViewCurrentLog_triggered()
if (!logView)
logView = new OBSLogViewer();
if (!logView->isVisible()) {
logView->setVisible(true);
} else {
logView->setWindowState(
(logView->windowState() & ~Qt::WindowMinimized) |
Qt::WindowActive);
logView->activateWindow();
logView->raise();
}
logView->show();
logView->setWindowState(
(logView->windowState() & ~Qt::WindowMinimized) |
Qt::WindowActive);
logView->activateWindow();
logView->raise();
}
void OBSBasic::on_actionShowCrashLogs_triggered()

View file

@ -218,8 +218,7 @@ private:
QPointer<QDockWidget> statsDock;
QPointer<OBSAbout> about;
QPointer<OBSMissingFiles> missDialog;
OBSLogViewer *logView = nullptr;
QPointer<OBSLogViewer> logView;
QPointer<QTimer> cpuUsageTimer;
QPointer<QTimer> diskFullTimer;