From ca5dd373edff37d19942e5027d912ba8221df1ae Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Wed, 18 Apr 2012 17:07:40 +0200 Subject: [PATCH] Only disconnect m_db when it exists. Previously we disconnected everyone when m_db == 0. --- src/core/Group.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/core/Group.cpp b/src/core/Group.cpp index 1f308752a..ffca3f4e1 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -323,7 +323,9 @@ void Group::removeEntry(Entry* entry) Q_EMIT entryAboutToRemove(entry); entry->disconnect(this); - entry->disconnect(m_db); + if (m_db) { + entry->disconnect(m_db); + } m_entries.removeAll(entry); Q_EMIT modified(); Q_EMIT entryRemoved(); @@ -331,15 +333,19 @@ void Group::removeEntry(Entry* entry) void Group::recSetDatabase(Database* db) { - disconnect(SIGNAL(dataChanged(Group*)), m_db); - disconnect(SIGNAL(aboutToRemove(Group*)), m_db); - disconnect(SIGNAL(removed()), m_db); - disconnect(SIGNAL(aboutToAdd(Group*,int)), m_db); - disconnect(SIGNAL(added()), m_db); - disconnect(SIGNAL(modified()), m_db); + if (m_db) { + disconnect(SIGNAL(dataChanged(Group*)), m_db); + disconnect(SIGNAL(aboutToRemove(Group*)), m_db); + disconnect(SIGNAL(removed()), m_db); + disconnect(SIGNAL(aboutToAdd(Group*,int)), m_db); + disconnect(SIGNAL(added()), m_db); + disconnect(SIGNAL(modified()), m_db); + } Q_FOREACH (Entry* entry, m_entries) { - entry->disconnect(m_db); + if (m_db) { + entry->disconnect(m_db); + } connect(entry, SIGNAL(modified()), db, SIGNAL(modified())); }