diff options
Diffstat (limited to 'sigmodr/tree/TreeModel.cpp')
| -rw-r--r-- | sigmodr/tree/TreeModel.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/sigmodr/tree/TreeModel.cpp b/sigmodr/tree/TreeModel.cpp index 879d56d3..024b27e9 100644 --- a/sigmodr/tree/TreeModel.cpp +++ b/sigmodr/tree/TreeModel.cpp @@ -124,7 +124,29 @@ Qt::ItemFlags TreeModel::flags(const QModelIndex& index) const { if (!index.isValid()) return Qt::ItemFlags(); - return static_cast<TreeItem*>(index.internalPointer())->flags(); + Qt::ItemFlags f; + TreeItem* item = static_cast<TreeItem*>(index.internalPointer()); + switch (index.column()) + { + case 0: + f |= item->flags(); + break; + case 1: + if (item->canEdit()) + f |= Qt::ItemIsEnabled; + break; + case 2: + if (item->canRemove()) + f |= Qt::ItemIsEnabled; + break; + case 3: + if (item->canAddTo()) + f |= Qt::ItemIsEnabled; + break; + default: + break; + } + return f; } QStringList TreeModel::mimeTypes() const |
