Browse Source

Merge pull request #4678 from cg2121/logviewer-fixes

UI: Log viewer fixes
Richard Stanway 4 years ago
parent
commit
64f3b29e02
3 changed files with 11 additions and 18 deletions
  1. 2 1
      UI/log-viewer.cpp
  2. 8 15
      UI/window-basic-main.cpp
  3. 1 2
      UI/window-basic-main.hpp

+ 2 - 1
UI/log-viewer.cpp

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

+ 8 - 15
UI/window-basic-main.cpp

@@ -2096,11 +2096,8 @@ void OBSBasic::OnFirstLoad()
 	bool showLogViewerOnStartup = config_get_bool(
 	bool showLogViewerOnStartup = config_get_bool(
 		App()->GlobalConfig(), "LogViewer", "ShowLogStartup");
 		App()->GlobalConfig(), "LogViewer", "ShowLogStartup");
 
 
-	if (showLogViewerOnStartup) {
-		if (!logView)
-			logView = new OBSLogViewer();
-		logView->show();
-	}
+	if (showLogViewerOnStartup)
+		on_actionViewCurrentLog_triggered();
 }
 }
 
 
 void OBSBasic::DeferredSysTrayLoad(int requeueCount)
 void OBSBasic::DeferredSysTrayLoad(int requeueCount)
@@ -2585,7 +2582,6 @@ OBSBasic::~OBSBasic()
 		updateCheckThread->wait();
 		updateCheckThread->wait();
 
 
 	delete screenshotData;
 	delete screenshotData;
-	delete logView;
 	delete multiviewProjectorMenu;
 	delete multiviewProjectorMenu;
 	delete previewProjector;
 	delete previewProjector;
 	delete studioProgramProjector;
 	delete studioProgramProjector;
@@ -5938,15 +5934,12 @@ void OBSBasic::on_actionViewCurrentLog_triggered()
 	if (!logView)
 	if (!logView)
 		logView = new OBSLogViewer();
 		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()
 void OBSBasic::on_actionShowCrashLogs_triggered()

+ 1 - 2
UI/window-basic-main.hpp

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