[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:06:15 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=d82428b

The following commit has been merged in the master branch:
commit d82428b26a806787d75ff9229182e4114575acc4
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date:   Sun May 1 13:31:00 2011 +0200

    Enable file transfer channel creation from contact list
    
    Reviewed-by: David Edmundson <kde at davidedmundson.co.uk>
    Reviewed-by: Martin Klapetek <martin.klapetek at gmail.com>
    
    REVIEW: 101263
---
 main-widget.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 main-widget.h   |  2 ++
 2 files changed, 59 insertions(+)

diff --git a/main-widget.cpp b/main-widget.cpp
index 0781d41..31f0a57 100644
--- a/main-widget.cpp
+++ b/main-widget.cpp
@@ -61,6 +61,7 @@
 #include "fetch-avatar-job.h"
 
 #define PREFERRED_TEXTCHAT_HANDLER "org.freedesktop.Telepathy.Client.KDE.TextUi"
+#define PREFERRED_FILETRANSFER_HANDLER "org.freedesktop.Telepathy.Client.KDE.FileTransfer"
 
 bool kde_tp_filter_contacts_by_publication_status(const Tp::ContactPtr &contact)
 {
@@ -454,6 +455,46 @@ void MainWidget::startTextChannel(const QModelIndex &index)
     connect(channelRequest, SIGNAL(finished(Tp::PendingOperation*)), SLOT(slotGenericOperationFinished(Tp::PendingOperation*)));
 }
 
+void MainWidget::startFileTransferChannel(const QModelIndex &index)
+{
+    if (! index.isValid()) {
+        return;
+    }
+
+    QModelIndex realIndex = m_modelFilter->mapToSource(index);
+    Tp::ContactPtr contact = m_model->data(realIndex, AccountsModel::ItemRole).value<ContactModelItem*>()->contact();
+
+    kDebug() << "Requesting file transfer for contact" << contact->alias();
+
+    Tp::AccountPtr account = m_model->accountForContactIndex(realIndex);
+
+    QString filename = KFileDialog::getOpenFileName(KUrl(), // TODO Remember directory
+                                                    QString(),
+                                                    this,
+                                                    i18n("Choose a file")
+    );
+
+    QFileInfo fileinfo(filename);
+
+    kDebug() << "Filename:" << filename;
+    kDebug() << "Content type:" << KMimeType::findByFileContent(filename)->name();
+    kDebug() << "Size:" << fileinfo.size();
+    kDebug() << "Last modified:" << fileinfo.lastModified();
+
+    Tp::FileTransferChannelCreationProperties fileTransferProperties(filename,
+                                                                     KMimeType::findByFileContent(filename)->name(),
+                                                                     fileinfo.size());
+    // TODO Add file hash? -- fileTransferProperties.setContentHash();
+    fileTransferProperties.setLastModificationTime(fileinfo.lastModified());
+    // TODO Let the user set a description? -- fileTransferProperties.setDescription();
+
+    Tp::PendingChannelRequest* channelRequest = account->createFileTransfer(contact,
+                                                                            fileTransferProperties,
+                                                                            QDateTime::currentDateTime(),
+                                                                            PREFERRED_FILETRANSFER_HANDLER);
+    connect(channelRequest, SIGNAL(finished(Tp::PendingOperation*)), SLOT(slotGenericOperationFinished(Tp::PendingOperation*)));
+}
+
 void MainWidget::showMessageToUser(const QString& text, const MainWidget::SystemMessageType type)
 {
     QFrame *msgFrame = new QFrame(m_contactsListView);
@@ -541,6 +582,9 @@ void MainWidget::addOverlayButtons()
 
     connect(textOverlay, SIGNAL(activated(QModelIndex)),
             this, SLOT(startTextChannel(QModelIndex)));
+
+    connect(fileOverlay, SIGNAL(activated(QModelIndex)),
+            this, SLOT(startFileTransferChannel(QModelIndex)));
 }
 
 void MainWidget::toggleSearchWidget(bool show)
@@ -633,6 +677,8 @@ void MainWidget::onCustomContextMenuRequested(const QPoint &)
     action = menu->addAction(i18n("Send File..."));
     action->setIcon(KIcon("mail-attachment"));
     action->setDisabled(true);
+    connect(action, SIGNAL(triggered(bool)),
+            SLOT(slotStartFileTransfer()));
 
     if (index.data(AccountsModel::FileTransferCapabilityRole).toBool()) {
         action->setEnabled(true);
@@ -776,6 +822,17 @@ void MainWidget::slotStartTextChat()
     startTextChannel(index);
 }
 
+void MainWidget::slotStartFileTransfer()
+{
+    QModelIndex index = m_contactsListView->currentIndex();
+    if (!index.isValid()) {
+        kDebug() << "Invalid index provided.";
+        return;
+    }
+
+    startFileTransferChannel(index);
+}
+
 void MainWidget::slotUnblockContactTriggered()
 {
     QModelIndex index = m_contactsListView->currentIndex();
diff --git a/main-widget.h b/main-widget.h
index cfcd045..c103a66 100644
--- a/main-widget.h
+++ b/main-widget.h
@@ -66,6 +66,7 @@ public:
 public Q_SLOTS:
     void onAccountManagerReady(Tp::PendingOperation *op);
     void startTextChannel(const QModelIndex &index);
+    void startFileTransferChannel(const QModelIndex &index);
     void onContactListDoubleClick(const QModelIndex &index);
     void onConnectionChanged(const Tp::ConnectionPtr &connection);
     void onAccountConnectionStatusChanged(Tp::ConnectionStatus status);
@@ -93,6 +94,7 @@ private Q_SLOTS:
     void slotDeleteContact();
     void slotGenericOperationFinished(Tp::PendingOperation *operation); /** called when a Tp::PendingOperation finishes. Used to check for errors */
     void slotStartTextChat();
+    void slotStartFileTransfer();
     void slotUnblockContactTriggered();
     void onAvatarFetched(KJob*);
     void onAccountReady(Tp::PendingOperation *operation);

-- 
ktp-contact-list packaging



More information about the pkg-kde-commits mailing list