[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9

Maximiliano Curia maxy at moszumanska.debian.org
Mon May 9 09:07:50 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=a702590

The following commit has been merged in the master branch:
commit a702590a666d3072bc0599f43931a11b11836024
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Fri Nov 15 00:52:47 2013 +0100

    Restore widget that lists KTp accounts with icons
---
 kpeople/CMakeLists.txt                |  2 +-
 kpeople/uiplugins/CMakeLists.txt      |  1 +
 kpeople/uiplugins/imdetailswidget.cpp | 79 +++++++++++++++++------------------
 kpeople/uiplugins/imdetailswidget.h   | 12 +++---
 4 files changed, 45 insertions(+), 49 deletions(-)

diff --git a/kpeople/CMakeLists.txt b/kpeople/CMakeLists.txt
index 42741d8..1ffc132 100644
--- a/kpeople/CMakeLists.txt
+++ b/kpeople/CMakeLists.txt
@@ -1,4 +1,4 @@
 # add_subdirectory(actionsplugin)
 add_subdirectory(datasourceplugin)
-# add_subdirectory(uiplugins)
+add_subdirectory(uiplugins)
 # add_subdirectory(nepomuk-feeder)
diff --git a/kpeople/uiplugins/CMakeLists.txt b/kpeople/uiplugins/CMakeLists.txt
index f8d9cf6..2fa6b8b 100644
--- a/kpeople/uiplugins/CMakeLists.txt
+++ b/kpeople/uiplugins/CMakeLists.txt
@@ -7,6 +7,7 @@ target_link_libraries(imdetailswidgetplugin ${QT_QTCORE_LIBRARY}
     ${KDE4_KDECORE_LIBRARY}
     ${KDE4_KDEUI_LIBRARY}
     ${KPEOPLE_LIBS}
+    ${KDEPIMLIBS_KABC_LIBS}
     kpeoplewidgets
     ktpcommoninternalsprivate
 )
diff --git a/kpeople/uiplugins/imdetailswidget.cpp b/kpeople/uiplugins/imdetailswidget.cpp
index 79cbd61..9f251a1 100644
--- a/kpeople/uiplugins/imdetailswidget.cpp
+++ b/kpeople/uiplugins/imdetailswidget.cpp
@@ -22,12 +22,16 @@
 #include <QLabel>
 #include <QApplication>
 #include <QStyle>
+#include <QVBoxLayout>
 
 #include <KLocalizedString>
 #include <KPluginFactory>
+#include <KABC/Addressee>
 
 #include <KPeople/PersonData>
-#include <kpeople/personpluginmanager.h> //no pretty include exists at time of writing.
+#include <TelepathyQt/AccountManager>
+#include <KTp/core.h>
+
 
 #include "KTp/im-persons-data-source.h"
 
@@ -36,55 +40,48 @@ K_EXPORT_PLUGIN( ImDetailsWidgetFactory("imdetailswidgetplugin", "ktp-common-int
 
 using namespace KPeople;
 
-ImDetailsWidget::ImDetailsWidget(QWidget *parent, const QVariantList &args):
-    AbstractPersonDetailsWidget(parent),
-    m_layout(new QGridLayout(this))
+ImDetailsWidget::ImDetailsWidget(QObject* parent, const QVariantList& args)
 {
-    Q_UNUSED(args);
-    setTitle(i18n("Instant Messaging Accounts"));
-    setIcon(QIcon::fromTheme(QLatin1String("telepathy-kde")));
 
-    setLayout(m_layout);
 }
 
-void ImDetailsWidget::setPerson(PersonData *person)
+QString ImDetailsWidget::label() const
 {
-    const QStringList &imAccounts = person->imAccounts();
-
-    //remove all existing widgets
-    QLayoutItem *child;
-    while ((child = m_layout->takeAt(0)) != 0) {
-        delete child->widget();
-        delete child;
-    }
-
-    if (imAccounts.isEmpty()) {
-        setActive(false);
-        return;
-    } else {
-        setActive(true);
-    }
+    return i18n("IM");
+}
 
-    //fetch KTp::ContactPtr for the contact ID from KTp
-    //display presence and address in grid
-    IMPersonsDataSource *dataSource = dynamic_cast<IMPersonsDataSource*>(KPeople::PersonPluginManager::presencePlugin());
-    for (int i=0; i<imAccounts.size(); i++) {
-        const QString &contactId = imAccounts[i];
-        KTp::ContactPtr contact = dataSource->contactForContactId(contactId);
-        KTp::Presence presence;
-        if (contact) {
-            presence = contact->presence();
-        } else {
-            presence = KTp::Presence(Tp::Presence::offline());
+QWidget* ImDetailsWidget::createDetailsWidget(const KABC::Addressee& person, const KABC::AddresseeList &contacts, QWidget* parent) const
+{
+    QWidget *root = new QWidget(parent);
+    QGridLayout *layout = new QGridLayout(root);
+    root->setLayout(layout);
+
+    int row = 0;
+    Q_FOREACH(const KABC::Addressee &contact, contacts) {
+        const QString contactId = contact.custom(QLatin1String("telepathy"), QLatin1String("contactId"));
+        const QString accountPath = contact.custom(QLatin1String("telepathy"), QLatin1String("accountPath")); //probably unused till we fix everything properly
+
+        Tp::AccountPtr account = KTp::accountManager()->accountForPath(accountPath);
+        if (!account) {
+            continue;
         }
 
-        QLabel *iconLabel = new QLabel(this);
-        const int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize);
-        iconLabel->setPixmap(presence.icon().pixmap(iconSize, iconSize));
-        m_layout->addWidget(iconLabel, i, 0);
+        QLabel *iconLabel = new QLabel(root);
+        const int iconSize = root->style()->pixelMetric(QStyle::PM_SmallIconSize);
+        iconLabel->setPixmap(QIcon::fromTheme(account->iconName()).pixmap(iconSize, iconSize));
+        layout->addWidget(iconLabel, row, 0);
 
-        QLabel *label = new QLabel(contactId, this);
+        QLabel *label = new QLabel(contactId, root);
         label->setTextInteractionFlags(Qt::TextSelectableByMouse);
-        m_layout->addWidget(label, i, 1);
+        layout->addWidget(label, row, 1);
+        qDebug() << contactId;
+        row++;
+        //FUTURE - presence here + blocked + presence subscription
+    }
+    if (layout->count()) {
+        return root;
+    } else {
+        return 0;
     }
 }
+
diff --git a/kpeople/uiplugins/imdetailswidget.h b/kpeople/uiplugins/imdetailswidget.h
index b99ff32..f361e03 100644
--- a/kpeople/uiplugins/imdetailswidget.h
+++ b/kpeople/uiplugins/imdetailswidget.h
@@ -21,19 +21,17 @@
 #ifndef IM_DETAILS_WIDGET_H
 #define IM_DETAILS_WIDGET_H
 
-#include <kpeople/widgets/abstractpersondetailswidget.h>
+#include <kpeople/widgets/abstractfieldwidgetfactory.h>
 
 #include <QVariant>
 #include <QGridLayout>
 
-class ImDetailsWidget : public KPeople::AbstractPersonDetailsWidget
+class ImDetailsWidget : public KPeople::AbstractFieldWidgetFactory
 {
-    Q_OBJECT
 public:
-    explicit ImDetailsWidget(QWidget *parent, const QVariantList &args);
-    void setPerson(KPeople::PersonData *person);
-private:
-    QGridLayout *m_layout;
+    explicit ImDetailsWidget(QObject *parent, const QVariantList &args);
+    QString label() const;
+    virtual QWidget* createDetailsWidget(const KABC::Addressee& person, const KABC::AddresseeList &contacts, QWidget* parent) const;
 };
 
 #endif // IM_DETAILS_WIDGET_H

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list