##// END OF EJS Templates
Defines the QTreeWidgetItem for a data source item
Alexandre Leroux -
r80:084c81f48928
parent child
Show More
@@ -0,0 +1,32
1 #ifndef SCIQLOP_DATASOURCETREEWIDGETITEM_H
2 #define SCIQLOP_DATASOURCETREEWIDGETITEM_H
3
4 #include <Common/spimpl.h>
5
6 #include <QLoggingCategory>
7 #include <QTreeWidgetItem>
8
9 Q_DECLARE_LOGGING_CATEGORY(LOG_DataSourceTreeWidgetItem)
10
11 class DataSourceItem;
12
13 /**
14 * @brief The DataSourceTreeWidgetItem is the graphical representation of a data source item. It is
15 * intended to be displayed in a QTreeWidget.
16 * @sa DataSourceItem
17 */
18 class DataSourceTreeWidgetItem : public QTreeWidgetItem {
19 public:
20 explicit DataSourceTreeWidgetItem(const DataSourceItem *data, int type = Type);
21 explicit DataSourceTreeWidgetItem(QTreeWidget *parent, const DataSourceItem *data,
22 int type = Type);
23
24 virtual QVariant data(int column, int role) const override;
25 virtual void setData(int column, int role, const QVariant &value) override;
26
27 private:
28 class DataSourceTreeWidgetItemPrivate;
29 spimpl::unique_impl_ptr<DataSourceTreeWidgetItemPrivate> impl;
30 };
31
32 #endif // SCIQLOP_DATASOURCETREEWIDGETITEM_H
@@ -0,0 +1,41
1 #include <DataSource/DataSourceItem.h>
2 #include <DataSource/DataSourceTreeWidgetItem.h>
3
4 Q_LOGGING_CATEGORY(LOG_DataSourceTreeWidgetItem, "DataSourceTreeWidgetItem")
5
6 struct DataSourceTreeWidgetItem::DataSourceTreeWidgetItemPrivate {
7 explicit DataSourceTreeWidgetItemPrivate(const DataSourceItem *data) : m_Data{data} {}
8
9 /// Model used to retrieve data source information
10 const DataSourceItem *m_Data;
11 };
12
13 DataSourceTreeWidgetItem::DataSourceTreeWidgetItem(const DataSourceItem *data, int type)
14 : DataSourceTreeWidgetItem{nullptr, data, type}
15 {
16 }
17
18 DataSourceTreeWidgetItem::DataSourceTreeWidgetItem(QTreeWidget *parent, const DataSourceItem *data,
19 int type)
20 : QTreeWidgetItem{parent, type},
21 impl{spimpl::make_unique_impl<DataSourceTreeWidgetItemPrivate>(data)}
22 {
23 }
24
25 QVariant DataSourceTreeWidgetItem::data(int column, int role) const
26 {
27 if (role == Qt::DisplayRole) {
28 return (impl->m_Data) ? impl->m_Data->data(column) : QVariant{};
29 }
30 else {
31 return QTreeWidgetItem::data(column, role);
32 }
33 }
34
35 void DataSourceTreeWidgetItem::setData(int column, int role, const QVariant &value)
36 {
37 // Data can't be changed by edition
38 if (role != Qt::EditRole) {
39 QTreeWidgetItem::setData(column, role, value);
40 }
41 }
General Comments 0
You need to be logged in to leave comments. Login now