diff options
author | Lluis Sanchez <lluis@novell.com> | 2010-03-24 20:07:14 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2010-03-24 20:07:14 +0300 |
commit | 047d32932a5f27f98fbd2dfc04d9aaa293cfe16e (patch) | |
tree | 789319afe26143bf830b49f387caab16a582adcf /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels | |
parent | 6aaef4412d971d46af58c93aabf68cd04d74db26 (diff) |
* MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FileProvider.cs: Don't
save the file if nothing has been replaced.
* MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Templates/CodeTranslationFileDescriptionTemplate.cs:
HashtableToStringArray is not necessary. The string parser service
can directly handle a string dictionary.
* MonoDevelop.Ide/Makefile.am:
* MonoDevelop.Ide/gtk-gui/gui.stetic:
* MonoDevelop.Ide/gtk-gui/objects.xml:
* MonoDevelop.Ide/MonoDevelop.Ide/Ide.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.csproj:
* MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Commands/ToolsCommands.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalTool.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalToolPanel.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Commands/CustomStringTagProvider.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/StringTagSelectorButton.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanel.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandWidget.cs:
* MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.ExternalTools.ExternalToolPanelWidget.cs:
* MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanelWidget.cs:
* MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Components.StringTagSelectorButton.cs:
* MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.OptionPanels.CustomCommandWidget.cs:
Use the new string tag model. Added a new StringTagSelectorButton
class.
* MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CombineConfigurationPanel.cs:
Sort the configurations list.
* MonoDevelop.Core/Makefile.am:
* MonoDevelop.Core/MonoDevelop.Core.csproj:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing:
* MonoDevelop.Core/MonoDevelop.Projects/Project.cs:
* MonoDevelop.Core/MonoDevelop.Projects/Solution.cs:
* MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs:
* MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs:
* MonoDevelop.Core/MonoDevelop.Projects/CustomCommand.cs:
* MonoDevelop.Core/MonoDevelop.Projects/ProjectService.cs:
* MonoDevelop.Core/MonoDevelop.Core/StringParserService.cs:
* MonoDevelop.Core/MonoDevelop.Projects/SolutionEntityItem.cs:
* MonoDevelop.Core/MonoDevelop.Projects/ProjectConfiguration.cs:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing/StringTagModel.cs:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing/IStringTagModel.cs:
* MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectConfiguration.cs:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing/StringTagProvider.cs:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing/IStringTagProvider.cs:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing/StringTagDescription.cs:
* MonoDevelop.Core/MonoDevelop.Core.StringParsing/StringTagModelDescription.cs:
Reworked the string parser service. Added an extension point for
registering tag providers. Added StringTagModel and
StringTagModelDescription classes.
svn path=/trunk/monodevelop/; revision=154152
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels')
4 files changed, 22 insertions, 70 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CombineConfigurationPanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CombineConfigurationPanel.cs index 4a1ea2eb9d..93bfaaf5b7 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CombineConfigurationPanel.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CombineConfigurationPanel.cs @@ -59,7 +59,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels partial class CombineConfigurationPanelWidget : Gtk.Bin { - TreeStore store; + ListStore store; SolutionConfiguration configuration; MultiConfigItemOptionsDialog parentDialog; @@ -68,7 +68,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels Build (); this.parentDialog = parentDialog; - store = new TreeStore (typeof(object), typeof(string), typeof(bool)); + store = new ListStore (typeof(object), typeof(string), typeof(bool)); configsList.Model = store; configsList.HeadersVisible = true; @@ -79,6 +79,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels col.AddAttribute (sr, "text", 1); col.Title = GettextCatalog.GetString ("Solution Item"); configsList.AppendColumn (col); + col.SortColumnId = 1; CellRendererToggle tt = new CellRendererToggle (); tt.Activatable = true; @@ -88,6 +89,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels CellRendererComboBox comboCell = new CellRendererComboBox (); comboCell.Changed += new ComboSelectionChangedHandler (OnConfigSelectionChanged); configsList.AppendColumn (GettextCatalog.GetString ("Configuration"), comboCell, new TreeCellDataFunc (OnSetConfigurationsData)); + store.SetSortColumnId (1, SortType.Ascending); } public void Load (SolutionConfiguration config) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanel.cs index e12eaac575..89d69ada0c 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanel.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanel.cs @@ -45,7 +45,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels public override void LoadConfigData () { - widget.Load (ConfiguredSolutionItem, CurrentConfiguration.CustomCommands); + widget.Load (ConfiguredSolutionItem, CurrentConfiguration.CustomCommands, CurrentConfiguration.Selector); } public override void ApplyChanges () diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanelWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanelWidget.cs index 90f29579b7..a6639bb7f8 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanelWidget.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandPanelWidget.cs @@ -38,16 +38,18 @@ namespace MonoDevelop.Ide.Projects.OptionPanels CustomCommandCollection commands; CustomCommandWidget lastSlot; SolutionEntityItem entry; + ConfigurationSelector configSelector; public CustomCommandPanelWidget () { this.Build(); } - public void Load (SolutionEntityItem entry, CustomCommandCollection commands) + public void Load (SolutionEntityItem entry, CustomCommandCollection commands, ConfigurationSelector configSelector) { this.entry = entry; this.commands = commands; + this.configSelector = configSelector; // Clean the list foreach (CustomCommandWidget ccw in vboxCommands.Children) { @@ -66,7 +68,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels void AddCommandSlot (CustomCommand cmd) { - CustomCommandWidget widget = new CustomCommandWidget (entry, cmd); + CustomCommandWidget widget = new CustomCommandWidget (entry, cmd, configSelector); vboxCommands.PackStart (widget, false, false, 0); widget.CommandCreated += OnCommandCreated; widget.CommandRemoved += OnCommandRemoved; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandWidget.cs index a0974f89f9..3cdb8b3099 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandWidget.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects.OptionPanels/CustomCommandWidget.cs @@ -30,6 +30,7 @@ using System; using MonoDevelop.Core; using MonoDevelop.Projects; using MonoDevelop.Components; +using MonoDevelop.Core.StringParsing; namespace MonoDevelop.Ide.Projects.OptionPanels { @@ -41,64 +42,7 @@ namespace MonoDevelop.Ide.Projects.OptionPanels IWorkspaceObject entry; bool updating; - // snatched from MonoDevelop.Ide.Gui.OptionPanels/ExternalToolPanel.cs - // a lot of these probably don't apply to custom build commands (e.g. ItemPath -- path of current open doc) -// static string[,] argumentQuickInsertMenu = new string[,] { -// {GettextCatalog.GetString ("Item Path"), "${ItemPath}"}, -// {GettextCatalog.GetString ("_Item Directory"), "${ItemDir}"}, -// {GettextCatalog.GetString ("Item file name"), "${ItemFileName}"}, -// {GettextCatalog.GetString ("Item extension"), "${ItemExt}"}, -// {"-", ""}, -// {GettextCatalog.GetString ("Current line"), "${CurLine}"}, -// {GettextCatalog.GetString ("Current column"), "${CurCol}"}, -// {GettextCatalog.GetString ("Current text"), "${CurText}"}, -// {"-", ""}, -// {GettextCatalog.GetString ("Target Path"), "${TargetPath}"}, -// {GettextCatalog.GetString ("_Target Directory"), "${TargetDir}"}, -// {GettextCatalog.GetString ("Target Name"), "${TargetName}"}, -// {GettextCatalog.GetString ("Target Extension"), "${TargetExt}"}, -// {"-", ""}, -// {GettextCatalog.GetString ("_Project Directory"), "${ProjectDir}"}, -// {GettextCatalog.GetString ("Project file name"), "${ProjectFileName}"}, -// {"-", ""}, -// {GettextCatalog.GetString ("_Solution Directory"), "${CombineDir}"}, -// {GettextCatalog.GetString ("Solution File Name"), "${CombineFileName}"}, -// {"-", ""}, -// {GettextCatalog.GetString ("MonoDevelop Startup Directory"), "${StartupPath}"}, -// }; - - static string[,] projectWorkingDirInsertMenu = new string[,] { - // Keep in sync with CustomCommand.cs - {GettextCatalog.GetString ("_Target Directory"), "${TargetDir}"}, - {GettextCatalog.GetString ("Target _Name"), "${TargetName}"}, - {"-", ""}, - {GettextCatalog.GetString ("_Project Directory"), "${ProjectDir}"}, - {GettextCatalog.GetString ("P_roject Name"), "${ProjectName}"}, - {GettextCatalog.GetString ("Project _File"), "${ProjectFile}"}, - {"-", ""}, - {GettextCatalog.GetString ("_Solution Directory"), "${SolutionDir}"}, - {GettextCatalog.GetString ("So_lution Name"), "${SolutionName}"}, - {GettextCatalog.GetString ("Solution F_ile"), "${SolutionFile}"}, - }; - - static string[,] entryWorkingDirInsertMenu = new string[,] { - // Keep in sync with CustomCommand.cs - {GettextCatalog.GetString ("Solution _Item Directory"), "${ItemDir}"}, - {GettextCatalog.GetString ("Solution Item _Name"), "${ItemName}"}, - {GettextCatalog.GetString ("Solution Item _File"), "${ItemFile}"}, - {"-", ""}, - {GettextCatalog.GetString ("_Solution Directory"), "${SolutionDir}"}, - {GettextCatalog.GetString ("So_lution Name"), "${SolutionName}"}, - {GettextCatalog.GetString ("Solution F_ile"), "${SolutionFile}"}, - }; - - static string[,] solutionWorkingDirInsertMenu = new string[,] { - // Keep in sync with CustomCommand.cs - {GettextCatalog.GetString ("_Solution Directory"), "${SolutionDir}"}, - {GettextCatalog.GetString ("So_lution Name"), "${SolutionName}"}, - }; - - public CustomCommandWidget (IWorkspaceObject entry, CustomCommand cmd) + public CustomCommandWidget (IWorkspaceObject entry, CustomCommand cmd, ConfigurationSelector configSelector) { this.Build(); this.cmd = cmd; @@ -112,15 +56,19 @@ namespace MonoDevelop.Ide.Projects.OptionPanels UpdateControls (); this.WidgetFlags |= Gtk.WidgetFlags.NoShowAll; - string[,] workingDirInsertMenu; - if (entry is Project) - workingDirInsertMenu = projectWorkingDirInsertMenu; - else if (entry is SolutionEntityItem) - workingDirInsertMenu = entryWorkingDirInsertMenu; + StringTagModelDescription tagModel; + if (entry is SolutionItem) + tagModel = ((SolutionItem)entry).GetStringTagModelDescription (configSelector); + else if (entry is WorkspaceItem) + tagModel = ((WorkspaceItem)entry).GetStringTagModelDescription (); else - workingDirInsertMenu = solutionWorkingDirInsertMenu; + tagModel = new StringTagModelDescription (); + + tagSelectorDirectory.TagModel = tagModel; + tagSelectorDirectory.TargetEntry = workingdirEntry; - new MenuButtonEntry (workingdirEntry, workingdirQuickInsertButton, workingDirInsertMenu); + tagSelectorCommand.TagModel = tagModel; + tagSelectorCommand.TargetEntry = entryCommand; } public CustomCommand CustomCommand { |