##// END OF EJS Templates
Rename a catalogue
trabillard -
r1140:bc4cd6c1cbbf
parent child
Show More
@@ -1,22 +1,24
1 1 #ifndef SCIQLOP_CATALOGUETREEWIDGETITEM_H
2 2 #define SCIQLOP_CATALOGUETREEWIDGETITEM_H
3 3
4 4 #include <Common/spimpl.h>
5 5 #include <QTreeWidgetItem>
6 6
7 7 #include <DBCatalogue.h>
8 8
9 9
10 10 class CatalogueTreeWidgetItem : public QTreeWidgetItem {
11 11 public:
12 12 CatalogueTreeWidgetItem(DBCatalogue catalogue, int type = QTreeWidgetItem::Type);
13 13
14 14 QVariant data(int column, int role) const override;
15 void setData(int column, int role, const QVariant &value) override;
16
15 17 DBCatalogue catalogue() const;
16 18
17 19 private:
18 20 class CatalogueTreeWidgetItemPrivate;
19 21 spimpl::unique_impl_ptr<CatalogueTreeWidgetItemPrivate> impl;
20 22 };
21 23
22 24 #endif // SCIQLOP_CATALOGUETREEWIDGETITEM_H
@@ -1,32 +1,46
1 1 #include "Catalogue/CatalogueTreeWidgetItem.h"
2 2
3 3 struct CatalogueTreeWidgetItem::CatalogueTreeWidgetItemPrivate {
4 4
5 5 DBCatalogue m_Catalogue;
6 6
7 7 CatalogueTreeWidgetItemPrivate(DBCatalogue catalogue) : m_Catalogue(catalogue) {}
8 8 };
9 9
10 10
11 11 CatalogueTreeWidgetItem::CatalogueTreeWidgetItem(DBCatalogue catalogue, int type)
12 12 : QTreeWidgetItem(type),
13 13 impl{spimpl::make_unique_impl<CatalogueTreeWidgetItemPrivate>(catalogue)}
14 14 {
15 setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable);
15 16 }
16 17
17 18 QVariant CatalogueTreeWidgetItem::data(int column, int role) const
18 19 {
19 20 switch (role) {
21 case Qt::EditRole: // fallthrough
20 22 case Qt::DisplayRole:
21 23 return impl->m_Catalogue.getName();
22 24 default:
23 25 break;
24 26 }
25 27
26 28 return QTreeWidgetItem::data(column, role);
27 29 }
28 30
31 void CatalogueTreeWidgetItem::setData(int column, int role, const QVariant &value)
32 {
33 if (role == Qt::EditRole && column == 0) {
34 auto newName = value.toString();
35 setText(0, newName);
36 impl->m_Catalogue.setName(newName);
37 }
38 else {
39 QTreeWidgetItem::setData(column, role, value);
40 }
41 }
42
29 43 DBCatalogue CatalogueTreeWidgetItem::catalogue() const
30 44 {
31 45 return impl->m_Catalogue;
32 46 }
General Comments 0
You need to be logged in to leave comments. Login now