Przeglądaj źródła

Merge pull request #1809 from cg2121/do-not-update-stats-hidden

UI: Don't update stats dock if hidden
Jim 6 lat temu
rodzic
commit
411b6f1064
2 zmienionych plików z 18 dodań i 1 usunięć
  1. 14 1
      UI/window-basic-stats.cpp
  2. 4 0
      UI/window-basic-stats.hpp

+ 14 - 1
UI/window-basic-stats.cpp

@@ -146,7 +146,10 @@ OBSBasicStats::OBSBasicStats(QWidget *parent, bool closeable)
 
 	QObject::connect(&timer, &QTimer::timeout, this, &OBSBasicStats::Update);
 	timer.setInterval(TIMER_INTERVAL);
-	timer.start();
+
+	if (isVisible())
+		timer.start();
+
 	Update();
 
 	OBSBasic *main = reinterpret_cast<OBSBasic*>(App()->GetMainWindow());
@@ -505,3 +508,13 @@ void OBSBasicStats::OutputLabels::Reset(obs_output_t *output)
 	first_total   = obs_output_get_total_frames(output);
 	first_dropped = obs_output_get_frames_dropped(output);
 }
+
+void OBSBasicStats::showEvent(QShowEvent *)
+{
+	timer.start(TIMER_INTERVAL);
+}
+
+void OBSBasicStats::hideEvent(QHideEvent *)
+{
+	timer.stop();
+}

+ 4 - 0
UI/window-basic-stats.hpp

@@ -61,4 +61,8 @@ public:
 	static void InitializeValues();
 private:
 	QPointer<QObject> shortcutFilter;
+
+protected:
+	virtual void showEvent(QShowEvent *event) override;
+	virtual void hideEvent(QHideEvent *event) override;
 };