mirror of
https://gitlab.gnome.org/GNOME/gitg
synced 2024-10-03 22:54:15 +00:00
Allow specifying status options in enumerator
This commit is contained in:
parent
bd371d67dc
commit
92e4d71dbe
|
@ -51,10 +51,13 @@ public class StageStatusEnumerator : Object
|
|||
private int d_callback_num;
|
||||
private Cancellable d_cancellable;
|
||||
private SourceFunc d_callback;
|
||||
private Ggit.StatusOptions? d_options;
|
||||
|
||||
internal StageStatusEnumerator(Repository repository)
|
||||
internal StageStatusEnumerator(Repository repository,
|
||||
Ggit.StatusOptions? options = null)
|
||||
{
|
||||
d_repository = repository;
|
||||
d_options = options;
|
||||
|
||||
d_files = new StageStatusFile[100];
|
||||
d_files.length = 0;
|
||||
|
@ -83,7 +86,7 @@ public class StageStatusEnumerator : Object
|
|||
{
|
||||
try
|
||||
{
|
||||
d_repository.file_status_foreach(null, (path, flags) => {
|
||||
d_repository.file_status_foreach(d_options, (path, flags) => {
|
||||
lock (d_files)
|
||||
{
|
||||
d_files += new StageStatusFile(path, flags);
|
||||
|
|
|
@ -33,8 +33,6 @@ public class Stage : Object
|
|||
|
||||
public async void refresh() throws Error
|
||||
{
|
||||
d_enumerator = null;
|
||||
|
||||
yield thread_index((index) => {
|
||||
index.read();
|
||||
});
|
||||
|
@ -44,10 +42,11 @@ public class Stage : Object
|
|||
{
|
||||
if (d_enumerator == null)
|
||||
{
|
||||
d_enumerator = new StageStatusEnumerator(d_repository);
|
||||
}
|
||||
|
||||
return d_enumerator;
|
||||
public StageStatusEnumerator file_status(Ggit.StatusOptions? options = null)
|
||||
{
|
||||
return new StageStatusEnumerator(d_repository, options);
|
||||
}
|
||||
|
||||
private delegate void WithIndexFunc(Ggit.Index index) throws Error;
|
||||
|
|
Loading…
Reference in a new issue