[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:35 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-desktop-applets.git;a=commitdiff;h=ba83776
The following commit has been merged in the master branch:
commit ba83776cfe644232a2867400bc864974941e1095
Author: Francesco Nwokeka <francesco.nwokeka at gmail.com>
Date: Tue Aug 30 14:05:06 2011 +0200
FIX plasmoid now is disabled/enabled when user account goes online/offline
---
src/contactWrapper.cpp | 15 ++++++++++++++-
src/contactWrapper.h | 5 +++++
src/declarative/contents/ui/Avatar.qml | 14 ++++++++++++++
src/declarative/contents/ui/Contact.qml | 5 +++++
src/declarative/contents/ui/main.qml | 5 +++++
src/telepathyContact.cpp | 1 +
6 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/src/contactWrapper.cpp b/src/contactWrapper.cpp
index cff77d5..82d9835 100644
--- a/src/contactWrapper.cpp
+++ b/src/contactWrapper.cpp
@@ -124,6 +124,19 @@ void ContactWrapper::genericOperationFinished(Tp::PendingOperation* op)
}
}
+bool ContactWrapper::isAccountOnline() const
+{
+ if (m_account) {
+ if (m_account->currentPresence().type() == Tp::Presence::offline().type()) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+}
+
QString ContactWrapper::presenceStatus() const
{
if (m_contact) {
@@ -136,7 +149,7 @@ QString ContactWrapper::presenceStatus() const
void ContactWrapper::setupAccountConnects()
{
// keep track of presence (online/offline is all we need)
-// connect(m_account.data(), SIGNAL(currentPresenceChanged(Tp::Presence)), this, SIGNAL(/* something to send to QML*/));
+ connect(m_account.data(), SIGNAL(currentPresenceChanged(Tp::Presence)), this, SIGNAL(accountPresenceChanged()));
}
void ContactWrapper::setupContactConnects()
diff --git a/src/contactWrapper.h b/src/contactWrapper.h
index a0759da..52db4f4 100644
--- a/src/contactWrapper.h
+++ b/src/contactWrapper.h
@@ -32,6 +32,7 @@ public:
ContactWrapper(QObject *parent = 0);
virtual ~ContactWrapper();
+ Q_PROPERTY(bool accountOnline READ isAccountOnline);
Q_PROPERTY(QString avatar READ avatar);
Q_PROPERTY(bool canSendFile READ canSendFile);
Q_PROPERTY(bool canStartAudioCall READ canStartAudioCall);
@@ -60,6 +61,9 @@ public:
/** returns the display name of the contact */
QString displayName() const;
+ /** returns wether the account is online/offline */
+ bool isAccountOnline() const;
+
/** returns the contact presence status (online, offlince ... ) */
QString presenceStatus() const;
@@ -87,6 +91,7 @@ public slots:
void startVideoCall();
signals:
+ void accountPresenceChanged();
void avatarChanged();
void newContactSet();
void presenceChanged();
diff --git a/src/declarative/contents/ui/Avatar.qml b/src/declarative/contents/ui/Avatar.qml
index 235af67..308fd0b 100644
--- a/src/declarative/contents/ui/Avatar.qml
+++ b/src/declarative/contents/ui/Avatar.qml
@@ -108,4 +108,18 @@ Item {
{
avatar.icon = QIcon(TelepathyContact.avatar);
}
+
+ function accountPresenceChanged()
+ {
+ // check if user account is online
+ if (!TelepathyContact.accountOnline && avatar.enabled) {
+ avatar.enabled = false;
+ setAvatarPresenceStatus("offline");
+ } else if (TelepathyContact.accountOnline && !avatar.enabled) {
+ avatar.enabled = true;
+ // set back to normal
+ avatarPresenceStatus = TelepathyContact.presenceStatus;
+ setAvatarPresenceStatus(avatarPresenceStatus);
+ }
+ }
}
diff --git a/src/declarative/contents/ui/Contact.qml b/src/declarative/contents/ui/Contact.qml
index 937cc84..a2c0218 100644
--- a/src/declarative/contents/ui/Contact.qml
+++ b/src/declarative/contents/ui/Contact.qml
@@ -64,4 +64,9 @@ Item {
avatar.update();
dropDownMenu.update();
}
+
+ function accountPresenceChanged()
+ {
+ avatar.accountPresenceChanged();
+ }
}
diff --git a/src/declarative/contents/ui/main.qml b/src/declarative/contents/ui/main.qml
index 42fa0fd..3a56740 100644
--- a/src/declarative/contents/ui/main.qml
+++ b/src/declarative/contents/ui/main.qml
@@ -40,4 +40,9 @@ Item {
{
contact.toggleMenu();
}
+
+ function accountPresenceChanged()
+ {
+ contact.accountPresenceChanged();
+ }
}
diff --git a/src/telepathyContact.cpp b/src/telepathyContact.cpp
index b6abda2..9a32b93 100644
--- a/src/telepathyContact.cpp
+++ b/src/telepathyContact.cpp
@@ -78,6 +78,7 @@ void TelepathyContact::init()
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()));
+ connect(m_contact, SIGNAL(accountPresenceChanged()), m_qmlObject, SLOT(accountPresenceChanged()));
}
}
--
ktp-contact-applet packaging
More information about the pkg-kde-commits
mailing list