From 277e5d40a321a13393d1a808acb40d903964097e Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 3 May 2017 16:26:00 +0200 Subject: [PATCH] feat(src/app/App): better way to register components --- linphone-desktop/src/app/App.cpp | 55 ++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/linphone-desktop/src/app/App.cpp b/linphone-desktop/src/app/App.cpp index ad0411b5d..7886188ae 100644 --- a/linphone-desktop/src/app/App.cpp +++ b/linphone-desktop/src/app/App.cpp @@ -278,6 +278,15 @@ bool App::hasFocus () const { } \ ) +#define registerUncreatableType(TYPE, NAME) qmlRegisterUncreatableType( \ + "Linphone", 1, 0, NAME, NAME " is uncreatable." \ +) + +template +void registerMetaType (const char *name) { + qRegisterMetaType(name); +} + template void registerSingletonType (const char *name) { qmlRegisterSingletonType( @@ -288,33 +297,23 @@ void registerSingletonType (const char *name) { ); } +template +void registerType (const char *name) { + qmlRegisterType("Linphone", 1, 0, name); +} + void App::registerTypes () { qInfo() << "Registering types..."; - qmlRegisterType("Linphone", 1, 0, "AssistantModel"); - qmlRegisterType("Linphone", 1, 0, "AuthenticationNotifier"); - qmlRegisterType("Linphone", 1, 0, "Camera"); - qmlRegisterType("Linphone", 1, 0, "CameraPreview"); - qmlRegisterType("Linphone", 1, 0, "ChatModel"); - qmlRegisterType("Linphone", 1, 0, "ChatProxyModel"); - qmlRegisterType("Linphone", 1, 0, "ContactsListProxyModel"); - qmlRegisterType("Linphone", 1, 0, "SmartSearchBarModel"); - qmlRegisterType("Linphone", 1, 0, "SoundPlayer"); - - qRegisterMetaType("ChatModel::EntryType"); - - qmlRegisterUncreatableType( - "Linphone", 1, 0, "CallModel", "CallModel is uncreatable." - ); - qmlRegisterUncreatableType( - "Linphone", 1, 0, "ContactModel", "ContactModel is uncreatable." - ); - qmlRegisterUncreatableType( - "Linphone", 1, 0, "SipAddressObserver", "SipAddressObserver is uncreatable." - ); - qmlRegisterUncreatableType( - "Linphone", 1, 0, "VcardModel", "VcardModel is uncreatable." - ); + registerType("AssistantModel"); + registerType("AuthenticationNotifier"); + registerType("Camera"); + registerType("CameraPreview"); + registerType("ChatModel"); + registerType("ChatProxyModel"); + registerType("ContactsListProxyModel"); + registerType("SmartSearchBarModel"); + registerType("SoundPlayer"); registerSingletonType("AudioCodecsModel"); registerSingletonType("OwnPresenceModel"); @@ -322,6 +321,13 @@ void App::registerTypes () { registerSingletonType("TimelineModel"); registerSingletonType("VideoCodecsModel"); + registerMetaType("ChatModel::EntryType"); + + registerUncreatableType(CallModel, "CallModel"); + registerUncreatableType(ContactModel, "ContactModel"); + registerUncreatableType(SipAddressObserver, "SipAddressObserver"); + registerUncreatableType(VcardModel, "VcardModel"); + registerSharedSingletonType(App, "App", App::getInstance); registerSharedSingletonType(CoreManager, "CoreManager", CoreManager::getInstance); registerSharedSingletonType(SettingsModel, "SettingsModel", CoreManager::getInstance()->getSettingsModel); @@ -331,6 +337,7 @@ void App::registerTypes () { registerSharedSingletonType(ContactsListModel, "ContactsListModel", CoreManager::getInstance()->getContactsListModel); } +#undef registerUncreatableType #undef registerSharedSingletonType // -----------------------------------------------------------------------------