diff options
| author | Richard Maudsley <richard.maudsley@isode.com> | 2014-04-07 09:19:50 (GMT) |
|---|---|---|
| committer | Richard Maudsley <richard.maudsley@isode.com> | 2014-04-07 13:07:43 (GMT) |
| commit | a7c7602e89d58056940885112f8764a31e9991da (patch) | |
| tree | e713e2d7eed2c2ba2925ec0a70fe93eb707c077a /Swift/QtUI/Roster/RosterModel.cpp | |
| parent | 1a35178bcad7c30e50a19e4017d021fb0485ccf0 (diff) | |
| download | swift-contrib-a7c7602e89d58056940885112f8764a31e9991da.zip swift-contrib-a7c7602e89d58056940885112f8764a31e9991da.tar.bz2 | |
Allow contacts to be dragged from the Chats tab into the search window
Change-Id: Ib1ecd2f95fb26269d8aa19094aac6e1f691cdf35
Diffstat (limited to 'Swift/QtUI/Roster/RosterModel.cpp')
| -rw-r--r-- | Swift/QtUI/Roster/RosterModel.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/Swift/QtUI/Roster/RosterModel.cpp b/Swift/QtUI/Roster/RosterModel.cpp index 2bd0d09..d8108ba 100644 --- a/Swift/QtUI/Roster/RosterModel.cpp +++ b/Swift/QtUI/Roster/RosterModel.cpp @@ -1,37 +1,37 @@ /* - * Copyright (c) 2010-2013 Kevin Smith + * Copyright (c) 2010-2014 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <Swift/QtUI/Roster/RosterModel.h> #include <boost/bind.hpp> #include <QColor> #include <QIcon> #include <QMimeData> #include <qdebug.h> #include <Swiften/Elements/StatusShow.h> #include <Swiften/Base/Path.h> #include <Swift/Controllers/Roster/ContactRosterItem.h> #include <Swift/Controllers/Roster/GroupRosterItem.h> #include <Swift/Controllers/StatusUtil.h> #include <Swift/QtUI/Roster/QtTreeWidget.h> #include <Swift/QtUI/Roster/RosterTooltip.h> #include <Swift/QtUI/QtResourceHelper.h> #include <Swift/QtUI/QtSwiftUtil.h> namespace Swift { RosterModel::RosterModel(QtTreeWidget* view, bool screenReaderMode) : roster_(NULL), view_(view), screenReader_(screenReaderMode) { const int tooltipAvatarSize = 96; // maximal suggested size according to XEP-0153 cachedImageScaler_ = new QtScaledAvatarCache(tooltipAvatarSize); } RosterModel::~RosterModel() { delete cachedImageScaler_; } @@ -231,49 +231,44 @@ QModelIndex RosterModel::index(RosterItem* item) const { for (size_t i = 0; i < parent->getDisplayedChildren().size(); i++) { if (parent->getDisplayedChildren()[i] == item) { return createIndex(i, 0, item); } } return QModelIndex(); } QModelIndex RosterModel::parent(const QModelIndex& child) const { if (!roster_ || !child.isValid()) { return QModelIndex(); } GroupRosterItem* parent = getItem(child)->getParent(); return (parent != roster_->getRoot()) ? index(parent) : QModelIndex(); } int RosterModel::rowCount(const QModelIndex& parent) const { if (!roster_) return 0; RosterItem* item = parent.isValid() ? static_cast<RosterItem*>(parent.internalPointer()) : roster_->getRoot(); Q_ASSERT(item); GroupRosterItem* group = dynamic_cast<GroupRosterItem*>(item); int count = group ? group->getDisplayedChildren().size() : 0; // qDebug() << "rowCount = " << count << " where parent.isValid() == " << parent.isValid() << ", group == " << (group ? P2QSTRING(group->getDisplayName()) : "*contact*"); return count; } QMimeData* RosterModel::mimeData(const QModelIndexList& indexes) const { QMimeData* data = QAbstractItemModel::mimeData(indexes); ContactRosterItem *item = dynamic_cast<ContactRosterItem*>(getItem(indexes.first())); if (item == NULL) { return data; } + /* only a single JID in this list */ QByteArray itemData; QDataStream dataStream(&itemData, QIODevice::WriteOnly); - - // jid, chatName, activity, statusType, avatarPath dataStream << P2QSTRING(item->getJID().toString()); - dataStream << P2QSTRING(item->getDisplayName()); - dataStream << P2QSTRING(item->getStatusText()); - dataStream << item->getSimplifiedStatusShow(); - dataStream << P2QSTRING(item->getAvatarPath().string()); - data->setData("application/vnd.swift.contact-jid", itemData); + data->setData("application/vnd.swift.contact-jid-list", itemData); return data; } } |
Swift