[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