Allow specifying status options in enumerator

This commit is contained in:
Jesse van den Kieboom 2013-07-03 16:40:30 +02:00
parent bd371d67dc
commit 92e4d71dbe
2 changed files with 8 additions and 6 deletions

View file

@ -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);

View file

@ -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;