Browse Source

Disable target framework combobox in project options so that all target framework changes run through the UpgradeProject code path.

pull/1/head
Daniel Grunwald 16 years ago
parent
commit
abbfb1b6f9
  1. 4
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Resources/BuildOptions.xfrm
  2. 4
      src/AddIns/BackendBindings/CSharpBinding/Project/Resources/BuildOptions.xfrm
  3. 4
      src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm
  4. 42
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs
  5. 20
      src/Main/Base/Project/Src/Project/Converter/UpgradeView.xaml.cs
  6. 32
      src/Main/Base/Project/Src/Project/Converter/UpgradeViewContent.cs

4
src/AddIns/BackendBindings/Boo/BooBinding/Project/Resources/BuildOptions.xfrm

@ -181,9 +181,9 @@ @@ -181,9 +181,9 @@
<TabIndex value="1" />
<Controls>
<System.Windows.Forms.Button>
<Name value="convertProjectToMSBuild35Button" />
<Name value="projectUpdateButton" />
<Location value="337, 93" />
<Text value="Convert project to MSBuild 3.5.." />
<Text value="Change" />
<UseVisualStyleBackColor value="True" />
<Size value="166, 23" />
<TabIndex value="12" />

4
src/AddIns/BackendBindings/CSharpBinding/Project/Resources/BuildOptions.xfrm

@ -78,9 +78,9 @@ @@ -78,9 +78,9 @@
<TabIndex value="1" />
<Controls>
<System.Windows.Forms.Button>
<Name value="convertProjectToMSBuild35Button" />
<Name value="projectUpdateButton" />
<Location value="337, 106" />
<Text value="Convert project to C# 3.0..." />
<Text value="Change" />
<UseVisualStyleBackColor value="True" />
<Size value="173, 23" />
<TabIndex value="12" />

4
src/AddIns/BackendBindings/VBNetBinding/Project/Resources/BuildOptions.xfrm

@ -94,9 +94,9 @@ @@ -94,9 +94,9 @@
<TabIndex value="1" />
<Controls>
<System.Windows.Forms.Button>
<Name value="convertProjectToMSBuild35Button" />
<Name value="projectUpdateButton" />
<Location value="291, 113" />
<Text value="Convert project to VB 9..." />
<Text value="Change" />
<UseVisualStyleBackColor value="True" />
<Size value="179, 23" />
<TabIndex value="10" />

42
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs

@ -6,10 +6,10 @@ using System.Collections.Generic; @@ -6,10 +6,10 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
using StringPair = System.Collections.Generic.KeyValuePair<System.String, System.String>;
using ICSharpCode.SharpDevelop.Project.Converter;
using StringPair = System.Collections.Generic.KeyValuePair<string, string>;
namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
{
@ -234,36 +234,18 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -234,36 +234,18 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
protected void InitTargetFramework()
{
Button convertProjectToMSBuild35Button = (Button)ControlDictionary["convertProjectToMSBuild35Button"];
ComboBox targetFrameworkComboBox = (ComboBox)ControlDictionary["targetFrameworkComboBox"];
if (convertProjectToMSBuild35Button != null) {
if (project.MinimumSolutionVersion <= Solution.SolutionVersionVS2008) {
// VS05/VS08 project
targetFrameworkComboBox.Enabled = false;
convertProjectToMSBuild35Button.Enabled = false;
return;
} else {
// VS2010 project
targetFrameworkComboBox.Enabled = true;
convertProjectToMSBuild35Button.Visible = false;
Button projectUpdateButton = ControlDictionary["projectUpdateButton"] as Button;
if (projectUpdateButton != null) {
projectUpdateButton.Click += delegate {
UpgradeViewContent.Show(project.ParentSolution).Select(project as IUpgradableProject);
};
}
ComboBox targetFrameworkComboBox = ControlDictionary["targetFrameworkComboBox"] as ComboBox;
if (targetFrameworkComboBox != null) {
targetFrameworkComboBox.Enabled = false;
targetFrameworkComboBox.Items.Add(((IUpgradableProject)project).CurrentTargetFramework.DisplayName);
targetFrameworkComboBox.SelectedIndex = 0;
}
const string TargetFrameworkProperty = "TargetFrameworkVersion";
ConfigurationGuiBinding targetFrameworkBinding;
targetFrameworkBinding = helper.BindStringEnum(
"targetFrameworkComboBox", TargetFrameworkProperty,
"v2.0",
(from targetFramework in TargetFramework.TargetFrameworks
where targetFramework.DisplayName != null
select new StringPair(targetFramework.Name, targetFramework.DisplayName)).ToArray());
targetFrameworkBinding.CreateLocationButton("targetFrameworkLabel");
helper.Saved += delegate {
CompilableProject cProject = (CompilableProject)project;
cProject.AddOrRemoveExtensions();
};
}
}
}

20
src/Main/Base/Project/Src/Project/Converter/UpgradeView.xaml.cs

@ -21,19 +21,35 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -21,19 +21,35 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
/// </summary>
internal partial class UpgradeView : UserControl
{
Solution solution;
readonly Solution solution;
readonly List<Entry> entries;
public UpgradeView(Solution solution)
{
if (solution == null)
throw new ArgumentNullException("solution");
this.solution = solution;
InitializeComponent();
listView.ItemsSource = solution.Projects.OfType<IUpgradableProject>().Select(p => new Entry(p)).ToList();
this.entries = solution.Projects.OfType<IUpgradableProject>().Select(p => new Entry(p)).ToList();
listView.ItemsSource = entries;
SortableGridViewColumn.SetCurrentSortColumn(listView, nameColumn);
SortableGridViewColumn.SetSortDirection(listView, ColumnSortDirection.Ascending);
ListView_SelectionChanged(null, null);
}
public Solution Solution {
get { return solution; }
}
public void Select(IUpgradableProject project)
{
foreach (Entry entry in entries) {
if (entry.Project == project)
listView.SelectedItem = entry;
}
}
void SelectAllCheckBox_Checked(object sender, RoutedEventArgs e)
{
listView.SelectAll();

32
src/Main/Base/Project/Src/Project/Converter/UpgradeViewContent.cs

@ -18,18 +18,42 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -18,18 +18,42 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
var projects = solution.Projects.OfType<IUpgradableProject>().ToList();
if (projects.Count > 0 && projects.All(u => u.UpgradeDesired)) {
Core.AnalyticsMonitorService.TrackFeature(typeof(UpgradeView), "opened automatically");
WorkbenchSingleton.Workbench.ShowView(new UpgradeViewContent(solution));
Show(solution);
}
}
public static UpgradeViewContent Show(Solution solution)
{
foreach (UpgradeViewContent vc in WorkbenchSingleton.Workbench.ViewContentCollection.OfType<UpgradeViewContent>()) {
if (vc.Solution == solution) {
vc.WorkbenchWindow.SelectWindow();
return vc;
}
}
var newVC = new UpgradeViewContent(solution);
WorkbenchSingleton.Workbench.ShowView(newVC);
return newVC;
}
UpgradeView upgradeView;
public UpgradeViewContent(Solution solution)
{
if (solution == null)
throw new ArgumentNullException("solution");
this.TitleName = "Project Upgrade";
upgradeView = new UpgradeView(solution);
}
public Solution Solution {
get { return upgradeView.Solution; }
}
public void Select(IUpgradableProject project)
{
upgradeView.Select(project);
}
public override object Control {
get {
return upgradeView;
@ -41,11 +65,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -41,11 +65,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
{
public override void Run()
{
UpgradeViewContent uvc = WorkbenchSingleton.Workbench.ViewContentCollection.OfType<UpgradeViewContent>().FirstOrDefault();
if (uvc != null)
uvc.WorkbenchWindow.SelectWindow();
else if (ProjectService.OpenSolution != null)
WorkbenchSingleton.Workbench.ShowView(new UpgradeViewContent(ProjectService.OpenSolution));
UpgradeViewContent.Show(ProjectService.OpenSolution);
}
}
}

Loading…
Cancel
Save