diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-05-21 13:32:02 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-05-21 13:32:02 -0400 |
commit | 10a70d1e4844338a443a5693d7df16e14144677f (patch) | |
tree | 4049b8d1c3835fc07aae304bed4803f7a074751f /sigmodr/tree | |
parent | b69e8e3f182a7727f420e967d2aed9fc1430ce91 (diff) | |
download | sigen-10a70d1e4844338a443a5693d7df16e14144677f.tar.gz sigen-10a70d1e4844338a443a5693d7df16e14144677f.tar.xz sigen-10a70d1e4844338a443a5693d7df16e14144677f.zip |
Fix up the flags for indexes other than the first
Diffstat (limited to 'sigmodr/tree')
-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 |