[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