소스 검색

Merge pull request #4678 from cg2121/logviewer-fixes

UI: Log viewer fixes
Richard Stanway 4 년 전
부모
커밋
64f3b29e02
3개의 변경된 파일11개의 추가작업 그리고 18개의 파일을 삭제
  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 &
 		       ~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");

+ 8 - 15
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()

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

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