[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:11 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=e2eb2c5
The following commit has been merged in the master branch:
commit e2eb2c590ce8cdb2d4bf40a6d55c2f2aff6fba3d
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