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