13 : WAbstractItemModel()
30 layoutAboutToBeChanged().emit();
38 layoutChanged().emit();
44 if (!
index.isValid() ||
index.internalId() == 0)
58 const WModelIndex& parent)
const
67 int grandParentId =
parent.internalId();
74 return createIndex(row, column, parentId);
111 if (
index.isValid()) {
113 if (
index.column() != 0)
138 if (!
index.isValid())
146 if (
index.column() == 0) {
148 if (role == ItemDataRole::Display) {
150 return object.name +
'/';
153 }
else if (role == ItemDataRole::Decoration) {
155 return static_cast<const char*
>(
"icons/git-blob.png");
157 return static_cast<const char*
>(
"icons/git-tree.png");
170 ItemDataRole role)
const
172 if (orientation == Orientation::Horizontal && role == ItemDataRole::Display)
173 return static_cast<const char*
>(
"File");
180 int parentId =
index.internalId();
Used to uniquely locate a folder within the folder hierarchy.
int parentId() const
Returns the parent id.
int index() const
Returns the child index within the parent folder.
const Git::ObjectId & treeObject() const
Returns the SHA1 id for the git tree object.
virtual WModelIndex parent(const WModelIndex &index) const
Returns the parent index.
virtual WModelIndex index(int row, int column, const WModelIndex &parent=WModelIndex()) const
Returns a child index.
ChildPointerMap childPointer_
Maps child indexes to tree indexes.
int getTreeId(int parentId, int childIndex) const
Get or allocate an id for a folder.
std::vector< Tree > treeData_
List of folder objects.
Git::Object getObject(const WModelIndex &index) const
Get the Git::Object that corresponds to an index.
virtual cpp17::any headerData(int section, Orientation orientation=Orientation::Horizontal, ItemDataRole role=ItemDataRole::Display) const
Returns header data.
virtual int columnCount(const WModelIndex &parent=WModelIndex()) const
Returns the column count.
virtual cpp17::any data(const WModelIndex &index, ItemDataRole role=ItemDataRole::Display) const
Returns data.
static const ItemDataRole ContentsRole
The role which may be used on a file to retrieve its contents.
void setRepositoryPath(const std::string &repositoryPath)
Set the repository and load its 'master' revision.
static const ItemDataRole FilePathRole
void loadRevision(const std::string &revName)
Load a particular revision.
Git git_
The git repository.
virtual int rowCount(const WModelIndex &parent=WModelIndex()) const
Returns the row count.
std::string catFile(const ObjectId &id) const
Return the raw contents of a git object.
Object treeGetObject(const ObjectId &tree, int index) const
Get some info on a tree object.
int treeSize(const ObjectId &tree) const
Return the number of objects inside a tree object.
void setRepositoryPath(const std::string &repository)
Set the git repository path.
ObjectId getCommitTree(const std::string &revision) const
Get the tree for a particular revision.
Index usable as a key to a map, that identifies a child/row within a tree.