diff options
author | Jeffrey Stedfast <jeff@xamarin.com> | 2015-11-18 01:27:33 +0300 |
---|---|---|
committer | Jeffrey Stedfast <jeff@xamarin.com> | 2015-11-18 01:27:33 +0300 |
commit | 70e242e33db5d64d51ce6b15ab460b9dc8107cb3 (patch) | |
tree | 7ddecbbb35eaca2c6dc15f5a70f16be3d8e3a096 | |
parent | 421656d1a776f1036be01a9ab11071c61516ec04 (diff) |
[core] Allow SelectFileDialog to select files & directories at the same time
23 files changed, 99 insertions, 68 deletions
diff --git a/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs b/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs index 1b8fa5ed30..f230d78fb2 100644 --- a/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs +++ b/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs @@ -36,6 +36,7 @@ using Mono.Addins; using MonoDevelop.Core; using MonoDevelop.Ide.Gui.Dialogs; +using MonoDevelop.Components.Extensions; namespace CBinding { @@ -173,7 +174,7 @@ namespace CBinding protected virtual void OnCtagsBrowseClicked (object sender, System.EventArgs e) { - OpenFileDialog dialog = new OpenFileDialog (GettextCatalog.GetString ("Choose ctags executable"), Gtk.FileChooserAction.Open); + OpenFileDialog dialog = new OpenFileDialog (GettextCatalog.GetString ("Choose ctags executable"), SelectFileDialogAction.Open); if (dialog.Run ()) ctagsEntry.Text = dialog.SelectedFile; } diff --git a/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs b/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs index 71d22d6965..704cd847fb 100644 --- a/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs +++ b/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs @@ -25,9 +25,9 @@ // THE SOFTWARE. using System; -using System.Collections.Generic; using System.Linq; using System.Text; +using System.Collections.Generic; using AppKit; @@ -36,7 +36,7 @@ using MonoDevelop.Ide; using MonoDevelop.Ide.Extensions; using MonoDevelop.Ide.Gui; using MonoDevelop.MacInterop; - +using MonoDevelop.Components.Extensions; namespace MonoDevelop.MacIntegration { @@ -47,15 +47,12 @@ namespace MonoDevelop.MacIntegration NSSavePanel panel = null; try { - bool directoryMode = data.Action != Gtk.FileChooserAction.Open - && data.Action != Gtk.FileChooserAction.Save; - - if (data.Action == Gtk.FileChooserAction.Save) { + if (data.Action == SelectFileDialogAction.Save) { panel = new NSSavePanel (); } else { panel = new NSOpenPanel { - CanChooseDirectories = directoryMode, - CanChooseFiles = !directoryMode, + CanChooseDirectories = (data.Action & SelectFileDialogAction.FolderFlags) != 0, + CanChooseFiles = (data.Action & SelectFileDialogAction.FileFlags) != 0, }; } @@ -70,7 +67,7 @@ namespace MonoDevelop.MacIntegration List<FileViewer> currentViewers = null; var labels = new List<MDAlignment> (); - if (!directoryMode) { + if ((data.Action & SelectFileDialogAction.FileFlags) != 0) { var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup (data, panel); if (filterPopup != null) { @@ -84,7 +81,7 @@ namespace MonoDevelop.MacIntegration } if (data.ShowEncodingSelector) { - encodingSelector = new SelectEncodingPopUpButton (data.Action != Gtk.FileChooserAction.Save); + encodingSelector = new SelectEncodingPopUpButton (data.Action != SelectFileDialogAction.Save); encodingSelector.SelectedEncodingId = data.Encoding != null ? data.Encoding.CodePage : 0; var encodingLabel = new MDAlignment (new MDLabel (GettextCatalog.GetString ("Encoding:")), true); diff --git a/main/src/addins/MacPlatform/Dialogs/MacSelectFileDialogHandler.cs b/main/src/addins/MacPlatform/Dialogs/MacSelectFileDialogHandler.cs index 3cd37b2b40..eba974ee8c 100644 --- a/main/src/addins/MacPlatform/Dialogs/MacSelectFileDialogHandler.cs +++ b/main/src/addins/MacPlatform/Dialogs/MacSelectFileDialogHandler.cs @@ -48,21 +48,19 @@ namespace MonoDevelop.MacIntegration NSSavePanel panel = null; try { - bool directoryMode = data.Action != Gtk.FileChooserAction.Open; - - if (data.Action == Gtk.FileChooserAction.Save) { + if (data.Action == SelectFileDialogAction.Save) { panel = new NSSavePanel (); } else { panel = new NSOpenPanel { - CanChooseDirectories = directoryMode, - CanChooseFiles = !directoryMode, + CanChooseDirectories = (data.Action & SelectFileDialogAction.FolderFlags) != 0, + CanChooseFiles = (data.Action & SelectFileDialogAction.FileFlags) != 0, ResolvesAliases = false, }; } SetCommonPanelProperties (data, panel); - if (!directoryMode) { + if ((data.Action & SelectFileDialogAction.FileFlags) != 0) { var popup = CreateFileFilterPopup (data, panel); if (popup != null) { panel.AccessoryView = popup; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs index 90973bb76f..c5d9ba351e 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs @@ -45,6 +45,7 @@ using MonoDevelop.Ide; using System.Security.Cryptography; using Gdk; using MonoDevelop.Components; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Debugger { @@ -127,7 +128,7 @@ namespace MonoDevelop.Debugger messageOverlayWindow.SizeFunc = () => openButton.SizeRequest ().Width + w + hbox.Spacing * 5 + containerPadding * 2; openButton.Clicked += delegate { - var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), Gtk.FileChooserAction.Open) { + var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), SelectFileDialogAction.Open) { TransientFor = IdeApp.Workbench.RootWindow, ShowEncodingSelector = true, ShowViewerSelector = true diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs index be459eabbd..4064ce9cb6 100644 --- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs +++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs @@ -44,6 +44,7 @@ using System.Threading; using System.IO; using MonoDevelop.Refactoring; using MonoDevelop.Ide.Gui.Dialogs; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.AnalysisCore { @@ -291,7 +292,7 @@ namespace MonoDevelop.AnalysisCore { var lang = "text/x-csharp"; - OpenFileDialog dlg = new OpenFileDialog ("Export Rules", FileChooserAction.Save); + OpenFileDialog dlg = new OpenFileDialog ("Export Rules", SelectFileDialogAction.Save); dlg.InitialFileName = "rules.html"; if (!dlg.Run ()) return; diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs index 4350377ab7..f6fbed6ace 100644 --- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs +++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs @@ -32,6 +32,7 @@ using MonoDevelop.Components; using MonoDevelop.Core; using MonoDevelop.Ide; using MonoDevelop.Ide.Gui.Dialogs; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.SourceEditor.OptionPanels { @@ -199,7 +200,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels void HandleButtonExportClicked (object sender, EventArgs e) { - var dialog = new SelectFileDialog (GettextCatalog.GetString ("Highlighting Scheme"), Gtk.FileChooserAction.Save) { + var dialog = new SelectFileDialog (GettextCatalog.GetString ("Highlighting Scheme"), SelectFileDialogAction.Save) { TransientFor = this.Toplevel as Gtk.Window, }; dialog.AddFilter (GettextCatalog.GetString ("Color schemes"), "*.json"); @@ -218,7 +219,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels void AddColorScheme (object sender, EventArgs args) { - var dialog = new SelectFileDialog (GettextCatalog.GetString ("Highlighting Scheme"), Gtk.FileChooserAction.Open) { + var dialog = new SelectFileDialog (GettextCatalog.GetString ("Highlighting Scheme"), SelectFileDialogAction.Open) { TransientFor = this.Toplevel as Gtk.Window, }; dialog.AddFilter (GettextCatalog.GetString ("Color schemes"), "*.json"); diff --git a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic index 1f2e5837de..9ef97fcf7d 100644 --- a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic +++ b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic @@ -7,7 +7,6 @@ <import> <widget-library name="../../../../build/bin/MonoDevelop.Ide.dll" /> <widget-library name="../../../../build/AddIns/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.dll" /> - <widget-library name="../../../../build/AddIns/MonoDevelop.Debugger/MonoDevelop.Debugger.dll" /> <widget-library name="../../../../build/bin/Mono.TextEditor.dll" /> <widget-library name="../../../../build/AddIns/DisplayBindings/SourceEditor/MonoDevelop.SourceEditor2.dll" internal="true" /> </import> diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/CommonFileDialogExtensions.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/CommonFileDialogExtensions.cs index 75f333740b..c12413887f 100644 --- a/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/CommonFileDialogExtensions.cs +++ b/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/CommonFileDialogExtensions.cs @@ -55,7 +55,7 @@ namespace MonoDevelop.Platform var fileDialog = dialog as CommonOpenFileDialog;
if (fileDialog != null) {
fileDialog.Multiselect = data.SelectMultiple;
- if (data.Action == FileChooserAction.SelectFolder) {
+ if (data.Action == SelectFileDialogAction.SelectFolder) {
fileDialog.IsFolderPicker = true;
return;
}
@@ -86,7 +86,7 @@ namespace MonoDevelop.Platform return;
// FileDialog doesn't show the file extension when saving a file,
// so we try to look for the precise filter if none was specified.
- if (!string.IsNullOrEmpty (data.InitialFileName) && data.Action == FileChooserAction.Save && defExt == "*") {
+ if (!string.IsNullOrEmpty (data.InitialFileName) && data.Action == SelectFileDialogAction.Save && defExt == "*") {
string ext = Path.GetExtension (data.InitialFileName);
if (!string.IsNullOrEmpty (ext)) {
var pattern = "*" + ext;
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/OpenFileDialogHandler.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/OpenFileDialogHandler.cs index 51e84a743f..4d3f97a6ff 100644 --- a/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/OpenFileDialogHandler.cs +++ b/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/OpenFileDialogHandler.cs @@ -51,7 +51,7 @@ namespace MonoDevelop.Platform {
var parent = data.TransientFor ?? MessageService.RootWindow;
CommonFileDialog dialog;
- if (data.Action == FileChooserAction.Open) {
+ if (data.Action == SelectFileDialogAction.Open) {
dialog = new CustomCommonOpenFileDialog {
EnsureFileExists = true
};
@@ -65,7 +65,7 @@ namespace MonoDevelop.Platform var group = new CommonFileDialogGroupBox ("encoding", "Encoding:");
encodingCombo = new CustomCommonFileDialogComboBox ();
- BuildEncodingsCombo (encodingCombo, data.Action != FileChooserAction.Save, data.Encoding);
+ BuildEncodingsCombo (encodingCombo, data.Action != SelectFileDialogAction.Save, data.Encoding);
group.Items.Add (encodingCombo);
dialog.Controls.Add (group);
@@ -77,7 +77,7 @@ namespace MonoDevelop.Platform SizeToContent = SizeToContent.WidthAndHeight
};
if (dlg.ShowDialog ().Value) {
- BuildEncodingsCombo (encodingCombo, data.Action != FileChooserAction.Save, data.Encoding);
+ BuildEncodingsCombo (encodingCombo, data.Action != SelectFileDialogAction.Save, data.Encoding);
dialog.ApplyControlPropertyChange ("Items", encodingCombo);
}
}
@@ -86,7 +86,7 @@ namespace MonoDevelop.Platform CustomCommonFileDialogComboBox viewerCombo = null;
CommonFileDialogCheckBox closeSolution = null;
- if (data.ShowViewerSelector && data.Action == FileChooserAction.Open) {
+ if (data.ShowViewerSelector && data.Action == SelectFileDialogAction.Open) {
var group = new CommonFileDialogGroupBox ("openWith", "Open with:");
viewerCombo = new CustomCommonFileDialogComboBox {
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/SelectFileDialogHandler.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/SelectFileDialogHandler.cs index ec5123aded..bcd6b36049 100644 --- a/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/SelectFileDialogHandler.cs +++ b/main/src/addins/WindowsPlatform/WindowsPlatform/Dialogs/SelectFileDialogHandler.cs @@ -44,7 +44,7 @@ namespace MonoDevelop.Platform var parent = data.TransientFor ?? MessageService.RootWindow;
CommonFileDialog dialog;
- if (data.Action == FileChooserAction.Open || data.Action == FileChooserAction.SelectFolder)
+ if ((data.Action & (SelectFileDialogAction.Open | SelectFileDialogAction.SelectFolder)) != 0)
dialog = new CustomCommonOpenFileDialog ();
else
dialog = new CommonSaveFileDialog ();
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 9784169415..1451ed1523 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ISelectFileDialog.cs @@ -40,7 +40,19 @@ namespace MonoDevelop.Components.Extensions public interface ISelectFileDialogHandler : IDialogHandler<SelectFileDialogData>
{
} - + + [Flags] + public enum SelectFileDialogAction + { + CreateFolder = 1, + SelectFolder = 2, + Open = 4, + Save = 8, + + FolderFlags = CreateFolder | SelectFolder, + FileFlags = Open | Save + } + /// <summary> /// Data for the ISelectFileDialogHandler implementation /// </summary> @@ -50,7 +62,7 @@ namespace MonoDevelop.Components.Extensions FilterSet = new FileFilterSet (); } internal FileFilterSet FilterSet { get; set; } - public Gtk.FileChooserAction Action { get; set; } + public SelectFileDialogAction Action { get; set; } public IList<SelectFileDialogFilter> Filters { get { return FilterSet.Filters; } } public FilePath CurrentFolder { get; set; } public bool SelectMultiple { get; set; } @@ -107,7 +119,7 @@ namespace MonoDevelop.Components.Extensions /// <summary> /// Action to perform with the file dialog. /// </summary> - public Gtk.FileChooserAction Action { + public SelectFileDialogAction Action { get { return data.Action; } set { data.Action = value; } } @@ -269,7 +281,14 @@ namespace MonoDevelop.Components.Extensions internal void SetDefaultProperties (FileSelector fdiag) { fdiag.Title = Title; - fdiag.Action = Action; + if ((Action & SelectFileDialogAction.CreateFolder) != 0) + fdiag.Action = Gtk.FileChooserAction.CreateFolder; + else if ((Action & SelectFileDialogAction.SelectFolder) != 0) + fdiag.Action = Gtk.FileChooserAction.SelectFolder; + else if ((Action & SelectFileDialogAction.Open) != 0) + fdiag.Action = Gtk.FileChooserAction.Open; + else if ((Action & SelectFileDialogAction.Save) != 0) + fdiag.Action = Gtk.FileChooserAction.Save; fdiag.LocalOnly = true; fdiag.SelectMultiple = SelectMultiple; fdiag.TransientFor = TransientFor; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.PropertyGrid.Editors/FilePathEditor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.PropertyGrid.Editors/FilePathEditor.cs index 23df98afc8..37da6db915 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.PropertyGrid.Editors/FilePathEditor.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.PropertyGrid.Editors/FilePathEditor.cs @@ -26,8 +26,9 @@ using System; using System.Linq; -using Gtk; + using MonoDevelop.Core; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Components.PropertyGrid.PropertyEditors { @@ -41,16 +42,17 @@ namespace MonoDevelop.Components.PropertyGrid.PropertyEditors public override void LaunchDialogue () { var kindAtt = this.Property.Attributes.OfType<FilePathIsFolderAttribute> ().FirstOrDefault (); - FileChooserAction action; + SelectFileDialogAction action; + string title; if (kindAtt == null) { - action = FileChooserAction.Open; + action = SelectFileDialogAction.Open; title = GettextCatalog.GetString ("Select File..."); } else { - action = FileChooserAction.SelectFolder; + action = SelectFileDialogAction.SelectFolder; title = GettextCatalog.GetString ("Select Folder..."); } - var fs = new MonoDevelop.Components.SelectFileDialog (title, action); + var fs = new SelectFileDialog (title, action); if (fs.Run ()) Property.SetValue (Instance, fs.SelectedFile); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/FileEntry.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/FileEntry.cs index a47612b712..83029b1b73 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/FileEntry.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/FileEntry.cs @@ -28,6 +28,8 @@ using System.ComponentModel; +using MonoDevelop.Components.Extensions; + namespace MonoDevelop.Components { [Category ("MonoDevelop.Components")] @@ -40,7 +42,7 @@ namespace MonoDevelop.Components public FileEntry (string name) : base (name) { - Action = Gtk.FileChooserAction.Open; + Action = SelectFileDialogAction.Open; } protected override string ShowBrowseDialog (string name, string startIn) @@ -57,6 +59,6 @@ namespace MonoDevelop.Components return null; } - public Gtk.FileChooserAction Action { get; set; } + public SelectFileDialogAction Action { get; set; } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs index 45913593b5..58d0b95a2f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFileDialog.cs @@ -23,12 +23,9 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -
-using System; -using Gtk; + using MonoDevelop.Components.Extensions;
-
namespace MonoDevelop.Components
{ /// <summary> @@ -40,11 +37,11 @@ namespace MonoDevelop.Components { } - public SelectFileDialog (string title): this (title, FileChooserAction.Open) + public SelectFileDialog (string title): this (title, SelectFileDialogAction.Open) { } - public SelectFileDialog (string title, Gtk.FileChooserAction action) + public SelectFileDialog (string title, SelectFileDialogAction action) { Title = title; Action = action; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs index a2a253f162..c468bbf9d7 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/SelectFolderDialog.cs @@ -39,14 +39,14 @@ namespace MonoDevelop.Components {
public SelectFolderDialog () { - Action = Gtk.FileChooserAction.SelectFolder; + Action = SelectFileDialogAction.SelectFolder; } - public SelectFolderDialog (string title): this (title, Gtk.FileChooserAction.SelectFolder) + public SelectFolderDialog (string title): this (title, SelectFileDialogAction.SelectFolder) { } - public SelectFolderDialog (string title, Gtk.FileChooserAction action) + public SelectFolderDialog (string title, SelectFileDialogAction action) { Title = title; Action = action; 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 dd95a7feef..5d460002c9 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs @@ -34,10 +34,10 @@ using MonoDevelop.Ide.Gui; using MonoDevelop.Projects; using MonoDevelop.Ide.Gui.Content; using System.IO; -using Gtk; using MonoDevelop.Ide.Projects; using MonoDevelop.Ide.Desktop; using System.Linq; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Ide.Commands { @@ -79,7 +79,7 @@ namespace MonoDevelop.Ide.Commands { protected override void Run () { - var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), Gtk.FileChooserAction.Open) { + var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), SelectFileDialogAction.Open) { TransientFor = IdeApp.Workbench.RootWindow, ShowEncodingSelector = true, ShowViewerSelector = true, 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 430502ff21..62e39f17a9 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 @@ -25,12 +25,10 @@ // THE SOFTWARE. using System; -using MonoDevelop.Core; +using System.Text; + using MonoDevelop.Ide.Extensions; using MonoDevelop.Components.Extensions; -using System.Collections.Generic; -using Mono.Addins; -using System.Text; namespace MonoDevelop.Ide.Gui.Dialogs
{ @@ -43,11 +41,11 @@ namespace MonoDevelop.Ide.Gui.Dialogs { } - public OpenFileDialog (string title) : this (title, Gtk.FileChooserAction.Save) + public OpenFileDialog (string title) : this (title, SelectFileDialogAction.Save) { } - public OpenFileDialog (string title, Gtk.FileChooserAction action) + public OpenFileDialog (string title, SelectFileDialogAction action) { Title = title; Action = action; @@ -90,10 +88,20 @@ namespace MonoDevelop.Ide.Gui.Dialogs public FileViewer SelectedViewer { get { return data.SelectedViewer; } } + + Gtk.FileChooserAction GetFileChooserAction () + { + switch (Action) { + case SelectFileDialogAction.CreateFolder: return Gtk.FileChooserAction.CreateFolder; + case SelectFileDialogAction.SelectFolder: return Gtk.FileChooserAction.SelectFolder; + case SelectFileDialogAction.Save: return Gtk.FileChooserAction.Save; + default: return Gtk.FileChooserAction.Open; + } + } protected override bool RunDefault () { - var win = new FileSelectorDialog (Title, Action); + var win = new FileSelectorDialog (Title, GetFileChooserAction ()); win.SelectedEncoding = Encoding != null ? Encoding.CodePage : 0; win.ShowEncodingSelector = ShowEncodingSelector; win.ShowViewerSelector = ShowViewerSelector; 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 069845ada8..d3a12756c6 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs @@ -52,6 +52,7 @@ using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem.Implementation; using System.Text; using System.Collections.ObjectModel; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Ide.Gui { @@ -414,7 +415,7 @@ namespace MonoDevelop.Ide.Gui } if (filename == null) { - var dlg = new OpenFileDialog (GettextCatalog.GetString ("Save as..."), FileChooserAction.Save) { + var dlg = new OpenFileDialog (GettextCatalog.GetString ("Save as..."), SelectFileDialogAction.Save) { TransientFor = IdeApp.Workbench.RootWindow, Encoding = encoding, ShowEncodingSelector = (tbuffer != null), 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 6377843060..512bcf6940 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AddFileDialog.cs @@ -42,7 +42,7 @@ namespace MonoDevelop.Ide.Projects public AddFileDialog (string title)
{ Title = title; - Action = FileChooserAction.Open; + Action = SelectFileDialogAction.Open; data.SelectMultiple = true;
} diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs index 7c53d25e86..4bc2a95b56 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/AssemblyReferencePanel.cs @@ -150,7 +150,7 @@ namespace MonoDevelop.Ide.Projects void HandleClicked (object sender, EventArgs e) { - var dlg = new OpenFileDialog (GettextCatalog.GetString ("Select Assembly"), FileChooserAction.Open); + var dlg = new OpenFileDialog (GettextCatalog.GetString ("Select Assembly"), SelectFileDialogAction.Open); // dlg.AddFilter (GettextCatalog.GetString ("Assemblies"), "*.[Dd][Ll][Ll]", "*.[Ee][Xx][Ee]"); dlg.AddFilter (GettextCatalog.GetString ("Assemblies"), "*.dll", "*.exe"); dlg.CurrentFolder = basePath; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs index 2ac9f2edac..c226b12acd 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs @@ -37,6 +37,7 @@ using MonoDevelop.Components; using Gtk; using System.Linq; using MonoDevelop.Projects; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Ide.Projects { @@ -221,7 +222,7 @@ namespace MonoDevelop.Ide.Projects void HandleFromFile (object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog (GettextCatalog.GetString ("Select Policy File")); - dlg.Action = FileChooserAction.Open; + dlg.Action = SelectFileDialogAction.Open; dlg.TransientFor = this; dlg.AddFilter (BrandingService.BrandApplicationName (GettextCatalog.GetString ("MonoDevelop policy files")), "*.mdpolicy"); dlg.AddAllFilesFilter (); @@ -280,7 +281,7 @@ namespace MonoDevelop.Ide.Projects OpenFileDialog dlg = new OpenFileDialog (GettextCatalog.GetString ("Select Policy File")); dlg.TransientFor = this; dlg.InitialFileName = currentSet.Name + ".mdpolicy"; - dlg.Action = FileChooserAction.Save; + dlg.Action = SelectFileDialogAction.Save; dlg.AddFilter (BrandingService.BrandApplicationName (GettextCatalog.GetString ("MonoDevelop policy files")), "*.mdpolicy"); dlg.AddAllFilesFilter (); dlg.CurrentFolder = ExportProjectPolicyDialog.DefaultFileDialogPolicyDir; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs index 4f51bb1f38..3c6412b68f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs @@ -23,11 +23,13 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. + using System; -using Gtk; + using MonoDevelop.Core; using MonoDevelop.Projects; using MonoDevelop.Projects.Policies; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Ide.Projects { @@ -41,7 +43,7 @@ namespace MonoDevelop.Ide.Projects this.Build (); this.policyProvider = policyProvider; - fileEntry.Action = FileChooserAction.Save; + fileEntry.Action = SelectFileDialogAction.Save; fileEntry.DefaultPath = DefaultFileDialogPolicyDir; if (policyProvider is SolutionItem) fileEntry.Path = ((SolutionItem)policyProvider).Name + ".mdpolicy"; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs index d964ed1411..748fcccdcd 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs @@ -53,6 +53,7 @@ using ICSharpCode.NRefactory.TypeSystem.Implementation; using System.Text; using MonoDevelop.Ide.TypeSystem; using ICSharpCode.NRefactory.TypeSystem; +using MonoDevelop.Components.Extensions; namespace MonoDevelop.Ide { @@ -656,7 +657,7 @@ namespace MonoDevelop.Ide WorkspaceItem res = null; var dlg = new SelectFileDialog () { - Action = Gtk.FileChooserAction.Open, + Action = SelectFileDialogAction.Open, CurrentFolder = parentWorkspace.BaseDirectory, SelectMultiple = false, }; @@ -719,7 +720,7 @@ namespace MonoDevelop.Ide SolutionItem res = null; var dlg = new SelectFileDialog () { - Action = Gtk.FileChooserAction.Open, + Action = SelectFileDialogAction.Open, CurrentFolder = parentFolder.BaseDirectory, SelectMultiple = false, }; @@ -1624,7 +1625,7 @@ namespace MonoDevelop.Ide { var dlg = new SelectFileDialog () { SelectMultiple = true, - Action = Gtk.FileChooserAction.Open, + Action = SelectFileDialogAction.Open, CurrentFolder = folder.BaseDirectory, TransientFor = MessageService.RootWindow, }; |