[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