summaryrefslogtreecommitdiffstats
path: root/sigmodr/tree/TreeModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigmodr/tree/TreeModel.cpp')
-rw-r--r--sigmodr/tree/TreeModel.cpp24
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