[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:04:51 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=27301b8
The following commit has been merged in the master branch:
commit 27301b8752eafe81d868a558174d863bf1523f07
Author: Daniele Elmo Domenichelli <daniele.domenichelli at gmail.com>
Date: Wed Aug 4 14:29:45 2010 +0000
Add 'Start Chat...' menu using KTelepathy/RequestTextChatJob
svn path=/trunk/playground/network/telepathy-contactlist/; revision=1159148
---
main-widget.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
main-widget.h | 1 +
2 files changed, 75 insertions(+)
diff --git a/main-widget.cpp b/main-widget.cpp
index 64ead81..860b561 100644
--- a/main-widget.cpp
+++ b/main-widget.cpp
@@ -25,6 +25,7 @@
#include <KTelepathy/GroupedContactsProxyModel>
#include <KTelepathy/ContactItem>
#include <KTelepathy/MetaContactItem>
+#include <KTelepathy/RequestTextChatJob>
#include <KTelepathy/TelepathyBridge>
@@ -59,6 +60,8 @@
#include <TelepathyQt4/Constants>
+#define PREFERRED_TEXTCHAT_HANDLER "org.freedesktop.Telepathy.Client.KDEChatHandler"
+
const int SPACING = 4;
const int AVATAR_SIZE = 32;
@@ -220,6 +223,14 @@ void MainWidget::onCustomContextMenuRequested(const QPoint& point)
kDebug() << contactItem;
QMenu *menu = new QMenu;
+ // Of course we want to chat!
+ QAction *chatAction = menu->addAction(i18n("Start Chat..."));
+ chatAction->setIcon( KIcon("mail-message-new") );
+ connect(chatAction, SIGNAL(triggered(bool)),
+ this, SLOT(onStartChat(bool)));
+
+ menu->addSeparator();
+
if (contactItem) {
kDebug() << "A contactitem";
// Ok, now let's see what we can do
@@ -724,5 +735,68 @@ void MainWidget::onAddToMetaContact(bool )
}
}
+void MainWidget::onStartChat(bool)
+{
+ QAction *action = qobject_cast< QAction* >(sender());
+ if (!action) {
+ kDebug() << "invalid";
+ return;
+ }
+
+ // Pick the current model index
+ QModelIndex idx = m_groupedContactsProxyModel->mapToSource(m_contactsListView->currentIndex());
+ if (!idx.isValid()) {
+ // Flee
+ kDebug() << "Invalid index";
+ return;
+ }
+
+ RequestTextChatJob* job;
+ // Ok, what is it?
+ AbstractTreeItem *abstractItem = static_cast<AbstractTreeItem*>(idx.internalPointer());
+ ContactItem *contactItem = dynamic_cast<ContactItem*>(abstractItem);
+ MetaContactItem *metacontactItem = dynamic_cast<MetaContactItem*>(abstractItem);
+
+ if (contactItem) {
+ kDebug() << "Request chat to contact";
+ Nepomuk::PersonContact contact = contactItem->personContact();
+ kDebug() << contact.resourceUri() << contact.genericLabel();
+ job = requestTextChat(contact, PREFERRED_TEXTCHAT_HANDLER, this);
+ } else if (metacontactItem && metacontactItem->type() == MetaContactItem::RealMetaContact) {
+ kDebug() << "Request chat to REAL metacontact";
+ Nepomuk::Person metacontact = metacontactItem->pimoPerson();
+ kDebug() << metacontact.resourceUri() << metacontact.genericLabel();
+ job = requestTextChat(metacontact, PREFERRED_TEXTCHAT_HANDLER, this);
+ } else if (metacontactItem && metacontactItem->type() == MetaContactItem::FakeMetaContact) {
+ kDebug() << "Request chat to FAKE metacontact";
+ QList<AbstractTreeItem*> childList = metacontactItem->childItems();
+ kWarning() << "LIST" << childList.size();
+ AbstractTreeItem *childItem = childList.first();
+ kWarning() << "CHILD";
+ if(!childItem)
+ kWarning() << "!childItem";
+ contactItem = dynamic_cast<ContactItem*>(childItem); //It should just have one
+ if (!contactItem) {
+ KMessageBox::error(0, i18n("An error occurred????"));
+ kWarning() << "Cannot dynamic cast child item!";
+ } else {
+ Nepomuk::PersonContact contact = contactItem->personContact();
+ kDebug() << contact.resourceUri() << contact.genericLabel();
+ job = requestTextChat(contact, PREFERRED_TEXTCHAT_HANDLER, this);
+ }
+ } else {
+ KMessageBox::error(0, i18n("An error occurred????"));
+ kWarning() << "This is not a contact or a metacontact!";
+ }
+ if ( !job->exec() ) {
+ // An error occurred
+ KMessageBox::error(0, i18n("Impossible to start a chat"));
+ kWarning() << "Impossible to start a chat";
+ } else {
+ kDebug() << "This should be a success.";
+ }
+}
+
+
#include "main-widget.moc"
diff --git a/main-widget.h b/main-widget.h
index d5cfbfc..50349bb 100644
--- a/main-widget.h
+++ b/main-widget.h
@@ -60,6 +60,7 @@ private:
public slots:
void onCustomContextMenuRequested(const QPoint &point);
+ void onStartChat(bool);
void onRequestRemoveFromGroup(bool);
void onContactRemovalRequest(bool);
void onContactBlockRequest(bool);
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list