11 #ifndef smtk_extension_qtAttributeView_h
12 #define smtk_extension_qtAttributeView_h
14 #include "smtk/extension/qt/Exports.h"
15 #include "smtk/extension/qt/qtBaseAttributeView.h"
16 #include "smtk/extension/qt/qtTypeDeclarations.h"
18 #include "smtk/operation/Observer.h"
19 #include "smtk/operation/Operation.h"
20 #include "smtk/view/Configuration.h"
22 #include <QItemSelection>
24 #include <QModelIndex>
28 class QAbstractItemDelegate;
32 class QTableWidgetItem;
40 class qtAssociationWidget;
58 const QMap<QString, QList<smtk::attribute::DefinitionPtr>>& attDefinitionMap()
const;
60 QStandardItem* getSelectedItem();
63 bool isEmpty()
const override;
64 bool isValid()
const override;
66 void setSearchBoxText(
const std::string& text) { m_searchBoxText = text; }
67 const std::string& searchBoxText()
const {
return m_searchBoxText; }
69 void setSearchBoxVisibility(
bool mode) { m_allAssociatedMode = mode; }
70 bool searchBoxVisibility()
const {
return m_searchBoxVisibility; }
72 void setHideAssociations(
bool mode) { m_hideAssociations = mode; }
73 bool hideAssociations()
const {
return m_hideAssociations; }
75 void setRequireAllAssociated(
bool mode) { m_allAssociatedMode = mode; }
76 bool requireAllAssociated()
const {
return m_allAssociatedMode; }
78 void setAttributeNamesConstant(
bool mode) { m_disableNameField = mode; }
79 bool attributeNamesConstant()
const {
return m_disableNameField; }
81 void setAttributeNameRegex(
const std::string& pattern) { m_attributeNameRegex = pattern; }
82 const std::string& attributeNameRegex()
const {
return m_attributeNameRegex; }
96 void updateUI()
override;
97 void onShowCategory()
override;
98 void onListBoxSelectionChanged();
99 void onAttributeValueChanged(QTableWidgetItem*);
100 void onAttributeNameChanged(QStandardItem*);
102 void onCopySelected();
103 void onDeleteSelected();
105 void updateModelAssociation()
override;
106 void onListBoxClicked(
const QModelIndex& item);
107 void onAttributeItemChanged(QStandardItem* item);
108 void childrenResized()
override;
109 void showAdvanceLevelOverlay(
bool show)
override;
110 void associationsChanged();
111 void onItemChanged(
qtItem* item);
112 void onDefinitionChanged(
int);
115 void numOfAttributesChanged();
116 void attColorChanged();
117 void attAssociationChanged();
123 void createWidget()
override;
145 virtual void getAllDefinitions();
149 insertTableColumn(QTableWidget* wTable,
int insertCol,
const QString& title,
int advancedlevel);
154 virtual int handleOperationEvent(
157 smtk::operation::Operation::Result result);
162 QAction* addAction();
163 QAction* copyAction();
164 QAction* deleteAction();
166 void setTableItemDelegate(QAbstractItemDelegate* delegate);
167 void setTableColumnItemDelegate(
int column, QAbstractItemDelegate* delegate);
168 void setTableRowItemDelegate(
int row, QAbstractItemDelegate* delegate);
169 void triggerEdit(
const QModelIndex& index);
170 int numOfAttributes();
173 bool isOriginalDef =
true);
177 bool m_hideAssociations;
178 bool m_allAssociatedMode;
179 bool m_associationWidgetIsUsed;
180 bool m_disableNameField;
181 bool m_searchBoxVisibility;
182 std::string m_searchBoxText;
183 std::string m_attributeNameRegex;