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
path: root/main
diff options
context:
space:
mode:
authorMichael Hutchinson <mhutchinson@novell.com>2010-05-26 08:38:41 +0400
committerMichael Hutchinson <mhutchinson@novell.com>2010-05-26 08:38:41 +0400
commitaff4eaad355c3a17d112ae75a0f446f3efe8c24a (patch)
treef0e2ce38db32ab7c017ee3446d4299867c6c9376 /main
parentcaf9a9d46b965d8633efa7f96ad0699be5393cc6 (diff)
* src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs:
* src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs: * src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs: * src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs: * src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs: * src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs: * src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs: Improved the platform dialog abstractions. Unified and tidied code, factored code from OpenFileDialog, improved support for file filters. * src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs: Use platform dialog for OpenFile. svn path=/trunk/monodevelop/; revision=157929
Diffstat (limited to 'main')
-rw-r--r--main/src/core/MonoDevelop.Ide/ChangeLog16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs141
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs54
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs97
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs35
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs9
9 files changed, 227 insertions, 137 deletions
diff --git a/main/src/core/MonoDevelop.Ide/ChangeLog b/main/src/core/MonoDevelop.Ide/ChangeLog
index 8826c34ac5..7ed57ed93e 100644
--- a/main/src/core/MonoDevelop.Ide/ChangeLog
+++ b/main/src/core/MonoDevelop.Ide/ChangeLog
@@ -1,3 +1,19 @@
+2010-05-26 Michael Hutchinson <mhutchinson@novell.com>
+
+ * MonoDevelop.Ide.Commands/FileCommands.cs:
+ * MonoDevelop.Ide.Projects/AddFileDialog.cs:
+ * MonoDevelop.Components/SelectFileDialog.cs:
+ * MonoDevelop.Components/SelectFolderDialog.cs:
+ * MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs:
+ * MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs:
+ * MonoDevelop.Components.Extensions/ISelectFileDialog.cs:
+ Improved the platform dialog abstractions. Unified and
+ tidied code, factored code from OpenFileDialog, improved
+ support for file filters.
+
+ * MonoDevelop.Ide.Gui/Document.cs: Use platform dialog for
+ OpenFile.
+
2010-05-26 Mike Krüger <mkrueger@novell.com>
* MonoDevelop.Ide.NavigateToDialog/SearchResult.cs:
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs
index 507366f902..66a376b8bf 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs
@@ -48,13 +48,14 @@ namespace MonoDevelop.Components.Extensions
{
List<SelectFileDialogFilter> filters = new List<SelectFileDialogFilter> ();
public Gtk.FileChooserAction Action { get; set; }
- public List<SelectFileDialogFilter> Filters { get { return filters; } }
+ public IList<SelectFileDialogFilter> Filters { get { return filters; } }
public FilePath CurrentFolder { get; set; }
public bool SelectMultiple { get; set; }
public FilePath[] SelectedFiles { get; set; }
- public FilePath InitialFileName { get; set; }
- }
-
+ public string InitialFileName { get; set; }
+ public SelectFileDialogFilter DefaultFilter { get; set; }
+ }
+
/// <summary>
/// Filter option to be displayed in file selector dialogs.
/// </summary>
@@ -129,49 +130,44 @@ namespace MonoDevelop.Components.Extensions
set { data.InitialFileName = value; }
}
- public void AddFilter (string label, params string[] patterns)
- {
- AddFilter (new SelectFileDialogFilter (label, patterns));
+ /// <summary>
+ /// File filters that allow the user to choose the kinds of files the dialog displays.
+ /// </summary>
+ public IList<SelectFileDialogFilter> Filters {
+ get { return data.Filters; }
}
- public void AddFilter (SelectFileDialogFilter filter)
- {
- data.Filters.Add (filter);
+ /// <summary>
+ /// The default file filter. If there is only one, the user will not have a choice of file types.
+ /// </summary>
+ public SelectFileDialogFilter DefaultFilter {
+ get { return data.DefaultFilter; }
+ set { data.DefaultFilter = value; }
}
- public void AddAllFilesFilter ()
+ #region File filter utilities
+
+ public SelectFileDialogFilter AddFilter (string label, params string[] patterns)
{
- AddFilter (GettextCatalog.GetString ("All Files"), "*.*");
+ return AddFilter (new SelectFileDialogFilter (label, patterns));
}
- /// <summary>
- /// Runs the default implementation of the dialog.
- /// </summary>
- protected bool RunDefault ()
+ public SelectFileDialogFilter AddFilter (SelectFileDialogFilter filter)
{
- FileSelector fdiag = new FileSelector (data.Title, data.Action) {
- SelectMultiple = data.SelectMultiple,
- TransientFor = data.TransientFor,
- };
- if (!data.CurrentFolder.IsNullOrEmpty)
- fdiag.SetCurrentFolder (data.CurrentFolder);
- if (!data.InitialFileName.IsNullOrEmpty)
- fdiag.SetFilename (data.InitialFileName);
-
- foreach (var filter in GetGtkFileFilters ())
- fdiag.AddFilter (filter);
-
- try {
- int result = MessageService.RunCustomDialog (fdiag, data.TransientFor ?? MessageService.RootWindow);
- data.SelectedFiles = fdiag.Filenames.ToFilePathArray ();
- return result == (int) Gtk.ResponseType.Ok;
- } finally {
- fdiag.Destroy ();
- }
+ data.Filters.Add (filter);
+ return filter;
}
- protected IEnumerable<Gtk.FileFilter> GetGtkFileFilters ()
+ public SelectFileDialogFilter AddAllFilesFilter ()
{
+ return AddFilter (GettextCatalog.GetString ("All Files"), "*");
+ }
+
+ void SetGtkFileFilters (FileSelector fdiag)
+ {
+ var list = new List<Gtk.FileFilter> ();
+ Gtk.FileFilter defaultGtkFilter = null;
+
foreach (var filter in data.Filters) {
var gf = new Gtk.FileFilter ();
if (!string.IsNullOrEmpty (filter.Name))
@@ -182,7 +178,78 @@ namespace MonoDevelop.Components.Extensions
if (filter.MimeTypes != null)
foreach (var mimetype in filter.MimeTypes)
gf.AddMimeType (mimetype);
- yield return gf;
+ list.Add (gf);
+ if (filter == DefaultFilter)
+ defaultGtkFilter = gf;
+ }
+
+ foreach (var filter in list)
+ fdiag.AddFilter (filter);
+
+ if (defaultGtkFilter != null)
+ fdiag.Filter = defaultGtkFilter;
+
+ fdiag.Destroyed += CaptureDefaultFilter;
+ }
+
+ [GLib.ConnectBefore]
+ void CaptureDefaultFilter (object sender, EventArgs e)
+ {
+
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Utility method to populate a GTK FileSelector from the data properties.
+ /// </summary>
+ internal void SetDefaultProperties (FileSelector fdiag)
+ {
+ fdiag.Title = Title;
+ fdiag.Action = Action;
+ fdiag.LocalOnly = true;
+ fdiag.SelectMultiple = SelectMultiple;
+ fdiag.TransientFor = TransientFor;
+
+ if (!CurrentFolder.IsNullOrEmpty)
+ fdiag.SetCurrentFolder (CurrentFolder);
+ if (!string.IsNullOrEmpty (InitialFileName))
+ fdiag.CurrentName = InitialFileName;
+
+ if (!CurrentFolder.IsNullOrEmpty && !string.IsNullOrEmpty (InitialFileName)) {
+ var checkName = data.CurrentFolder.Combine (InitialFileName);
+ if (System.IO.File.Exists (checkName))
+ fdiag.SetFilename (checkName);
+ }
+
+ SetGtkFileFilters (fdiag);
+ }
+
+ internal void GetDefaultProperties (FileSelector fdiag)
+ {
+ data.SelectedFiles = fdiag.Filenames.ToFilePathArray ();
+ var currentFilter = fdiag.Filter;
+ if (currentFilter != null) {
+ var name = fdiag.Filter.Name;
+ var def = data.Filters.Where (f => f.Name == name).FirstOrDefault ();
+ if (def != null)
+ DefaultFilter = def;
+ }
+ }
+
+ /// <summary>
+ /// Runs the default implementation of the dialog.
+ /// </summary>
+ protected bool RunDefault ()
+ {
+ var fdiag = new FileSelector ();
+ SetDefaultProperties (fdiag);
+ try {
+ int result = MessageService.RunCustomDialog (fdiag, data.TransientFor ?? MessageService.RootWindow);
+ GetDefaultProperties (fdiag);
+ return result == (int) Gtk.ResponseType.Ok;
+ } finally {
+ fdiag.Destroy ();
}
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs
index 5dd33e32d6..624ad5081b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs
@@ -50,6 +50,12 @@ namespace MonoDevelop.Components
Action = action;
}
+ /// <summary>
+ /// Shows the dialog
+ /// </summary>
+ /// <returns>
+ /// True if the user clicked OK.
+ /// </returns>
public bool Run ()
{
if (Handler != null)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs
index 9322a12811..f0e21f59e5 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs
@@ -25,7 +25,9 @@
// THE SOFTWARE.
using System;
-using MonoDevelop.Components.Extensions;
+using MonoDevelop.Components.Extensions;
+using MonoDevelop.Ide;
+using MonoDevelop.Core;
namespace MonoDevelop.Components
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs
index c0b7752a9d..fed2719956 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs
@@ -78,7 +78,7 @@ namespace MonoDevelop.Ide.Commands
{
protected override void Run ()
{
- var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open")) {
+ var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), Gtk.FileChooserAction.Open) {
TransientFor = IdeApp.Workbench.RootWindow,
ShowEncodingSelector = true,
ShowViewerSelector = true,
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs
index a279cffcdb..558df5ca64 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs
@@ -62,50 +62,6 @@ namespace MonoDevelop.Ide.Gui.Dialogs
{
LocalOnly = true;
- ArrayList filters = new ArrayList ();
- filters.AddRange (AddinManager.GetExtensionObjects ("/MonoDevelop/Ide/ProjectFileFilters"));
- try
- {
- filters.AddRange (AddinManager.GetExtensionObjects ("/MonoDevelop/Ide/FileFilters"));
- }
- catch
- {
- //nothing there..
- }
-
- filterPairs = new Hashtable ();
- foreach (string filterStr in filters)
- {
- string[] parts = filterStr.Split ('|');
- Gtk.FileFilter filter = new Gtk.FileFilter ();
- filter.Name = parts[0];
- filterPairs[parts[0]] = parts[1];
- foreach (string ext in parts[1].Split (';'))
- {
- filter.AddPattern (ext);
- }
- AddFilter (filter);
- }
-
- //Add All Files
- Gtk.FileFilter allFilter = new Gtk.FileFilter ();
- allFilter.Name = GettextCatalog.GetString ("All Files");
- allFilter.AddPattern ("*");
- filterPairs[GettextCatalog.GetString ("All Files")] = ("*");
- AddFilter (allFilter);
-
- // Load last used filter
- string lastPattern = (string)PropertyService.Get ("Monodevelop.FileSelector.LastPattern", "*");
- foreach (FileFilter filter in this.Filters)
- {
- string pattern = filterPairs[filter.Name] as string;
- if (! String.IsNullOrEmpty (pattern) && pattern == lastPattern)
- {
- this.Filter = filter;
- break;
- }
- }
-
// Add the text encoding selector
Table table = new Table (2, 2, false);
table.RowSpacing = 6;
@@ -313,16 +269,6 @@ namespace MonoDevelop.Ide.Gui.Dialogs
UpdateExtraWidgets ();
FillViewers ();
}
-
- protected override void OnDestroyed ()
- {
- // Save active filter
- string pattern = filterPairs[this.Filter.Name] as string;
- if (pattern != null)
- PropertyService.Set ("Monodevelop.FileSelector.LastPattern", pattern);
-
- base.OnDestroyed ();
- }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs
index 6df4dd6051..12c855d27d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/OpenFileDialog.cs
@@ -28,6 +28,8 @@ using System;
using MonoDevelop.Core;
using MonoDevelop.Ide.Extensions;
using MonoDevelop.Components.Extensions;
+using System.Collections.Generic;
+using Mono.Addins;
namespace MonoDevelop.Ide.Gui.Dialogs
{
@@ -40,9 +42,14 @@ namespace MonoDevelop.Ide.Gui.Dialogs
{
}
- public OpenFileDialog (string title)
+ public OpenFileDialog (string title) : this (title, Gtk.FileChooserAction.Save)
+ {
+ }
+
+ public OpenFileDialog (string title, Gtk.FileChooserAction action)
{
Title = title;
+ Action = action;
}
/// <summary>
@@ -92,33 +99,32 @@ namespace MonoDevelop.Ide.Gui.Dialogs
public bool Run ()
{
if (Handler != null)
- Handler.Run (data);
+ return Handler.Run (data);
+ else
+ return RunDefault ();
+ }
+
+ bool RunDefault ()
+ {
+ var win = new FileSelectorDialog (Title, Action);
+ win.Encoding = Encoding;
+ win.ShowEncodingSelector = ShowEncodingSelector;
+ win.ShowViewerSelector = ShowViewerSelector;
+
+ //FIXME: should these be optional? they were hardcoded into the dialog - at least they're factored out now
+ AddDefaultFileFilters ();
+ LoadDefaultFilter ();
- var win = new FileSelectorDialog (data.Title, data.Action) {
- Encoding = data.Encoding,
- ShowEncodingSelector = data.ShowEncodingSelector,
- ShowViewerSelector = data.ShowViewerSelector,
- };
- foreach (var filter in GetGtkFileFilters ())
- win.AddFilter (filter);
+ SetDefaultProperties (win);
try {
var result = MessageService.RunCustomDialog (win, TransientFor ?? MessageService.RootWindow);
if (result == (int) Gtk.ResponseType.Ok) {
+ GetDefaultProperties (win);
data.Encoding = win.Encoding;
data.CloseCurrentWorkspace = win.CloseCurrentWorkspace;
- data.SelectedFiles = win.Filenames.ToFilePathArray ();
data.SelectedViewer = win.SelectedViewer;
-
- //handle certain strange cases in the GTK file dialog
- if (string.IsNullOrEmpty (SelectedFile)) {
- if (win.Uri != null)
- MessageService.ShowError (GettextCatalog.GetString ("Only local files can be opened."));
- else
- MessageService.ShowError (GettextCatalog.GetString ("The provided file could not be loaded."));
- return false;
- }
-
+ SaveDefaultFilter ();
return true;
} else
return false;
@@ -126,5 +132,56 @@ namespace MonoDevelop.Ide.Gui.Dialogs
win.Destroy ();
}
}
+
+ /// <summary>
+ /// Adds the default file filters registered by MD core and addins. Includes the All Files filter.
+ /// </summary>
+ void AddDefaultFileFilters ()
+ {
+ foreach (var f in GetDefaultFilters ())
+ data.Filters.Add (f);
+ AddAllFilesFilter ();
+ }
+
+ //loads last default filter from MD prefs
+ void LoadDefaultFilter ()
+ {
+ // Load last used filter pattern
+ var lastPattern = PropertyService.Get ("Monodevelop.FileSelector.LastPattern", "*");
+ foreach (var filter in Filters) {
+ if (filter.Patterns != null && filter.Patterns.Contains (lastPattern)) {
+ DefaultFilter = filter;
+ break;
+ }
+ }
+ }
+
+ //saves last default filter to MD prefs
+ void SaveDefaultFilter ()
+ {
+ // Save active filter
+ //it may be null if e.g. SetSelectedFile was used
+ if (DefaultFilter != null && DefaultFilter.Patterns != null && DefaultFilter.Patterns.Count > 0)
+ PropertyService.Set ("Monodevelop.FileSelector.LastPattern", DefaultFilter.Patterns[0]);
+ }
+
+ static IEnumerable<SelectFileDialogFilter> GetDefaultFilters ()
+ {
+ foreach (var f in ParseFilters (AddinManager.GetExtensionObjects ("/MonoDevelop/Ide/ProjectFileFilters")))
+ yield return f;
+ foreach (var f in ParseFilters (AddinManager.GetExtensionObjects ("/MonoDevelop/Ide/FileFilters")))
+ yield return f;
+ }
+
+ static IEnumerable<SelectFileDialogFilter> ParseFilters (System.Collections.IEnumerable filterStrings)
+ {
+ if (filterStrings == null)
+ yield break;
+ foreach (string filterStr in filterStrings) {
+ var parts = filterStr.Split ('|');
+ var f = new SelectFileDialogFilter (parts[0], parts[1].Split (';'));
+ yield return f;
+ }
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
index 13f8f70772..fc74a59e59 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
@@ -274,25 +274,24 @@ namespace MonoDevelop.Ide.Gui
}
if (filename == null) {
- FileSelectorDialog fdiag = new FileSelectorDialog (GettextCatalog.GetString ("Save as..."), Gtk.FileChooserAction.Save);
- try {
- if (Window.ViewContent.IsUntitled)
- fdiag.CurrentName = Window.ViewContent.UntitledName;
- else {
- fdiag.SetCurrentFolder (Path.GetDirectoryName (Window.ViewContent.ContentName));
- fdiag.CurrentName = Path.GetFileName (Window.ViewContent.ContentName);
- }
- fdiag.Encoding = encoding;
- fdiag.ShowEncodingSelector = (tbuffer != null);
- fdiag.TransientFor = IdeApp.Workbench.RootWindow;
- int response = fdiag.Run ();
- filename = fdiag.Filename;
- encoding = fdiag.Encoding;
- if (response != (int)Gtk.ResponseType.Ok)
- return;
- } finally {
- fdiag.Destroy ();
+ var dlg = new OpenFileDialog (GettextCatalog.GetString ("Save as..."), FileChooserAction.Save) {
+ TransientFor = IdeApp.Workbench.RootWindow,
+ Encoding = encoding,
+ ShowEncodingSelector = (tbuffer != null),
+ };
+
+ if (Window.ViewContent.IsUntitled)
+ dlg.InitialFileName = Window.ViewContent.UntitledName;
+ else {
+ dlg.CurrentFolder = Path.GetDirectoryName (Window.ViewContent.ContentName);
+ dlg.InitialFileName = Path.GetFileName (Window.ViewContent.ContentName);
}
+
+ if (!dlg.Run ())
+ return;
+
+ filename = dlg.SelectedFile;
+ encoding = dlg.Encoding;
}
if (!FileService.IsValidPath (filename)) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs
index 4fe47e8428..150d92ea08 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs
@@ -42,6 +42,7 @@ namespace MonoDevelop.Ide.Projects
public AddFileDialog (string title)
{
Title = title;
+ Action = FileChooserAction.Open;
data.SelectMultiple = true;
}
@@ -72,9 +73,6 @@ namespace MonoDevelop.Ide.Projects
return Handler.Run (data);
FileSelector fdiag = new FileSelector (data.Title);
- fdiag.SetCurrentFolder (data.CurrentFolder);
- fdiag.SelectMultiple = data.SelectMultiple;
- fdiag.TransientFor = data.TransientFor;
//add a combo that can be used to override the default build action
ComboBox combo = new ComboBox (data.BuildActions ?? new string[0]);
@@ -93,14 +91,13 @@ namespace MonoDevelop.Ide.Projects
box.PackStart (combo, false, false, 4);
box.ShowAll ();
- foreach (var filter in GetGtkFileFilters ())
- fdiag.AddFilter (filter);
+ SetDefaultProperties (fdiag);
int result;
try {
result = MessageService.RunCustomDialog (fdiag, data.TransientFor ?? MessageService.RootWindow);
- data.SelectedFiles = fdiag.Filenames.ToFilePathArray ();
+ GetDefaultProperties (fdiag);
if (check.Active)
data.OverrideAction = combo.ActiveText;
else