FindInFilesDialog (bool showReplace)
{
Build ();
properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
SetButtonIcon (toggleReplaceInFiles, "gtk-find-and-replace");
SetButtonIcon (toggleFindInFiles, "gtk-find");
TransientFor = IdeApp.Workbench.RootWindow;
toggleReplaceInFiles.Active = showReplace;
toggleFindInFiles.Active = !showReplace;
toggleFindInFiles.Toggled += delegate {
if (toggleFindInFiles.Active) {
Title = GettextCatalog.GetString ("Find in Files");
HideReplaceUI ();
}
};
toggleReplaceInFiles.Toggled += delegate {
if (toggleReplaceInFiles.Active) {
Title = GettextCatalog.GetString ("Replace in Files");
ShowReplaceUI ();
}
};
buttonSearch.Clicked += HandleSearchClicked;
buttonClose.Clicked += (sender, e) => Destroy ();
DeleteEvent += (o, args) => Destroy ();
buttonSearch.GrabDefault ();
buttonStop.Clicked += ButtonStopClicked;
var scopeStore = new ListStore (typeof(string));
scopeStore.AppendValues (GettextCatalog.GetString ("Whole solution"));
scopeStore.AppendValues (GettextCatalog.GetString ("Current project"));
scopeStore.AppendValues (GettextCatalog.GetString ("All open files"));
scopeStore.AppendValues (GettextCatalog.GetString ("Directories"));
scopeStore.AppendValues (GettextCatalog.GetString ("Current document"));
scopeStore.AppendValues (GettextCatalog.GetString ("Selection"));
comboboxScope.Model = scopeStore;
comboboxScope.Changed += HandleScopeChanged;
InitFromProperties ();
if (showReplace)
toggleReplaceInFiles.Toggle ();
else
toggleFindInFiles.Toggle ();
if (IdeApp.Workbench.ActiveDocument != null) {
var view = IdeApp.Workbench.ActiveDocument.GetContent<ITextBuffer> ();
if (view != null) {
string selectedText = FormatPatternToSelectionOption (view.SelectedText, properties.Get ("RegexSearch", false));
if (!string.IsNullOrEmpty (selectedText)) {
if (selectedText.Any (c => c == '\n' || c == '\r')) {
// comboboxScope.Active = ScopeSelection;
} else {
if (comboboxScope.Active == (int) SearchScope.Selection)
comboboxScope.Active = (int) SearchScope.CurrentDocument;
comboboxentryFind.Entry.Text = selectedText;
}
} else if (comboboxScope.Active == (int) SearchScope.Selection) {
comboboxScope.Active = (int) SearchScope.CurrentDocument;
}
}
}
comboboxentryFind.Entry.SelectRegion (0, comboboxentryFind.ActiveText.Length);
comboboxentryFind.GrabFocus ();
DeleteEvent += delegate { Destroy (); };
UpdateStopButton ();
Child.Show ();
}