public void RemoveMessageBar () { if (messageBar != null) { if (messageBar.Parent == vbox) vbox.Remove (messageBar); messageBar.Destroy (); messageBar = null; } if (!TextEditor.Visible) TextEditor.Visible = true; if (messageOverlayWindow != null) { messageOverlayWindow.Destroy (); messageOverlayWindow = null; } }
public void ShowFileChangedWarning (bool multiple) { RemoveMessageBar (); if (messageBar == null) { messageBar = new MonoDevelop.Components.InfoBar (MessageType.Warning); messageBar.SetMessageLabel (GettextCatalog.GetString ( "<b>The file \"{0}\" has been changed outside of {1}.</b>\n" + "Do you want to keep your changes, or reload the file from disk?", EllipsizeMiddle (Document.FileName, 50), BrandingService.ApplicationName)); var b1 = new Button (GettextCatalog.GetString ("_Reload from disk")); b1.Image = ImageService.GetImage (Gtk.Stock.Refresh, IconSize.Button); b1.Clicked += delegate { Reload (); view.TextEditor.GrabFocus (); }; messageBar.ActionArea.Add (b1); var b2 = new Button (GettextCatalog.GetString ("_Keep changes")); b2.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b2.Clicked += delegate { RemoveMessageBar (); view.LastSaveTimeUtc = System.IO.File.GetLastWriteTimeUtc (view.ContentName); view.WorkbenchWindow.ShowNotification = false; }; messageBar.ActionArea.Add (b2); if (multiple) { var b3 = new Button (GettextCatalog.GetString ("_Reload all")); b3.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b3.Clicked += delegate { FileRegistry.ReloadAllChangedFiles (); }; messageBar.ActionArea.Add (b3); var b4 = new Button (GettextCatalog.GetString ("_Ignore all")); b4.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b4.Clicked += delegate { FileRegistry.IgnoreAllChangedFiles (); }; messageBar.ActionArea.Add (b4); } } view.IsDirty = true; view.WarnOverwrite = true; vbox.PackStart (messageBar, false, false, CHILD_PADDING); vbox.ReorderChild (messageBar, 0); messageBar.ShowAll (); messageBar.QueueDraw (); view.WorkbenchWindow.ShowNotification = true; }
public void ShowAutoSaveWarning (string fileName) { RemoveMessageBar (); TextEditor.Visible = false; if (messageBar == null) { messageBar = new MonoDevelop.Components.InfoBar (MessageType.Warning); messageBar.SetMessageLabel (BrandingService.BrandApplicationName (GettextCatalog.GetString ( "<b>An autosave file has been found for this file.</b>\n" + "This could mean that another instance of MonoDevelop is editing this " + "file, or that MonoDevelop crashed with unsaved changes.\n\n" + "Do you want to use the original file, or load from the autosave file?"))); Button b1 = new Button (GettextCatalog.GetString("_Use original file")); b1.Image = ImageService.GetImage (Gtk.Stock.Refresh, IconSize.Button); b1.Clicked += delegate { try { AutoSave.RemoveAutoSaveFile (fileName); TextEditor.GrabFocus (); view.Load (fileName); view.WorkbenchWindow.Document.ReparseDocument (); } catch (Exception ex) { MessageService.ShowException (ex, "Could not remove the autosave file."); } finally { RemoveMessageBar (); } }; messageBar.ActionArea.Add (b1); Button b2 = new Button (GettextCatalog.GetString("_Load from autosave")); b2.Image = ImageService.GetImage (Gtk.Stock.RevertToSaved, IconSize.Button); b2.Clicked += delegate { try { string content = AutoSave.LoadAutoSave (fileName); AutoSave.RemoveAutoSaveFile (fileName); TextEditor.GrabFocus (); view.Load (fileName); view.ReplaceContent (fileName, content, view.SourceEncoding); view.WorkbenchWindow.Document.ReparseDocument (); view.IsDirty = true; } catch (Exception ex) { MessageService.ShowException (ex, "Could not remove the autosave file."); } finally { RemoveMessageBar (); } }; messageBar.ActionArea.Add (b2); } view.IsDirty = true; view.WarnOverwrite = true; vbox.PackStart (messageBar, false, false, CHILD_PADDING); vbox.ReorderChild (messageBar, 0); messageBar.ShowAll (); messageBar.QueueDraw (); // view.WorkbenchWindow.ShowNotification = true; }
public void ShowFileChangedWarning () { RemoveMessageBar (); if (messageBar == null) { messageBar = new MonoDevelop.Components.InfoBar (MessageType.Warning); messageBar.SetMessageLabel (GettextCatalog.GetString ( "<b>The file \"{0}\" has been changed outside of MonoDevelop.</b>\n" + "Do you want to keep your changes, or reload the file from disk?", EllipsizeMiddle (Document.FileName, 50))); Button b1 = new Button (GettextCatalog.GetString("_Reload from disk")); b1.Image = ImageService.GetImage (Gtk.Stock.Refresh, IconSize.Button); b1.Clicked += new EventHandler (ClickedReload); messageBar.ActionArea.Add (b1); Button b2 = new Button (GettextCatalog.GetString("_Keep changes")); b2.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b2.Clicked += new EventHandler (ClickedIgnore); messageBar.ActionArea.Add (b2); } view.WarnOverwrite = true; vbox.PackStart (messageBar, false, false, CHILD_PADDING); vbox.ReorderChild (messageBar, 0); messageBar.ShowAll (); messageBar.QueueDraw (); view.WorkbenchWindow.ShowNotification = true; }
void ShowIncorretEolMarkers (string fileName, bool multiple) { RemoveMessageBar (); if (messageBar == null) { messageBar = new MonoDevelop.Components.InfoBar (MessageType.Warning); messageBar.SetMessageLabel (GettextCatalog.GetString ( "<b>The file \"{0}\" has line endings which differ from the policy settings.</b>\n" + "Do you want to convert the line endings?", EllipsizeMiddle (Document.FileName, 50))); Button b1 = new Button (GettextCatalog.GetString ("_Convert")); b1.Image = ImageService.GetImage (Gtk.Stock.Refresh, IconSize.Button); b1.Clicked += delegate(object sender, EventArgs e) { ConvertLineEndings (); view.WorkbenchWindow.ShowNotification = false; RemoveMessageBar (); view.Save (fileName, view.SourceEncoding); }; messageBar.ActionArea.Add (b1); Button b2 = new Button (GettextCatalog.GetString ("_Keep line endings")); b2.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b2.Clicked += delegate(object sender, EventArgs e) { UseIncorrectMarkers = true; view.WorkbenchWindow.ShowNotification = false; RemoveMessageBar (); view.Save (fileName, view.SourceEncoding); }; messageBar.ActionArea.Add (b2); if (multiple) { var b3 = new Button (GettextCatalog.GetString ("_Convert all files")); b3.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b3.Clicked += delegate { FileRegistry.ConvertLineEndingsInAllFiles (); }; messageBar.ActionArea.Add (b3); var b4 = new Button (GettextCatalog.GetString ("_Keep in all files")); b4.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b4.Clicked += delegate { FileRegistry.IgnoreLineEndingsInAllFiles (); }; messageBar.ActionArea.Add (b4); } } vbox.PackStart (messageBar, false, false, CHILD_PADDING); vbox.ReorderChild (messageBar, 0); messageBar.ShowAll (); messageBar.QueueDraw (); view.WorkbenchWindow.ShowNotification = true; // Ensure that one file with incorret EOL markers is shown. var currentView = IdeApp.Workbench.ActiveDocument.PrimaryView as SourceEditorView; if (currentView == null || !currentView.IsDirty || !currentView.SourceEditorWidget.HasIncorrectEolMarker || currentView.SourceEditorWidget.UseIncorrectMarkers) view.WorkbenchWindow.SelectWindow (); }
void ShowIncorretEolMarkers (string fileName, string encoding) { RemoveMessageBar (); if (messageBar == null) { messageBar = new MonoDevelop.Components.InfoBar (MessageType.Warning); messageBar.SetMessageLabel (GettextCatalog.GetString ( "<b>The file \"{0}\" has line endings which differ from the policy settings.</b>\n" + "Do you want to convert the line endings?", EllipsizeMiddle (Document.FileName, 50))); Button b1 = new Button (GettextCatalog.GetString("_Convert")); b1.Image = ImageService.GetImage (Gtk.Stock.Refresh, IconSize.Button); b1.Clicked += delegate(object sender, EventArgs e) { try { ConvertLineEndings (); view.Save (fileName, encoding); } finally { RemoveMessageBar (); view.WorkbenchWindow.ShowNotification = false; } }; messageBar.ActionArea.Add (b1); Button b2 = new Button (GettextCatalog.GetString("_Keep changes")); b2.Image = ImageService.GetImage (Gtk.Stock.Cancel, IconSize.Button); b2.Clicked += delegate(object sender, EventArgs e) { try { useIncorrectMarkers = true; view.Save (fileName, encoding); } finally { RemoveMessageBar (); view.WorkbenchWindow.ShowNotification = false; } }; messageBar.ActionArea.Add (b2); } vbox.PackStart (messageBar, false, false, CHILD_PADDING); vbox.ReorderChild (messageBar, 0); messageBar.ShowAll (); messageBar.QueueDraw (); view.WorkbenchWindow.ShowNotification = true; }
public void RemoveMessageBar () { if (messageBar != null) { if (messageBar.Parent == vbox) vbox.Remove (messageBar); messageBar.Destroy (); messageBar = null; } if (!TextEditor.Visible) TextEditor.Visible = true; if (incorrectEolMessage != null) { RemoveOverlay (incorrectEolMessage); incorrectEolMessage = null; } }