From 2237d8cef7573302e3d41e9c3510abd2d679031e Mon Sep 17 00:00:00 2001
From: Adam Leung <adamjleung123@gmail.com>
Date: Mon, 9 Aug 2021 18:45:21 +1000
Subject: [PATCH] qt: Added firstrun property to MainInterface with qml
 medialibrary reload check

---
 modules/gui/qt/maininterface/main_interface.cpp  | 4 ++++
 modules/gui/qt/maininterface/main_interface.hpp  | 2 ++
 modules/gui/qt/maininterface/qml/MainDisplay.qml | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/modules/gui/qt/maininterface/main_interface.cpp b/modules/gui/qt/maininterface/main_interface.cpp
index 5421286f1577..eaa9a777124a 100644
--- a/modules/gui/qt/maininterface/main_interface.cpp
+++ b/modules/gui/qt/maininterface/main_interface.cpp
@@ -259,6 +259,10 @@ bool MainInterface::useClientSideDecoration() const
     return m_clientSideDecoration && m_windowVisibility != QWindow::FullScreen;
 }
 
+bool MainInterface::hasFirstrun() const {
+    return config_GetInt( "qt-privacy-ask" );
+}
+
 /*****************************
  *   Main UI handling        *
  *****************************/
diff --git a/modules/gui/qt/maininterface/main_interface.hpp b/modules/gui/qt/maininterface/main_interface.hpp
index c3f18e15280f..581c5fa47ea2 100644
--- a/modules/gui/qt/maininterface/main_interface.hpp
+++ b/modules/gui/qt/maininterface/main_interface.hpp
@@ -157,6 +157,7 @@ class MainInterface : public QObject
     Q_PROPERTY(ColorSchemeModel* colorScheme READ getColorScheme CONSTANT FINAL)
     Q_PROPERTY(bool hasVLM READ hasVLM CONSTANT FINAL)
     Q_PROPERTY(bool clientSideDecoration READ useClientSideDecoration NOTIFY useClientSideDecorationChanged FINAL)
+    Q_PROPERTY(bool hasFirstrun READ hasFirstrun CONSTANT FINAL)
     Q_PROPERTY(int  csdBorderSize READ CSDBorderSize NOTIFY useClientSideDecorationChanged FINAL)
     Q_PROPERTY(bool hasToolbarMenu READ hasToolbarMenu NOTIFY hasToolbarMenuChanged FINAL)
     Q_PROPERTY(bool canShowVideoPIP READ canShowVideoPIP CONSTANT FINAL)
@@ -208,6 +209,7 @@ public:
     inline ColorSchemeModel* getColorScheme() const { return m_colorScheme; }
     bool hasVLM() const;
     bool useClientSideDecoration() const;
+    bool hasFirstrun() const;
     inline bool hasToolbarMenu() const { return m_hasToolbarMenu; }
     inline bool canShowVideoPIP() const { return m_canShowVideoPIP; }
     inline void setCanShowVideoPIP(bool canShowVideoPIP) { m_canShowVideoPIP = canShowVideoPIP; }
diff --git a/modules/gui/qt/maininterface/qml/MainDisplay.qml b/modules/gui/qt/maininterface/qml/MainDisplay.qml
index 0c6989233b4b..af65ffd4e369 100644
--- a/modules/gui/qt/maininterface/qml/MainDisplay.qml
+++ b/modules/gui/qt/maininterface/qml/MainDisplay.qml
@@ -48,7 +48,7 @@ FocusScope {
     onViewPropertiesChanged: loadView()
     Component.onCompleted: {
         loadView()
-        if (medialib)
+        if (medialib && !mainInterface.hasFirstrun)
             // asynchronous call
             medialib.reload()
     }
-- 
GitLab