summaryrefslogtreecommitdiff
path: root/liblightdm-qt
diff options
context:
space:
mode:
Diffstat (limited to 'liblightdm-qt')
-rw-r--r--liblightdm-qt/usersmodel.cpp9
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)