[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