diff options
Diffstat (limited to 'liblightdm-qt')
-rw-r--r-- | liblightdm-qt/usersmodel.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/liblightdm-qt/usersmodel.cpp b/liblightdm-qt/usersmodel.cpp index a23c1cac..b76426fc 100644 --- a/liblightdm-qt/usersmodel.cpp +++ b/liblightdm-qt/usersmodel.cpp @@ -43,6 +43,7 @@ namespace QLightDM { class UsersModelPrivate { public: UsersModelPrivate(UsersModel *parent); + virtual ~UsersModelPrivate(); QList<UserItem> users; protected: @@ -64,6 +65,11 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent) : g_type_init(); } +UsersModelPrivate::~UsersModelPrivate() +{ + g_signal_handlers_disconnect_by_func(lightdm_user_list_get_instance(), NULL, this); +} + void UsersModelPrivate::loadUsers() { Q_Q(UsersModel); @@ -94,9 +100,10 @@ void UsersModelPrivate::loadUsers() g_signal_connect(lightdm_user_list_get_instance(), "user-added", G_CALLBACK (cb_userAdded), this); g_signal_connect(lightdm_user_list_get_instance(), "user-changed", G_CALLBACK (cb_userChanged), this); g_signal_connect(lightdm_user_list_get_instance(), "user-removed", G_CALLBACK (cb_userRemoved), this); - } + + void UsersModelPrivate::cb_userAdded(LightDMUserList *user_list, LightDMUser *ldmUser, gpointer data) { Q_UNUSED(user_list) |