From c0f19b95d5adc087a82c51c89ad6e790cb0657f4 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Tue, 15 Sep 2020 20:29:40 -0700 Subject: [PATCH] UI: Do not always have log viewer loaded This object should not always be created on startup. Instead, only load it specifically when the user wants to load it. This fixes a freeze some users were experiencing due to the text widget. Unfortunately, it is not yet known how that freeze occurred with the log viewer, so for the time being do not load the log viewer object unless explicitly created. --- UI/log-viewer.cpp | 11 ++++------- UI/log-viewer.hpp | 2 -- UI/window-basic-main.cpp | 14 ++++++++++---- UI/window-basic-main.hpp | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/UI/log-viewer.cpp b/UI/log-viewer.cpp index f95cb0265..b1e2bf535 100644 --- a/UI/log-viewer.cpp +++ b/UI/log-viewer.cpp @@ -37,8 +37,11 @@ OBSLogViewer::OBSLogViewer(QWidget *parent) : QDialog(parent) QPushButton *closeButton = new QPushButton(QTStr("Close")); connect(closeButton, &QPushButton::clicked, this, &QDialog::hide); + bool showLogViewerOnStartup = config_get_bool( + App()->GlobalConfig(), "LogViewer", "ShowLogStartup"); + QCheckBox *showStartup = new QCheckBox(QTStr("ShowOnStartup")); - showStartup->setChecked(ShowOnStartup()); + showStartup->setChecked(showLogViewerOnStartup); connect(showStartup, SIGNAL(toggled(bool)), this, SLOT(ToggleShowStartup(bool))); @@ -81,12 +84,6 @@ void OBSLogViewer::ToggleShowStartup(bool checked) checked); } -bool OBSLogViewer::ShowOnStartup() -{ - return config_get_bool(App()->GlobalConfig(), "LogViewer", - "ShowLogStartup"); -} - extern QPointer obsLogViewer; void OBSLogViewer::InitLog() diff --git a/UI/log-viewer.hpp b/UI/log-viewer.hpp index ed43828cf..2ca753745 100644 --- a/UI/log-viewer.hpp +++ b/UI/log-viewer.hpp @@ -20,6 +20,4 @@ private slots: public: OBSLogViewer(QWidget *parent = 0); ~OBSLogViewer(); - - bool ShowOnStartup(); }; diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 83a41e627..16b5960c3 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -193,9 +193,6 @@ extern void RegisterRestreamAuth(); OBSBasic::OBSBasic(QWidget *parent) : OBSMainWindow(parent), ui(new Ui::OBSBasic) { - /* setup log viewer */ - logView = new OBSLogViewer(); - qRegisterMetaTypeStreamOperators>( "SignalContainer"); @@ -1955,8 +1952,14 @@ void OBSBasic::OnFirstLoad() Auth::Load(); - if (logView && logView->ShowOnStartup()) + bool showLogViewerOnStartup = config_get_bool( + App()->GlobalConfig(), "LogViewer", "ShowLogStartup"); + + if (showLogViewerOnStartup) { + if (!logView) + logView = new OBSLogViewer(); logView->show(); + } } void OBSBasic::DeferredSysTrayLoad(int requeueCount) @@ -5331,6 +5334,9 @@ void OBSBasic::on_actionUploadLastLog_triggered() void OBSBasic::on_actionViewCurrentLog_triggered() { + if (!logView) + logView = new OBSLogViewer(); + if (!logView->isVisible()) { logView->setVisible(true); } else { diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 8e960c675..c4d3bb777 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -214,7 +214,7 @@ private: QPointer statsDock; QPointer about; - OBSLogViewer *logView; + OBSLogViewer *logView = nullptr; QPointer cpuUsageTimer; QPointer diskFullTimer;