diff options
author | Carlos Alberto Cortez <calberto.cortez@gmail.com> | 2011-06-03 07:45:43 +0400 |
---|---|---|
committer | Carlos Alberto Cortez <calberto.cortez@gmail.com> | 2011-06-03 08:13:43 +0400 |
commit | 174faf12044dc7de421ff1c86890a9d35ca8f737 (patch) | |
tree | bc04356baeaf7cead89bb080b562ffd7d734c20d /main/src/addins/WindowsPlatform | |
parent | 3ed8baa0baa9fb8a3022dbf10769e05756725f44 (diff) |
[Windows] Set the filter in the file dialogs.
Diffstat (limited to 'main/src/addins/WindowsPlatform')
-rw-r--r-- | main/src/addins/WindowsPlatform/SelectFileDialogHandler.cs | 26 |
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 ();
+ }
}
}
|