QVariant ScriptsModel::data(const QModelIndex& index, int role) const { TreeNodeBase* node = getTreeNodeFromIndex(index); if (node->getType() == TREE_NODE_TYPE_SCRIPT) { TreeNodeScript* script = static_cast<TreeNodeScript*>(node); if (role == Qt::DisplayRole) { return QVariant(script->getName() + (script->getOrigin() == SCRIPT_ORIGIN_LOCAL ? " (local)" : "")); } else if (role == ScriptPath) { return QVariant(script->getFullPath()); } } else if (node->getType() == TREE_NODE_TYPE_FOLDER) { TreeNodeFolder* folder = static_cast<TreeNodeFolder*>(node); if (role == Qt::DisplayRole) { return QVariant(folder->getName()); } } return QVariant(); }
QModelIndex ScriptsModel::index(int row, int column, const QModelIndex& parent) const { if (row < 0 || column < 0) { return QModelIndex(); } return createIndex(row, column, getFolderNodes(static_cast<TreeNodeFolder*>(getTreeNodeFromIndex(parent))).at(row)); }
int ScriptsModel::rowCount(const QModelIndex& parent) const { return getFolderNodes(static_cast<TreeNodeFolder*>(getTreeNodeFromIndex(parent))).count(); }