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");
172 if (orientation == Orientation::Horizontal && role == ItemDataRole::Display)
173 return static_cast<const char*
>(
"File");
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.
static constexpr const int User
void emit(A... args) const
virtual Signal & layoutAboutToBeChanged()
WModelIndex createIndex(int row, int column, void *ptr) const
virtual Signal & layoutChanged()
::uint64_t internalId() const
Index usable as a key to a map, that identifies a child/row within a tree.