bool ButtonCommitClicked() { changeSet.GlobalComment = Message; // Perform the commit int n; for (n = 0; n < extensions.Count; n++) { CommitDialogExtension ext = extensions [n]; bool res; try { res = ext.OnBeginCommit(changeSet); } catch (Exception ex) { LoggingService.LogInternalError(ex); res = false; } if (!res) { // Commit failed. Rollback the previous extensions for (int m = 0; m < n; m++) { ext = extensions [m]; try { ext.OnEndCommit(changeSet, false); } catch (Exception ex) { LoggingService.LogInternalError("Commit operation failed.", ex); } } return(false); } } return(true); }
protected override void OnResponse(Gtk.ResponseType type) { if (type == Gtk.ResponseType.Ok) { // Update the change set ArrayList todel = new ArrayList(); foreach (ChangeSetItem it in changeSet.Items) { if (!selected.Contains(it.LocalPath)) { todel.Add(it.LocalPath); } } foreach (string file in todel) { changeSet.RemoveFile(file); } changeSet.GlobalComment = Message; // Perform the commit int n; for (n = 0; n < extensions.Count; n++) { CommitDialogExtension ext = (CommitDialogExtension)extensions [n]; bool res; try { res = ext.OnBeginCommit(changeSet); } catch (Exception ex) { MessageService.ShowException(ex); res = false; } System.Console.WriteLine("RES: " + res); if (!res) { // Commit failed. Rollback the previous extensions for (int m = 0; m < n; m++) { ext = (CommitDialogExtension)extensions [m]; try { ext.OnEndCommit(changeSet, false); } catch {} } return; } Hide(); } } else { changeSet.GlobalComment = oldMessage; } base.OnResponse(type); }
protected void OnButtonCommitClicked(object sender, System.EventArgs e) { // In case we have local unsaved files with changes, throw a dialog for the user. System.Collections.Generic.List <Document> docList = new System.Collections.Generic.List <Document> (); foreach (var item in IdeApp.Workbench.Documents) { if (!item.IsDirty || !selected.Contains(item.FileName)) { continue; } docList.Add(item); } if (docList.Count != 0) { AlertButton response = MessageService.GenericAlert( MonoDevelop.Ide.Gui.Stock.Question, GettextCatalog.GetString("You are trying to commit files which have unsaved changes."), GettextCatalog.GetString("Do you want to save the changes before committing?"), new AlertButton[] { AlertButton.Cancel, new AlertButton("Don't Save"), AlertButton.Save } ); if (response == AlertButton.Cancel) { return; } if (response == AlertButton.Save) { // Go through all the items and save them. foreach (var item in docList) { item.Save(); } // Check if save failed on any item and abort. foreach (var item in docList) { if (item.IsDirty) { MessageService.ShowMessage(GettextCatalog.GetString( "Some files could not be saved. Commit operation aborted")); return; } } } docList.Clear(); } // Update the change set ArrayList todel = new ArrayList(); foreach (ChangeSetItem it in changeSet.Items) { if (!selected.Contains(it.LocalPath)) { todel.Add(it.LocalPath); } } foreach (string file in todel) { changeSet.RemoveFile(file); } changeSet.GlobalComment = Message; // Perform the commit int n; for (n = 0; n < extensions.Count; n++) { CommitDialogExtension ext = (CommitDialogExtension)extensions [n]; bool res; try { res = ext.OnBeginCommit(changeSet); } catch (Exception ex) { MessageService.ShowException(ex); res = false; } if (!res) { // Commit failed. Rollback the previous extensions for (int m = 0; m < n; m++) { ext = (CommitDialogExtension)extensions [m]; try { ext.OnEndCommit(changeSet, false); } catch {} } return; } Hide(); } Respond(Gtk.ResponseType.Ok); }