[SCM] ktp-contact-applet packaging branch, master, updated. debian/15.12.1-1-966-gde83ac5
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:11:28 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-desktop-applets.git;a=commitdiff;h=a79340f
The following commit has been merged in the master branch:
commit a79340f1c458007041dc87e082e6920aa8ba9e70
Author: Francesco Nwokeka <francesco.nwokeka at gmail.com>
Date: Fri Aug 19 18:54:49 2011 +0200
Connected contact signals to QML
the plasmoid reflects contact avatar and presence settings now
---
src/contactWrapper.cpp | 17 +++++++++++++++++
src/contactWrapper.h | 5 +++++
src/declarative/contents/ui/Contact.qml | 6 ++++--
src/declarative/contents/ui/main.qml | 2 +-
src/telepathyContact.cpp | 4 +++-
5 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/src/contactWrapper.cpp b/src/contactWrapper.cpp
index f629d3a..1c725ef 100644
--- a/src/contactWrapper.cpp
+++ b/src/contactWrapper.cpp
@@ -69,12 +69,29 @@ QString ContactWrapper::presenceStatus() const
}
}
+void ContactWrapper::setupConnects()
+{
+ connect(m_contact.data(), SIGNAL(avatarDataChanged(Tp::AvatarData)), this, SIGNAL(avatarChanged()));
+ connect(m_contact.data(), SIGNAL(presenceChanged(Tp::Presence)), this, SIGNAL(presenceChanged()));
+}
+
void ContactWrapper::setContact(const Tp::ContactPtr& newContact)
{
qDebug() << "setting new contact to: " << newContact->id();
+
+ // disconnect signals
+ undoConnects();
m_contact = newContact;
+ // establish new signals
+ setupConnects();
+
// tell QML we have a new contact
emit(newContactSet());
}
+void ContactWrapper::undoConnects()
+{
+ disconnect(m_contact.data(), 0, 0, 0);
+}
+
diff --git a/src/contactWrapper.h b/src/contactWrapper.h
index aeafa25..1847891 100644
--- a/src/contactWrapper.h
+++ b/src/contactWrapper.h
@@ -53,9 +53,14 @@ public:
void setContact(const Tp::ContactPtr &newContact);
signals:
+ void avatarChanged();
void newContactSet();
+ void presenceChanged();
private:
+ void setupConnects();
+ void undoConnects();
+
Tp::ContactPtr m_contact;
};
diff --git a/src/declarative/contents/ui/Contact.qml b/src/declarative/contents/ui/Contact.qml
index f291c8c..a2badb5 100644
--- a/src/declarative/contents/ui/Contact.qml
+++ b/src/declarative/contents/ui/Contact.qml
@@ -40,10 +40,12 @@ Item {
function update()
{
- wrapper.status = TelepathyContact.presenceStatus;
+ if ( wrapper.status != TelepathyContact.presenceStatus) {
+ wrapper.status = TelepathyContact.presenceStatus;
+ avatar.setAvatarPresenceStatus(wrapper.status);
+ }
// update avatar
avatar.update();
- avatar.setAvatarPresenceStatus(wrapper.status);
}
}
diff --git a/src/declarative/contents/ui/main.qml b/src/declarative/contents/ui/main.qml
index da2b63e..943e550 100644
--- a/src/declarative/contents/ui/main.qml
+++ b/src/declarative/contents/ui/main.qml
@@ -31,7 +31,7 @@ Item {
anchors.centerIn: parent;
}
- function onNewContactSet()
+ function updateContact()
{
contact.update();
}
diff --git a/src/telepathyContact.cpp b/src/telepathyContact.cpp
index b60c3e9..d605ca2 100644
--- a/src/telepathyContact.cpp
+++ b/src/telepathyContact.cpp
@@ -69,7 +69,9 @@ void TelepathyContact::init()
m_qmlObject = dynamic_cast<QObject*>(m_declarative->rootObject());
// connect the qml object to recieve signals from C++ end
- connect(m_contact, SIGNAL(newContactSet()), m_qmlObject, SLOT(onNewContactSet()));
+ connect(m_contact, SIGNAL(newContactSet()), m_qmlObject, SLOT(updateContact()));
+ connect(m_contact, SIGNAL(avatarChanged()), m_qmlObject, SLOT(updateContact()));
+ connect(m_contact, SIGNAL(presenceChanged()), m_qmlObject, SLOT(updateContact()));
}
}
--
ktp-contact-applet packaging
More information about the pkg-kde-commits
mailing list