Commit 277e5d40 authored by Ronan Abhamon's avatar Ronan Abhamon

feat(src/app/App): better way to register components

parent 78bf713f
...@@ -278,6 +278,15 @@ bool App::hasFocus () const { ...@@ -278,6 +278,15 @@ bool App::hasFocus () const {
} \ } \
) )
#define registerUncreatableType(TYPE, NAME) qmlRegisterUncreatableType<TYPE>( \
"Linphone", 1, 0, NAME, NAME " is uncreatable." \
)
template<class T>
void registerMetaType (const char *name) {
qRegisterMetaType<T>(name);
}
template<class T> template<class T>
void registerSingletonType (const char *name) { void registerSingletonType (const char *name) {
qmlRegisterSingletonType<T>( qmlRegisterSingletonType<T>(
...@@ -288,33 +297,23 @@ void registerSingletonType (const char *name) { ...@@ -288,33 +297,23 @@ void registerSingletonType (const char *name) {
); );
} }
template<class T>
void registerType (const char *name) {
qmlRegisterType<T>("Linphone", 1, 0, name);
}
void App::registerTypes () { void App::registerTypes () {
qInfo() << "Registering types..."; qInfo() << "Registering types...";
qmlRegisterType<AssistantModel>("Linphone", 1, 0, "AssistantModel"); registerType<AssistantModel>("AssistantModel");
qmlRegisterType<AuthenticationNotifier>("Linphone", 1, 0, "AuthenticationNotifier"); registerType<AuthenticationNotifier>("AuthenticationNotifier");
qmlRegisterType<Camera>("Linphone", 1, 0, "Camera"); registerType<Camera>("Camera");
qmlRegisterType<CameraPreview>("Linphone", 1, 0, "CameraPreview"); registerType<CameraPreview>("CameraPreview");
qmlRegisterType<ChatModel>("Linphone", 1, 0, "ChatModel"); registerType<ChatModel>("ChatModel");
qmlRegisterType<ChatProxyModel>("Linphone", 1, 0, "ChatProxyModel"); registerType<ChatProxyModel>("ChatProxyModel");
qmlRegisterType<ContactsListProxyModel>("Linphone", 1, 0, "ContactsListProxyModel"); registerType<ContactsListProxyModel>("ContactsListProxyModel");
qmlRegisterType<SmartSearchBarModel>("Linphone", 1, 0, "SmartSearchBarModel"); registerType<SmartSearchBarModel>("SmartSearchBarModel");
qmlRegisterType<SoundPlayer>("Linphone", 1, 0, "SoundPlayer"); registerType<SoundPlayer>("SoundPlayer");
qRegisterMetaType<ChatModel::EntryType>("ChatModel::EntryType");
qmlRegisterUncreatableType<CallModel>(
"Linphone", 1, 0, "CallModel", "CallModel is uncreatable."
);
qmlRegisterUncreatableType<ContactModel>(
"Linphone", 1, 0, "ContactModel", "ContactModel is uncreatable."
);
qmlRegisterUncreatableType<SipAddressObserver>(
"Linphone", 1, 0, "SipAddressObserver", "SipAddressObserver is uncreatable."
);
qmlRegisterUncreatableType<VcardModel>(
"Linphone", 1, 0, "VcardModel", "VcardModel is uncreatable."
);
registerSingletonType<AudioCodecsModel>("AudioCodecsModel"); registerSingletonType<AudioCodecsModel>("AudioCodecsModel");
registerSingletonType<OwnPresenceModel>("OwnPresenceModel"); registerSingletonType<OwnPresenceModel>("OwnPresenceModel");
...@@ -322,6 +321,13 @@ void App::registerTypes () { ...@@ -322,6 +321,13 @@ void App::registerTypes () {
registerSingletonType<TimelineModel>("TimelineModel"); registerSingletonType<TimelineModel>("TimelineModel");
registerSingletonType<VideoCodecsModel>("VideoCodecsModel"); registerSingletonType<VideoCodecsModel>("VideoCodecsModel");
registerMetaType<ChatModel::EntryType>("ChatModel::EntryType");
registerUncreatableType(CallModel, "CallModel");
registerUncreatableType(ContactModel, "ContactModel");
registerUncreatableType(SipAddressObserver, "SipAddressObserver");
registerUncreatableType(VcardModel, "VcardModel");
registerSharedSingletonType(App, "App", App::getInstance); registerSharedSingletonType(App, "App", App::getInstance);
registerSharedSingletonType(CoreManager, "CoreManager", CoreManager::getInstance); registerSharedSingletonType(CoreManager, "CoreManager", CoreManager::getInstance);
registerSharedSingletonType(SettingsModel, "SettingsModel", CoreManager::getInstance()->getSettingsModel); registerSharedSingletonType(SettingsModel, "SettingsModel", CoreManager::getInstance()->getSettingsModel);
...@@ -331,6 +337,7 @@ void App::registerTypes () { ...@@ -331,6 +337,7 @@ void App::registerTypes () {
registerSharedSingletonType(ContactsListModel, "ContactsListModel", CoreManager::getInstance()->getContactsListModel); registerSharedSingletonType(ContactsListModel, "ContactsListModel", CoreManager::getInstance()->getContactsListModel);
} }
#undef registerUncreatableType
#undef registerSharedSingletonType #undef registerSharedSingletonType
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment