|
@@ -30,6 +30,8 @@ namespace Terra.Arbitrator.GUI
|
|
public bool IsInConflictState { get; private set; }
|
|
public bool IsInConflictState { get; private set; }
|
|
public int CommitsToPull { get; private set; }
|
|
public int CommitsToPull { get; private set; }
|
|
public SortColumn CurrentSortColumn { get; private set; } = SortColumn.FilePath;
|
|
public SortColumn CurrentSortColumn { get; private set; } = SortColumn.FilePath;
|
|
|
|
+ public float PushProgress { get; private set; }
|
|
|
|
+ public string PushProgressMessage { get; private set; }
|
|
|
|
|
|
private readonly Action _requestRepaint;
|
|
private readonly Action _requestRepaint;
|
|
private readonly Func<string, string, string, string, bool> _displayDialog;
|
|
private readonly Func<string, string, string, string, bool> _displayDialog;
|
|
@@ -154,7 +156,7 @@ namespace Terra.Arbitrator.GUI
|
|
|
|
|
|
StartOperation("Staging, committing, and pushing files...");
|
|
StartOperation("Staging, committing, and pushing files...");
|
|
|
|
|
|
- GitService.CommitAndPush(selectedFiles, commitMessage, username, email)
|
|
|
|
|
|
+ GitService.CommitAndPush(selectedFiles, commitMessage, username, email, OnProgressModified)
|
|
.Then(successMessage => {
|
|
.Then(successMessage => {
|
|
InfoMessage = successMessage;
|
|
InfoMessage = successMessage;
|
|
Refresh();
|
|
Refresh();
|
|
@@ -163,6 +165,14 @@ namespace Terra.Arbitrator.GUI
|
|
HandleOperationError(ex);
|
|
HandleOperationError(ex);
|
|
FinishOperation();
|
|
FinishOperation();
|
|
});
|
|
});
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ void OnProgressModified(float progress, string message)
|
|
|
|
+ {
|
|
|
|
+ PushProgress = progress;
|
|
|
|
+ PushProgressMessage = message;
|
|
|
|
+ _requestRepaint?.Invoke();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
public void SetSortColumn(SortColumn newColumn)
|
|
public void SetSortColumn(SortColumn newColumn)
|
|
@@ -308,10 +318,6 @@ namespace Terra.Arbitrator.GUI
|
|
private void FinalizeRefresh(int? pullCount)
|
|
private void FinalizeRefresh(int? pullCount)
|
|
{
|
|
{
|
|
CommitsToPull = pullCount ?? 0;
|
|
CommitsToPull = pullCount ?? 0;
|
|
- if (string.IsNullOrEmpty(InfoMessage) && (_changes == null || _changes.Count == 0))
|
|
|
|
- {
|
|
|
|
- InfoMessage = "You are up-to-date! No local changes detected.";
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// --- Shared Helper Methods ---
|
|
// --- Shared Helper Methods ---
|
|
@@ -320,6 +326,8 @@ namespace Terra.Arbitrator.GUI
|
|
{
|
|
{
|
|
IsLoading = true;
|
|
IsLoading = true;
|
|
LoadingMessage = loadingMessage;
|
|
LoadingMessage = loadingMessage;
|
|
|
|
+ PushProgress = 0f;
|
|
|
|
+ PushProgressMessage = "";
|
|
ClearMessages();
|
|
ClearMessages();
|
|
_changes = null;
|
|
_changes = null;
|
|
_requestRepaint?.Invoke();
|
|
_requestRepaint?.Invoke();
|