Provides a QStandardItemModel-derived model usable by standrad Qt item view widgets.
Defines columns in the classic view
Provides asynchronous lookup of repository data for a path.
Emits signal names matching those defined in Columns.
Receive GitRepoInfoEvents and emit corresponding Qt signals.
Starts a GitRepoInfoTask to calculate info for entries.
Emits a signal corresponding to the entry’s name.
Provides access to static instances of GitRepoEntry and model data.
Return a static instance of a GitRepoEntry.
Transport mechanism for communicating from a GitRepoInfoTask.
Handles expensive git lookups for a path.
Return git data for a path.
Supported keys are ‘date’, ‘message’, and ‘author’
Returns a relative date for a file path.
This is typically used for new entries that do not have ‘git log’ information.
Calculate the name for an entry.
Perform expensive lookups and post corresponding events.
Return the status for the entry’s path.
Represents a cell in a treeview.
Many GitRepoItems map to a single repository path. Each GitRepoItem manages a different cell in the tree view. One is created for each column – Name, Status, Age, etc.
Provides an interface into a git repository for browsing purposes.
Add a directory entry to the model.
Add a file to the model.
Return the GitRepoEntry for a path.
Return True if path has a status.
Subclass GitRepoItem to provide a custom type().
Indicate that this item is of a special user-defined type.
‘name’ is the only column that registers a user-defined type. This is done to allow filtering out other columns when determining which paths are selected.
Manages QRunnable task instances to avoid python’s garbage collector
When PyQt stops referencing a QRunnable instance Python cleans it up which leads to segfaults, e.g. the dreaded “C++ object has gone away”.
This class keeps track of tasks and cleans up references to them as they complete.