[vlc-devel] [PATCH] qt: main_interface: remove deprecation warning on qmlRegisterType

Alexandre Janniaux ajanni at videolabs.io
Mon Apr 6 15:55:35 CEST 2020


qmlRegisterType is deprecated in Qt 5.14 in favour of
qmlRegisterAnonymousType which is introduced in 5.14.

The warning was spamming multiple time as it was used multiple time.
---
 modules/gui/qt/maininterface/main_interface.cpp | 10 +++++-----
 modules/gui/qt/maininterface/main_interface.hpp | 15 +++++++++++++++
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/modules/gui/qt/maininterface/main_interface.cpp b/modules/gui/qt/maininterface/main_interface.cpp
index 8027b116cb..3bc869cd35 100644
--- a/modules/gui/qt/maininterface/main_interface.cpp
+++ b/modules/gui/qt/maininterface/main_interface.cpp
@@ -357,11 +357,11 @@ void MainInterface::createMainWidget( QSettings * )
         qmlRegisterType<MlFoldersModel>( "org.videolan.medialib", 0, 1, "MLFolderModel");
 
         //expose base object, they aren't instanciable from QML side
-        qmlRegisterType<MLAlbum>();
-        qmlRegisterType<MLArtist>();
-        qmlRegisterType<MLAlbumTrack>();
-        qmlRegisterType<MLGenre>();
-        qmlRegisterType<MLVideo>();
+        registerAnonymousType<MLAlbum>( "org.videolan.medialib", 1 );
+        registerAnonymousType<MLArtist>( "org.videolan.medialib", 1 );
+        registerAnonymousType<MLAlbumTrack>( "org.videolan.medialib", 1 );
+        registerAnonymousType<MLGenre>( "org.videolan.medialib", 1 );
+        registerAnonymousType<MLVideo>( "org.videolan.medialib", 1 );
     }
 
     qmlRegisterUncreatableType<NavigationHistory>("org.videolan.vlc", 0, 1, "History", "Type of global variable history" );
diff --git a/modules/gui/qt/maininterface/main_interface.hpp b/modules/gui/qt/maininterface/main_interface.hpp
index 9333d9918d..e04ae8b1d8 100644
--- a/modules/gui/qt/maininterface/main_interface.hpp
+++ b/modules/gui/qt/maininterface/main_interface.hpp
@@ -30,6 +30,7 @@
 #include "player/player_controller.hpp"
 #include "voutwindow/qvoutwindow.hpp"
 
+#include <QtGlobal>
 #include <QSystemTrayIcon>
 #include <QStackedWidget>
 #include <QtQuick/QQuickView>
@@ -262,6 +263,20 @@ signals:
     void hasEmbededVideoChanged(bool);
     void toolBarConfUpdated();
     void showRemainingTimeChanged(bool);
+
+private:
+    template<class T>
+    void registerAnonymousType( const char *uri, int versionMajor );
 };
 
+template<class T>
+void MainInterface::registerAnonymousType( const char *uri, int versionMajor )
+{
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+    qmlRegisterAnonymousType<T>( uri, versionMajor );
+#else
+    qmlRegisterType<T>();
+#endif
+}
+
 #endif
-- 
2.26.0



More information about the vlc-devel mailing list