12 : WAbstractItemModel(parent)
29 layoutAboutToBeChanged().emit();
37 layoutChanged().emit();
43 if (!
index.isValid() ||
index.internalId() == 0)
57 const WModelIndex& parent)
const
66 int grandParentId =
parent.internalId();
73 return createIndex(row, column, parentId);
110 if (
index.isValid()) {
112 if (
index.column() != 0)
137 if (!
index.isValid())
145 if (
index.column() == 0) {
147 if (role == DisplayRole) {
149 return object.name +
'/';
152 }
else if (role == DecorationRole) {
154 return static_cast<const char*
>(
"icons/git-blob.png");
156 return static_cast<const char*
>(
"icons/git-tree.png");
171 if (orientation == Horizontal && role == DisplayRole)
172 return static_cast<const char*
>(
"File");
179 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.
GitModel(Wt::WObject *parent=0)
Constructor.
virtual int rowCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
Returns the row count.
virtual int columnCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
Returns the column count.
static const int ContentsRole
The role which may be used on a file to retrieve its contents.
Git::Object getObject(const Wt::WModelIndex &index) const
Get the Git::Object that corresponds to an 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.
virtual Wt::WModelIndex parent(const Wt::WModelIndex &index) const
Returns the parent index.
virtual boost::any data(const Wt::WModelIndex &index, int role=Wt::DisplayRole) const
Returns data.
static const int FilePathRole
void setRepositoryPath(const std::string &repositoryPath)
Set the repository and load its 'master' revision.
virtual Wt::WModelIndex index(int row, int column, const Wt::WModelIndex &parent=Wt::WModelIndex()) const
Returns a child index.
virtual boost::any headerData(int section, Wt::Orientation orientation=Wt::Horizontal, int role=Wt::DisplayRole) const
Returns header data.
void loadRevision(const std::string &revName)
Load a particular revision.
Git git_
The git repository.
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.