[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:34 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-desktop-applets.git;a=commitdiff;h=0390ab5

The following commit has been merged in the master branch:
commit 0390ab569329d98020cd616b615041811284b2a1
Author: Francesco Nwokeka <francesco.nwokeka at gmail.com>
Date:   Mon Aug 29 11:48:15 2011 +0200

    Plasmoid saves and loads plasmoid settings
    
    there can now be saved more than one instance of the contact plasmoid.
    A rework of the account and contact pointer has been done. These can now be set seperatly
---
 src/contactWrapper.cpp   | 45 ++++++++++++++++++++++++++++++++++++++-------
 src/contactWrapper.h     | 21 +++++++++++++++++----
 src/telepathyContact.cpp | 27 ++++++++++++++++++---------
 3 files changed, 73 insertions(+), 20 deletions(-)

diff --git a/src/contactWrapper.cpp b/src/contactWrapper.cpp
index 59ace0b..cff77d5 100644
--- a/src/contactWrapper.cpp
+++ b/src/contactWrapper.cpp
@@ -33,6 +33,7 @@ ContactWrapper::ContactWrapper(QObject* parent)
     : QObject(parent)
     , m_account(0)
     , m_contact(0)
+    , m_tempAvatar(QString("im-user"))
 {
 }
 
@@ -57,6 +58,9 @@ QString ContactWrapper::avatar() const
         } else {
             return QString("im-user");
         }
+    // check if temp avatar has been se
+    } else if (!m_tempAvatar.isEmpty()) {
+        return m_tempAvatar;
     } else {
         // return default icon
         return QString("im-user");
@@ -129,7 +133,13 @@ QString ContactWrapper::presenceStatus() const
     }
 }
 
-void ContactWrapper::setupConnects()
+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*/));
+}
+
+void ContactWrapper::setupContactConnects()
 {
     connect(m_contact.data(), SIGNAL(avatarDataChanged(Tp::AvatarData)), this, SIGNAL(avatarChanged()));
     connect(m_contact.data(), SIGNAL(presenceChanged(Tp::Presence)), this, SIGNAL(presenceChanged()));
@@ -171,24 +181,45 @@ void ContactWrapper::startVideoCall()
     qDebug("ContactWrapper::startVideoCall");
 }
 
-void ContactWrapper::setContact(const Tp::ContactPtr& newContact, const Tp::AccountPtr &relatedAccount)
+void ContactWrapper::setAccount(const Tp::AccountPtr& relatedAccount)
+{
+    qDebug() << "setting account to: " << relatedAccount->displayName();
+    undoAccountConnects();
+    m_account = relatedAccount;
+    setupAccountConnects();
+}
+
+void ContactWrapper::setContact(const Tp::ContactPtr& newContact)
 {
     qDebug() << "setting new contact to: " << newContact->id();
-    qDebug() << "with account " << relatedAccount->displayName();
 
     // disconnect signals
-    undoConnects();
+    undoContactConnects();
     m_contact = newContact;
-    m_account = relatedAccount;
 
     // establish new signals
-    setupConnects();
+    setupContactConnects();
 
     // tell QML we have a new contact
     emit(newContactSet());
 }
 
-void ContactWrapper::undoConnects()
+void ContactWrapper::setTempAvatar(const QString& path)
+{
+    m_tempAvatar = path;
+
+    // tell QML to change avatar shown
+    emit(avatarChanged());
+}
+
+void ContactWrapper::undoAccountConnects()
+{
+    if (m_account) {
+        disconnect(m_account.data(), 0, 0, 0);
+    }
+}
+
+void ContactWrapper::undoContactConnects()
 {
     if (m_contact) {
         disconnect(m_contact.data(), 0, 0, 0);
diff --git a/src/contactWrapper.h b/src/contactWrapper.h
index fb266e3..a0759da 100644
--- a/src/contactWrapper.h
+++ b/src/contactWrapper.h
@@ -63,11 +63,21 @@ public:
     /** returns the contact presence status (online, offlince ... ) */
     QString presenceStatus() const;
 
+    /** set account to which the contact is related
+     * @param relatedAccount account pointer
+     */
+    void setAccount(const Tp::AccountPtr &relatedAccount);
+
     /** set new contact to rappresent
      * @param newContact the contact to rappresent
-     * @param relatedAccoutn the account related to the contact to set
      */
-    void setContact(const Tp::ContactPtr &newContact, const Tp::AccountPtr &relatedAccount);
+    void setContact(const Tp::ContactPtr &newContact);
+
+    /** set temporary avatar image path. This is set for when KDE-Telepathy goes offline so the
+     * plasmoid can still show an image even without the pointer to the contact
+     * @param path path to avatar image
+     */
+    void setTempAvatar(const QString &path);
 
 public slots:
     void sendMail();
@@ -85,11 +95,14 @@ private slots:
     void genericOperationFinished(Tp::PendingOperation *op);
 
 private:
-    void setupConnects();
-    void undoConnects();
+    void setupAccountConnects();
+    void setupContactConnects();
+    void undoAccountConnects();
+    void undoContactConnects();
 
     Tp::AccountPtr m_account;
     Tp::ContactPtr m_contact;
+    QString m_tempAvatar;           /** this is the path to the cached avatar for when kde-telepathy is offline */
 };
 
 #endif  // CONTACT_WRAPER_H
diff --git a/src/telepathyContact.cpp b/src/telepathyContact.cpp
index 444ed9a..b6abda2 100644
--- a/src/telepathyContact.cpp
+++ b/src/telepathyContact.cpp
@@ -63,6 +63,8 @@ void TelepathyContact::init()
 {
     Plasma::Applet::init();
 
+    qDebug() << "APPLET ID: " << id();
+
     if (m_declarative) {
         QString qmlFile = KGlobal::dirs()->findResource("data", "plasma/plasmoids/org.kde.telepathy-contact/contents/ui/main.qml");
         qDebug() << "LOADING: " << qmlFile;
@@ -82,10 +84,11 @@ void TelepathyContact::init()
 void TelepathyContact::loadConfig()
 {
     KSharedConfigPtr config = KSharedConfig::openConfig("telepathycontactappletrc");
-    KConfigGroup group(config, "Contact");
+    KConfigGroup group(config, QString::number(id()));
 
     QString contactId = group.readEntry("id", QString());
     QString relatedAcc = group.readEntry("relatedAccount", QString());
+    QString tempAvatar = group.readEntry("tempAvatar", QString());
 
 
     if (!contactId.isEmpty() && !relatedAcc.isEmpty()) {
@@ -97,7 +100,7 @@ void TelepathyContact::loadConfig()
             return;
         }
 
-        if (account->connection()->isValid()) {
+        if (account->connection()) {
             QList<Tp::ContactPtr> contactList = account->connection()->contactManager()->allKnownContacts().toList();
             bool match = false;
 
@@ -108,10 +111,14 @@ void TelepathyContact::loadConfig()
                     setContact(contact, account);
                 }
             }
-        }/* else {
-            // just load avatar image
-            m_contact->
-        }*/
+        } else {
+            // just load cached avatar image
+            m_contact->setTempAvatar(tempAvatar);
+
+            // just set account. When this will go online it will automatically load the contact pointer
+            // shown in the plasmoid
+            m_contact->setAccount(account);
+        }
     }
 }
 
@@ -124,9 +131,9 @@ void TelepathyContact::saveConfig()
 {
     KConfig config("telepathycontactappletrc");
 
-    KConfigGroup group(&config, "Contact");
+    KConfigGroup group(&config, QString::number(id()));
     group.writeEntry("id", m_contact->contact()->id());
-    group.writeEntry("avatar", m_contact->contact()->avatarData().fileName);
+    group.writeEntry("tempAvatar", m_contact->contact()->avatarData().fileName);
     group.writeEntry("relatedAccount", m_contact->accountId());
 
     config.sync();
@@ -135,9 +142,11 @@ void TelepathyContact::saveConfig()
 void TelepathyContact::setContact(const Tp::ContactPtr& newContact, const Tp::AccountPtr &relatedAccount)
 {
     Q_ASSERT(newContact);
+    Q_ASSERT(relatedAccount);
 
     if (!m_contact->contact() || m_contact->contact()->id() != newContact->id()) {
-        m_contact->setContact(newContact, relatedAccount);
+        m_contact->setContact(newContact);
+        m_contact->setAccount(relatedAccount);
     }
 
     saveConfig();

-- 
ktp-contact-applet packaging



More information about the pkg-kde-commits mailing list