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:
authorCarlos Alberto Cortez <calberto.cortez@gmail.com>2011-06-03 07:45:43 +0400
committerCarlos Alberto Cortez <calberto.cortez@gmail.com>2011-06-03 08:13:43 +0400
commit174faf12044dc7de421ff1c86890a9d35ca8f737 (patch)
treebc04356baeaf7cead89bb080b562ffd7d734c20d /main/src/addins/WindowsPlatform
parent3ed8baa0baa9fb8a3022dbf10769e05756725f44 (diff)
[Windows] Set the filter in the file dialogs.
Diffstat (limited to 'main/src/addins/WindowsPlatform')
-rw-r--r--main/src/addins/WindowsPlatform/SelectFileDialogHandler.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/main/src/addins/WindowsPlatform/SelectFileDialogHandler.cs b/main/src/addins/WindowsPlatform/SelectFileDialogHandler.cs
index 7e0540088f..d9905dcc62 100644
--- a/main/src/addins/WindowsPlatform/SelectFileDialogHandler.cs
+++ b/main/src/addins/WindowsPlatform/SelectFileDialogHandler.cs
@@ -48,6 +48,9 @@ namespace MonoDevelop.Platform
dialog.Title = data.Title;
dialog.AddExtension = true;
+ dialog.Filter = GetFilterFromData (data.Filters);
+ dialog.FilterIndex = data.DefaultFilter == null ? 0 : data.Filters.IndexOf (data.DefaultFilter);
+
dialog.InitialDirectory = data.CurrentFolder;
if (!string.IsNullOrEmpty (data.InitialFileName))
dialog.FileName = data.InitialFileName;
@@ -56,5 +59,28 @@ namespace MonoDevelop.Platform
if (openDialog != null)
openDialog.Multiselect = data.SelectMultiple;
}
+
+ static string GetFilterFromData (IList<SelectFileDialogFilter> filters)
+ {
+ if (filters == null || filters.Count == 0)
+ return null;
+
+ var sb = new StringBuilder ();
+ foreach (var f in filters) {
+ if (sb.Length > 0)
+ sb.Append ('|');
+
+ sb.Append (f.Name);
+ sb.Append ('|');
+ for (int i = 0; i < f.Patterns.Count; i++) {
+ if (i > 0)
+ sb.Append (';');
+
+ sb.Append (f.Patterns [i]);
+ }
+ }
+
+ return sb.ToString ();
+ }
}
}