[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:11:57 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=f86ddba
The following commit has been merged in the master branch:
commit f86ddba23d043a013948c180c6252ee4fc51d0a0
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Sat Jan 5 02:09:15 2013 +0000
Fix drag and drop between groups
---
contact-list-widget.cpp | 52 ++++++++++++++++++++++++++++---------------------
contact-list-widget_p.h | 1 +
2 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/contact-list-widget.cpp b/contact-list-widget.cpp
index d1cc982..dbc52cd 100644
--- a/contact-list-widget.cpp
+++ b/contact-list-widget.cpp
@@ -134,6 +134,8 @@ ContactListWidget::~ContactListWidget()
void ContactListWidget::setAccountManager(const Tp::AccountManagerPtr &accountManager)
{
Q_D(ContactListWidget);
+
+ d->accountManager = accountManager;
d->modelFilter->setAccountManager(accountManager);
QList<Tp::AccountPtr> accounts = accountManager->allAccounts();
@@ -573,13 +575,15 @@ void ContactListWidget::dropEvent(QDropEvent *event)
QModelIndex index = indexAt(event->pos());
- if (event->mimeData()->hasUrls()) {
- kDebug() << "It's a file!";
+ if (!index.isValid()) {
+ return;
+ }
- Tp::ContactPtr contact = index.data(ContactsModel::ContactRole).value<Tp::ContactPtr>();
- kDebug() << "Requesting file transfer for contact" << contact->alias();
+ if (event->mimeData()->hasUrls()) {
+ kDebug() << "Filed dropped";
+ Tp::ContactPtr contact = index.data(ContactsModel::ContactRole).value<Tp::ContactPtr>();
Tp::AccountPtr account = index.data(ContactsModel::AccountRole).value<Tp::AccountPtr>();
QStringList filenames;
@@ -587,34 +591,40 @@ void ContactListWidget::dropEvent(QDropEvent *event)
filenames << url.toLocalFile();
}
- if (filenames.isEmpty()) {
- return;
+ if (account && contact && !filenames.isEmpty()) {
+ kDebug() << "Requesting file transfer for contact" << contact->alias();
+ requestFileTransferChannels(account, contact, filenames);
+ event->acceptProposedAction();
}
- requestFileTransferChannels(account, contact, filenames);
-
- event->acceptProposedAction();
} else if (event->mimeData()->hasFormat("application/vnd.telepathy.contact")) {
- kDebug() << "It's a contact!";
+ kDebug() << "Contact dropped";
QByteArray encodedData = event->mimeData()->data("application/vnd.telepathy.contact");
QDataStream stream(&encodedData, QIODevice::ReadOnly);
- QList<ContactModelItem*> contacts;
+ QList<Tp::ContactPtr> contacts;
while (!stream.atEnd()) {
- QString contact;
- QString account;
+ QString contactId;
+ QString accountId;
//get contact and account out of the stream
- stream >> contact >> account;
+ stream >> contactId >> accountId;
+
+ Tp::AccountPtr account = d->accountManager->accountForObjectPath(accountId);
-// Tp::AccountPtr accountPtr = d->model->accountPtrForPath(account);
+ if (!account->connection()) {
+ continue;
+ }
- //casted pointer is checked below, before first use
-// contacts.append(qobject_cast<ContactModelItem*>(d->model->contactItemForId(accountPtr->uniqueIdentifier(), contact)));
+ Q_FOREACH(const Tp::ContactPtr &contact, account->connection()->contactManager()->allKnownContacts()) {
+ if (contact->id() == contactId) {
+ contacts.append(contact);
+ }
+ }
}
- Q_FOREACH (ContactModelItem *contact, contacts) {
+ Q_FOREACH (const Tp::ContactPtr &contact, contacts) {
Q_ASSERT(contact);
QString group;
if (index.data(ContactsModel::TypeRole).toInt() == ContactsModel::GroupRowType) {
@@ -625,10 +635,10 @@ void ContactListWidget::dropEvent(QDropEvent *event)
group = index.parent().data(GroupsModel::GroupNameRole).toString();
}
- kDebug() << contact->contact().data()->alias() << "added to group" << group;
+ kDebug() << contact->alias() << "added to group" << group;
if (!group.isEmpty()) {
- Tp::PendingOperation *op = contact->contact().data()->addToGroup(group);
+ Tp::PendingOperation *op = contact->addToGroup(group);
connect(op, SIGNAL(finished(Tp::PendingOperation*)),
this, SIGNAL(genericOperationFinished(Tp::PendingOperation*)));
@@ -667,8 +677,6 @@ void ContactListWidget::dragEnterEvent(QDragEnterEvent *event)
void ContactListWidget::dragMoveEvent(QDragMoveEvent *event)
{
- Q_D(ContactListWidget);
-
QModelIndex index = indexAt(event->pos());
setDropIndicatorRect(QRect());
diff --git a/contact-list-widget_p.h b/contact-list-widget_p.h
index c0b28a6..68e0302 100644
--- a/contact-list-widget_p.h
+++ b/contact-list-widget_p.h
@@ -48,6 +48,7 @@ public:
bool shouldDrag;
bool showOffline;
QHash<QString, bool> groupStates;
+ Tp::AccountManagerPtr accountManager;
};
#endif //CONTACT_LIST_WIDGET_P_H
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list