/* * Retroshare Gxs Support * * Copyright 2012-2013 by Robert Fernie. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License Version 2.1 as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. * * Please report all bugs and problems to "retroshare@lunamutt.com". * */ #include "GxsIdTreeWidgetItem.h" #include "GxsIdDetails.h" /** Constructor */ GxsIdRSTreeWidgetItem::GxsIdRSTreeWidgetItem(const RSTreeWidgetItemCompareRole *compareRole, QTreeWidget *parent) : QObject(NULL), RSTreeWidgetItem(compareRole, parent), mColumn(0) { init(); } GxsIdRSTreeWidgetItem::GxsIdRSTreeWidgetItem(const RSTreeWidgetItemCompareRole *compareRole, QTreeWidgetItem *parent) : QObject(NULL), RSTreeWidgetItem(compareRole, parent), mColumn(0) { init(); } void GxsIdRSTreeWidgetItem::init() { } static void fillGxsIdRSTreeWidgetItemCallback(GxsIdDetailsType type, const RsIdentityDetails &details, QObject *object, const QVariant &/*data*/) { GxsIdRSTreeWidgetItem *item = dynamic_cast(object); if (!item) { return; } QString toolTip; QList icons; switch (type) { case GXS_ID_DETAILS_TYPE_EMPTY: case GXS_ID_DETAILS_TYPE_FAILED: break; case GXS_ID_DETAILS_TYPE_LOADING: icons.push_back(GxsIdDetails::getLoadingIcon(details.mId)); break; case GXS_ID_DETAILS_TYPE_DONE: toolTip = GxsIdDetails::getComment(details); GxsIdDetails::getIcons(details, icons); break; } int column = item->idColumn(); item->setText(column, GxsIdDetails::getNameForType(type, details)); item->setToolTip(column, toolTip); item->setData(column, Qt::UserRole, QString::fromStdString(details.mId.toStdString())); QIcon combinedIcon; if (!icons.empty()) { GxsIdDetails::GenerateCombinedIcon(combinedIcon, icons); } item->setIcon(column, combinedIcon); } void GxsIdRSTreeWidgetItem::setId(const RsGxsId &id, int column) { //std::cerr << " GxsIdRSTreeWidgetItem::setId(" << id << "," << column << ")"; //std::cerr << std::endl; mId = id; mColumn = column; GxsIdDetails::process(mId, fillGxsIdRSTreeWidgetItemCallback, this); } bool GxsIdRSTreeWidgetItem::getId(RsGxsId &id) { id = mId; return true; }