[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