[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:07:17 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=f87e571
The following commit has been merged in the master branch:
commit f87e5716c9e4c1020657481f30254260561f6acd
Author: George Goldberg <george.goldberg at collabora.co.uk>
Date: Fri Jan 28 18:38:01 2011 +0000
Reinstate support for contact groups.
---
kpeople/nepomuk-feeder/abstract-storage.h | 3 +-
kpeople/nepomuk-feeder/account.cpp | 16 ++----
kpeople/nepomuk-feeder/account.h | 6 +--
kpeople/nepomuk-feeder/contact.cpp | 4 +-
kpeople/nepomuk-feeder/contact.h | 3 +-
kpeople/nepomuk-feeder/controller.cpp | 6 +--
kpeople/nepomuk-feeder/nepomuk-storage.cpp | 67 +++++++++++++++++++++++---
kpeople/nepomuk-feeder/nepomuk-storage.h | 3 +-
kpeople/nepomuk-feeder/tests/controller-test.h | 6 +--
9 files changed, 76 insertions(+), 38 deletions(-)
diff --git a/kpeople/nepomuk-feeder/abstract-storage.h b/kpeople/nepomuk-feeder/abstract-storage.h
index 6ce2a7e..7d1be9b 100644
--- a/kpeople/nepomuk-feeder/abstract-storage.h
+++ b/kpeople/nepomuk-feeder/abstract-storage.h
@@ -51,8 +51,7 @@ public Q_SLOTS:
virtual void destroyContact(const QString &path, const QString &id) = 0;
virtual void setContactAlias(const QString &path, const QString &id, const QString &alias) = 0;
virtual void setContactPresence(const QString &path, const QString &id, const Tp::SimplePresence &presence) = 0;
- virtual void addContactToGroup(const QString &path, const QString &id, const QString &group) = 0;
- virtual void removeContactFromGroup(const QString &path, const QString &id, const QString &group) = 0;
+ virtual void setContactGroups(const QString &path, const QString &id, const QStringList &groups) = 0;
virtual void setContactBlockStatus(const QString &path, const QString &id, bool blocked) = 0;
virtual void setContactPublishState(const QString &path, const QString &id, const Tp::Contact::PresenceState &state) = 0;
virtual void setContactSubscriptionState(const QString &path, const QString &id, const Tp::Contact::PresenceState &state) = 0;
diff --git a/kpeople/nepomuk-feeder/account.cpp b/kpeople/nepomuk-feeder/account.cpp
index 1a0a277..e0cfdf0 100644
--- a/kpeople/nepomuk-feeder/account.cpp
+++ b/kpeople/nepomuk-feeder/account.cpp
@@ -171,11 +171,8 @@ void Account::onNewContact(const Tp::ContactPtr &contact)
SIGNAL(presenceChanged(QString,Tp::SimplePresence)),
SLOT(onContactPresenceChanged(QString,Tp::SimplePresence)));
connect(c,
- SIGNAL(addedToGroup(QString,QString)),
- SLOT(onContactAddedToGroup(QString,QString)));
- connect(c,
- SIGNAL(removedFromGroup(QString,QString)),
- SLOT(onContactRemovedFromGroup(QString,QString)));
+ SIGNAL(groupsChanged(QString,QStringList)),
+ SLOT(onContactGroupsChanged(QString,QStringList)));
connect(c,
SIGNAL(blockStatusChanged(QString,bool)),
SLOT(onContactBlockStatusChanged(QString,bool)));
@@ -213,14 +210,9 @@ void Account::onContactPresenceChanged(const QString &id, const Tp::SimplePresen
emit contactPresenceChanged(m_account->objectPath(), id, presence);
}
-void Account::onContactAddedToGroup(const QString &id, const QString &group)
-{
- emit contactAddedToGroup(m_account->objectPath(), id, group);
-}
-
-void Account::onContactRemovedFromGroup(const QString &id, const QString &group)
+void Account::onContactGroupsChanged(const QString &id, const QStringList &groups)
{
- emit contactRemovedFromGroup(m_account->objectPath(), id, group);
+ emit contactGroupsChanged(m_account->objectPath(), id, groups);
}
void Account::onContactBlockStatusChanged(const QString &id, bool blocked)
diff --git a/kpeople/nepomuk-feeder/account.h b/kpeople/nepomuk-feeder/account.h
index 72a3618..b57ebf8 100644
--- a/kpeople/nepomuk-feeder/account.h
+++ b/kpeople/nepomuk-feeder/account.h
@@ -59,8 +59,7 @@ Q_SIGNALS:
void contactDestroyed(const QString &path, const QString &id);
void contactAliasChanged(const QString &path, const QString &id, const QString &alias);
void contactPresenceChanged(const QString &path, const QString &id, const Tp::SimplePresence &presence);
- void contactAddedToGroup(const QString &path, const QString &id, const QString &group);
- void contactRemovedFromGroup(const QString &path, const QString &id, const QString &group);
+ void contactGroupsChanged(const QString &path, const QString &id, const QStringList &groups);
void contactBlockStatusChanged(const QString &path, const QString &id, bool blocked);
void contactPublishStateChanged(const QString &path, const QString &id, const Tp::Contact::PresenceState &state);
void contactSubscriptionStateChanged(const QString &path, const QString &id, const Tp::Contact::PresenceState &state);
@@ -76,8 +75,7 @@ private Q_SLOTS:
void onContactCreated(const QString &id);
void onContactAliasChanged(const QString &id, const QString &alias);
void onContactPresenceChanged(const QString &id, const Tp::SimplePresence &presence);
- void onContactAddedToGroup(const QString &id, const QString &group);
- void onContactRemovedFromGroup(const QString &id, const QString &group);
+ void onContactGroupsChanged(const QString &id, const QStringList &groups);
void onContactBlockStatusChanged(const QString &id, bool blocked);
void onContactPublishStateChanged(const QString &id, const Tp::Contact::PresenceState &state);
void onContactSubscriptionStateChanged(const QString &id, const Tp::Contact::PresenceState &state);
diff --git a/kpeople/nepomuk-feeder/contact.cpp b/kpeople/nepomuk-feeder/contact.cpp
index 24324e1..4a1c5c6 100644
--- a/kpeople/nepomuk-feeder/contact.cpp
+++ b/kpeople/nepomuk-feeder/contact.cpp
@@ -111,14 +111,14 @@ void Contact::onAddedToGroup(const QString &group)
{
kDebug() << "On added to group " << group;
- emit addedToGroup(m_contact->id(), group);
+ emit groupsChanged(m_contact->id(), m_contact->groups());
}
void Contact::onRemovedFromGroup(const QString &group)
{
kDebug() << "On removed from group " << group;
- emit removedFromGroup(m_contact->id(), group);
+ emit groupsChanged(m_contact->id(), m_contact->groups());
}
void Contact::onBlockStatusChanged(bool blocked)
diff --git a/kpeople/nepomuk-feeder/contact.h b/kpeople/nepomuk-feeder/contact.h
index 03da0f8..ccc482a 100644
--- a/kpeople/nepomuk-feeder/contact.h
+++ b/kpeople/nepomuk-feeder/contact.h
@@ -47,8 +47,7 @@ Q_SIGNALS:
void contactDestroyed(const QString &id, const Tp::ContactPtr &contact);
void aliasChanged(const QString &id, const QString &alias);
void presenceChanged(const QString &id, const Tp::SimplePresence &presence);
- void addedToGroup(const QString &id, const QString &group);
- void removedFromGroup(const QString &id, const QString &group);
+ void groupsChanged(const QString &id, const QStringList &groups);
void blockStatusChanged(const QString &id, bool blocked);
void publishStateChanged(const QString &id, const Tp::Contact::PresenceState &state);
void subscriptionStateChanged(const QString &id, const Tp::Contact::PresenceState &state);
diff --git a/kpeople/nepomuk-feeder/controller.cpp b/kpeople/nepomuk-feeder/controller.cpp
index 501ebc3..f320326 100644
--- a/kpeople/nepomuk-feeder/controller.cpp
+++ b/kpeople/nepomuk-feeder/controller.cpp
@@ -132,10 +132,8 @@ void Controller::onNewAccount(const Tp::AccountPtr &account)
m_storage, SLOT(setContactAlias(QString,QString,QString)));
connect(acc, SIGNAL(contactPresenceChanged(QString,QString,Tp::SimplePresence)),
m_storage, SLOT(setContactPresence(QString,QString,Tp::SimplePresence)));
- connect(acc, SIGNAL(contactAddedToGroup(QString,QString,QString)),
- m_storage, SLOT(addContactToGroup(QString,QString,QString)));
- connect(acc, SIGNAL(contactRemovedFromGroup(QString,QString,QString)),
- m_storage, SLOT(removeContactFromGroup(QString,QString,QString)));
+ connect(acc, SIGNAL(contactGroupsChanged(QString,QString,QStringList)),
+ m_storage, SLOT(setContactGroups(QString,QString,QStringList)));
connect(acc, SIGNAL(contactBlockStatusChanged(QString,QString,bool)),
m_storage, SLOT(setContactBlockStatus(QString,QString,bool)));
connect(acc, SIGNAL(contactPublishStateChanged(QString,QString,Tp::Contact::PresenceState)),
diff --git a/kpeople/nepomuk-feeder/nepomuk-storage.cpp b/kpeople/nepomuk-feeder/nepomuk-storage.cpp
index 68fd37f..63d029f 100644
--- a/kpeople/nepomuk-feeder/nepomuk-storage.cpp
+++ b/kpeople/nepomuk-feeder/nepomuk-storage.cpp
@@ -21,6 +21,7 @@
#include "nepomuk-storage.h"
+#include "ontologies/contactgroup.h"
#include "ontologies/nco.h"
#include "ontologies/pimo.h"
#include "ontologies/telepathy.h"
@@ -504,14 +505,68 @@ void NepomukStorage::setContactPresence(const QString &path,
imAccount.setImStatusMessages(statusMessage);
}
-void NepomukStorage::addContactToGroup(const QString &path, const QString &id, const QString &group)
+void NepomukStorage::setContactGroups(const QString &path,
+ const QString &id,
+ const QStringList &groups)
{
- // TODO: Implement me!
-}
+ ContactIdentifier identifier(path, id);
-void NepomukStorage::removeContactFromGroup(const QString &path, const QString &id, const QString &group)
-{
- // TODO: Implement me!
+ // Check the Contact exists.
+ Q_ASSERT(m_contacts.contains(identifier));
+ if (!m_contacts.contains(identifier)) {
+ kWarning() << "Contact not found.";
+ return;
+ }
+
+ ContactResources resources = m_contacts.value(identifier);
+ Nepomuk::PersonContact personContact = resources.personContact();
+
+ // Set the contact groups.
+ // First remove any groups we are no longer a member of.
+ QList<Nepomuk::ContactGroup> newGroups = personContact.belongsToGroups();
+
+ foreach (const Nepomuk::ContactGroup &group, personContact.belongsToGroups()) {
+ if (!groups.contains(group.contactGroupName())) {
+ newGroups.removeAll(group);
+ }
+ }
+
+ // Now add any groups we are newly a member of.
+ bool found;
+ foreach (const QString &groupName, groups) {
+ found = false;
+ foreach (const Nepomuk::ContactGroup &cGroup, newGroups) {
+ if (cGroup.contactGroupName() == groupName) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ // Not already in that group. Check the group exists.
+ // FIXME: Once we have a "ContactList" resource for Telepathy Contacts, we should only
+ // get the groups associated with that.
+ Nepomuk::ContactGroup groupResource;
+ foreach (const Nepomuk::ContactGroup &g, Nepomuk::ContactGroup::allContactGroups()) {
+ if (g.contactGroupName() == groupName) {
+ groupResource = g;
+ break;
+ }
+ }
+
+ // If the group doesn't already exist, create it.
+ if (groupResource.resourceUri().isEmpty()) {
+ // FIXME: Once we have a "ContactList" resource for Telepathy Contacts, we should
+ // create this group as a child of that resource.
+ groupResource.setContactGroupName(groupName);
+ }
+
+ newGroups.append(groupResource);
+ }
+ }
+
+ // Update the groups property with the new list
+ personContact.setBelongsToGroups(newGroups);
}
void NepomukStorage::setContactBlockStatus(const QString &path, const QString &id, bool blocked)
diff --git a/kpeople/nepomuk-feeder/nepomuk-storage.h b/kpeople/nepomuk-feeder/nepomuk-storage.h
index f0ea5ab..2162393 100644
--- a/kpeople/nepomuk-feeder/nepomuk-storage.h
+++ b/kpeople/nepomuk-feeder/nepomuk-storage.h
@@ -94,8 +94,7 @@ public Q_SLOTS:
virtual void destroyContact(const QString &path, const QString &id);
virtual void setContactAlias(const QString &path, const QString &id, const QString &alias);
virtual void setContactPresence(const QString &path, const QString &id, const Tp::SimplePresence &presence);
- virtual void addContactToGroup(const QString &path, const QString &id, const QString &group);
- virtual void removeContactFromGroup(const QString &path, const QString &id, const QString &group);
+ virtual void setContactGroups(const QString &path, const QString &id, const QStringList &groups);
virtual void setContactBlockStatus(const QString &path, const QString &id, bool blocked);
virtual void setContactPublishState(const QString &path, const QString &id, const Tp::Contact::PresenceState &state);
virtual void setContactSubscriptionState(const QString &path, const QString &id, const Tp::Contact::PresenceState &state);
diff --git a/kpeople/nepomuk-feeder/tests/controller-test.h b/kpeople/nepomuk-feeder/tests/controller-test.h
index cab6f07..cd85a67 100644
--- a/kpeople/nepomuk-feeder/tests/controller-test.h
+++ b/kpeople/nepomuk-feeder/tests/controller-test.h
@@ -95,8 +95,7 @@ public Q_SLOTS:
virtual void destroyContact(const QString &, const QString &) { }
virtual void setContactAlias(const QString &, const QString &, const QString &) { }
virtual void setContactPresence(const QString &, const QString &, const Tp::SimplePresence &) { }
- virtual void addContactToGroup(const QString &, const QString &, const QString &) { }
- virtual void removeContactFromGroup(const QString &, const QString &, const QString &) { }
+ virtual void setContactGroups(const QString &, const QString &, const QStringList &) { }
virtual void setContactBlockStatus(const QString &, const QString &, bool) { }
virtual void setContactPublishState(const QString &, const QString &, const Tp::Contact::PresenceState &) { }
virtual void setContactSubscriptionState(const QString &, const QString &, const Tp::Contact::PresenceState &) { }
@@ -124,8 +123,7 @@ public Q_SLOTS:
virtual void destroyContact(const QString &, const QString &) { }
virtual void setContactAlias(const QString &, const QString &, const QString &) { }
virtual void setContactPresence(const QString &, const QString &, const Tp::SimplePresence &) { }
- virtual void addContactToGroup(const QString &, const QString &, const QString &) { }
- virtual void removeContactFromGroup(const QString &, const QString &, const QString &) { }
+ virtual void setContactGroups(const QString &, const QString &, const QStringList &) { }
virtual void setContactBlockStatus(const QString &, const QString &, bool) { }
virtual void setContactPublishState(const QString &, const QString &, const Tp::Contact::PresenceState &) { }
virtual void setContactSubscriptionState(const QString &, const QString &, const Tp::Contact::PresenceState &) { }
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list