diff --git a/UI/log-viewer.cpp b/UI/log-viewer.cpp index 0ce2acca3..4af26671a 100644 --- a/UI/log-viewer.cpp +++ b/UI/log-viewer.cpp @@ -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"); diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 02c44c792..65707a196 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -2096,11 +2096,8 @@ void OBSBasic::OnFirstLoad() bool showLogViewerOnStartup = config_get_bool( App()->GlobalConfig(), "LogViewer", "ShowLogStartup"); - if (showLogViewerOnStartup) { - if (!logView) - logView = new OBSLogViewer(); - logView->show(); - } + if (showLogViewerOnStartup) + on_actionViewCurrentLog_triggered(); } void OBSBasic::DeferredSysTrayLoad(int requeueCount) @@ -2585,7 +2582,6 @@ OBSBasic::~OBSBasic() updateCheckThread->wait(); delete screenshotData; - delete logView; delete multiviewProjectorMenu; delete previewProjector; delete studioProgramProjector; @@ -5938,15 +5934,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() diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 7d5ec2033..3114a515f 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -219,8 +219,7 @@ private: QPointer statsDock; QPointer about; QPointer missDialog; - - OBSLogViewer *logView = nullptr; + QPointer logView; QPointer cpuUsageTimer; QPointer diskFullTimer;