Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2010-01-19 16:45:19 +0300
committerMike Krüger <mkrueger@novell.com>2010-01-19 16:45:19 +0300
commit48ae2774708c1d181e2b8a19748662b25ba14bf5 (patch)
treec5b2fed02d330e2fbc9774b06c2ab01aae63fcc1 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles
parent3c69b2f631e0332d63fde831dbb29e63a498af75 (diff)
* gtk-gui/gui.stetic:
* gtk-gui/generated.cs: * MonoDevelop.Ide.FindInFiles/Scope.cs: * MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs: * gtk-gui/MonoDevelop.Ide.FindInFiles.FindInFilesDialog.cs: * gtk-gui/MonoDevelop.Ide.FindInFiles.SearchResultWidget.cs: Implemented 'Bug 552017 - Saner and new default options for Find in Files -> Directories dialog'. svn path=/trunk/monodevelop/; revision=149815
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs43
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs28
2 files changed, 61 insertions, 10 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
index 78b7035317..3cf0f2a441 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
@@ -102,7 +102,7 @@ namespace MonoDevelop.Ide.FindInFiles
childCombo.TopAttach = 3;
childCombo.BottomAttach = 4;
- childCombo = (Gtk.Table.TableChild)this.tableFindAndReplace[this.comboboxentryFileMask];
+ childCombo = (Gtk.Table.TableChild)this.tableFindAndReplace[this.searchentry1];
childCombo.TopAttach = 3;
childCombo.BottomAttach = 4;
@@ -151,6 +151,25 @@ namespace MonoDevelop.Ide.FindInFiles
Hidden += delegate { Destroy (); };
UpdateStopButton ();
+ this.searchentry1.Ready = true;
+ this.searchentry1.Visible = true;
+ this.searchentry1.IsCheckMenu = true;
+
+ Properties properties = (Properties)PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
+
+ CheckMenuItem checkMenuItem = this.searchentry1.AddFilterOption (0, GettextCatalog.GetString ("Include binary files"));
+ checkMenuItem.DrawAsRadio = false;
+ checkMenuItem.Active = properties.Get ("IncludeBinaryFiles", false);
+ checkMenuItem.Toggled += delegate {
+ properties.Set ("IncludeBinaryFiles", checkMenuItem.Active);
+ };
+
+ CheckMenuItem checkMenuItem1 = this.searchentry1.AddFilterOption (1, GettextCatalog.GetString ("Include hidden files and directories"));
+ checkMenuItem1.DrawAsRadio = false;
+ checkMenuItem1.Active = properties.Get ("IncludeHiddenFiles", false);
+ checkMenuItem1.Toggled += delegate {
+ properties.Set ("IncludeHiddenFiles", checkMenuItem1.Active);
+ };
}
public override void Destroy ()
@@ -194,7 +213,7 @@ namespace MonoDevelop.Ide.FindInFiles
childCombo.TopAttach = tableFindAndReplace.NRows - 3;
childCombo.BottomAttach = tableFindAndReplace.NRows - 2;
- childCombo = (Gtk.Table.TableChild)this.tableFindAndReplace[this.comboboxentryFileMask];
+ childCombo = (Gtk.Table.TableChild)this.tableFindAndReplace[this.searchentry1];
childCombo.TopAttach = tableFindAndReplace.NRows - 3;
childCombo.BottomAttach = tableFindAndReplace.NRows - 2;
}
@@ -259,7 +278,7 @@ namespace MonoDevelop.Ide.FindInFiles
childCombo.TopAttach = tableFindAndReplace.NRows - 1;
childCombo.BottomAttach = tableFindAndReplace.NRows;
- childCombo = (Gtk.Table.TableChild)this.tableFindAndReplace[this.comboboxentryFileMask];
+ childCombo = (Gtk.Table.TableChild)this.tableFindAndReplace[this.searchentry1];
childCombo.TopAttach = tableFindAndReplace.NRows - 1;
childCombo.BottomAttach = tableFindAndReplace.NRows;
}
@@ -318,8 +337,9 @@ namespace MonoDevelop.Ide.FindInFiles
LoadHistory ("MonoDevelop.FindReplaceDialogs.FindHistory", comboboxentryFind);
if (showReplace)
LoadHistory ("MonoDevelop.FindReplaceDialogs.ReplaceHistory", comboboxentryReplace);
+ searchentry1.Query = properties.Get ("MonoDevelop.FindReplaceDialogs.FileMask", "");
// LoadHistory ("MonoDevelop.FindReplaceDialogs.PathHistory", comboboxentryPath);
- LoadHistory ("MonoDevelop.FindReplaceDialogs.FileMaskHistory", comboboxentryFileMask);
+// LoadHistory ("MonoDevelop.FindReplaceDialogs.FileMaskHistory", comboboxentryFileMask);
}
static void LoadHistory (string propertyName, ComboBoxEntry entry)
@@ -357,8 +377,9 @@ namespace MonoDevelop.Ide.FindInFiles
StoreHistory ("MonoDevelop.FindReplaceDialogs.FindHistory", comboboxentryFind);
if (showReplace)
StoreHistory ("MonoDevelop.FindReplaceDialogs.ReplaceHistory", comboboxentryReplace);
+ properties.Set ("MonoDevelop.FindReplaceDialogs.FileMask", searchentry1.Query);
// StoreHistory ("MonoDevelop.FindReplaceDialogs.PathHistory", comboboxentryPath);
- StoreHistory ("MonoDevelop.FindReplaceDialogs.FileMaskHistory", comboboxentryFileMask);
+ //StoreHistory ("MonoDevelop.FindReplaceDialogs.FileMaskHistory", comboboxentryFileMask);
}
static void StoreHistory (string propertyName, Gtk.ComboBoxEntry comboBox)
@@ -434,8 +455,14 @@ namespace MonoDevelop.Ide.FindInFiles
return new WholeSolutionScope ();
case ScopeAllOpenFiles:
return new AllOpenFilesScope ();
- case ScopeDirectories:
- return new DirectoryScope (comboboxentryPath.Entry.Text, checkbuttonRecursively.Active);
+ case ScopeDirectories:
+ DirectoryScope directoryScope = new DirectoryScope (comboboxentryPath.Entry.Text, checkbuttonRecursively.Active);
+
+ Properties properties = (Properties)PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
+ directoryScope.IncludeBinaryFiles = properties.Get ("IncludeBinaryFiles", false);
+ directoryScope.IncludeHiddenFiles = properties.Get ("IncludeHiddenFiles", false);
+
+ return directoryScope;
}
throw new ApplicationException ("Unknown scope:" + comboboxScope.Active);
}
@@ -443,7 +470,7 @@ namespace MonoDevelop.Ide.FindInFiles
FilterOptions GetFilterOptions ()
{
FilterOptions result = new FilterOptions ();
- result.FileMask = !string.IsNullOrEmpty (comboboxentryFileMask.Entry.Text) ? comboboxentryFileMask.Entry.Text : "*";
+ result.FileMask = !string.IsNullOrEmpty (searchentry1.Query) ? searchentry1.Query : "*";
result.CaseSensitive = checkbuttonCaseSensitive.Active;
result.RegexSearch = checkbuttonRegexSearch.Active;
result.WholeWordsOnly = checkbuttonWholeWordsOnly.Active;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs
index d7fcc0b53a..0edea417c9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/Scope.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
using MonoDevelop.Projects;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Core;
+using MonoDevelop.Core.Gui;
namespace MonoDevelop.Ide.FindInFiles
@@ -193,6 +194,16 @@ namespace MonoDevelop.Ide.FindInFiles
string path;
bool recurse;
+ public bool IncludeBinaryFiles {
+ get;
+ set;
+ }
+
+ public bool IncludeHiddenFiles {
+ get;
+ set;
+ }
+
public override int GetTotalWork (FilterOptions filterOptions)
{
return GetFileNames (path, recurse, filterOptions).Count ();
@@ -204,7 +215,16 @@ namespace MonoDevelop.Ide.FindInFiles
this.recurse = recurse;
}
- static IEnumerable<string> GetFileNames (string path, bool recurse, FilterOptions filterOptions)
+ static bool MimeTypeIsBinary (string mimeType)
+ {
+ if (string.IsNullOrEmpty (mimeType))
+ return false;
+ return !(mimeType.StartsWith ("text/") ||
+ mimeType == "image/x-xbitmap" ||
+ mimeType == "image/x-xpixmap");
+ }
+
+ IEnumerable<string> GetFileNames (string path, bool recurse, FilterOptions filterOptions)
{
foreach (string fileMask in filterOptions.FileMask.Split (',', ';')) {
string[] files;
@@ -216,12 +236,16 @@ namespace MonoDevelop.Ide.FindInFiles
}
foreach (string fileName in files) {
+ if (fileName.StartsWith (".") && !IncludeHiddenFiles)
+ continue;
+ if (!IncludeBinaryFiles && MimeTypeIsBinary (DesktopService.GetMimeTypeForUri (fileName)))
+ continue;
yield return fileName;
}
if (recurse) {
foreach (string directoryName in Directory.GetDirectories (path)) {
- if (directoryName.StartsWith ("."))
+ if (directoryName.StartsWith (".") && !IncludeHiddenFiles)
continue;
foreach (string fileName in GetFileNames (Path.Combine (path, directoryName), recurse, filterOptions)) {
yield return fileName;