DataSourceTreeWidget.cpp
37 lines
| 1.2 KiB
| text/x-c
|
CppLexer
r868 | #include "DataSource/DataSourceTreeWidget.h" | |||
#include "Common/MimeTypesDef.h" | ||||
#include "DataSource/DataSourceController.h" | ||||
#include "DataSource/DataSourceItem.h" | ||||
#include "DataSource/DataSourceTreeWidgetItem.h" | ||||
#include "SqpApplication.h" | ||||
#include <QMimeData> | ||||
DataSourceTreeWidget::DataSourceTreeWidget(QWidget *parent) : QTreeWidget(parent) {} | ||||
QMimeData *DataSourceTreeWidget::mimeData(const QList<QTreeWidgetItem *> items) const | ||||
{ | ||||
auto mimeData = new QMimeData; | ||||
// Basic check to ensure the item are correctly typed | ||||
Q_ASSERT(items.isEmpty() || dynamic_cast<DataSourceTreeWidgetItem *>(items.first()) != nullptr); | ||||
QVariantList productData; | ||||
for (auto item : items) { | ||||
auto dataSourceTreeItem = static_cast<DataSourceTreeWidgetItem *>(item); | ||||
auto dataSource = dataSourceTreeItem->data(); | ||||
if (dataSource->type() == DataSourceItemType::COMPONENT | ||||
|| dataSource->type() == DataSourceItemType::PRODUCT) { | ||||
auto metaData = dataSource->data(); | ||||
productData << metaData; | ||||
} | ||||
} | ||||
auto encodedData = sqpApp->dataSourceController().mimeDataForProductsData(productData); | ||||
mimeData->setData(MIME_TYPE_PRODUCT_LIST, encodedData); | ||||
return mimeData; | ||||
} | ||||