aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlli Werwolff <qt-info@nokia.com>2011-01-19 14:28:49 +0100
committerOlli Werwolff <qt-info@nokia.com>2011-01-19 14:28:49 +0100
commit001d24967a3b5afa2f49738dd145c6105b033c84 (patch)
tree9c02daf3d21969367af3fb65d3fb14218cdbf60b
parentb32d10f1743c0ab6d68175cf1e0498a9b3afc563 (diff)
Fixed handling of Windows CE platform in wizards
The bug also influenced the handling of Qt versions. It was not possible to add ce Qt versions, as the corresponding platform could not be found (availablePlatforms was always empty). Task-number: QTVSADDINBUG-42 Reviewed-by: joerg
-rw-r--r--Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1031/default.htm2
-rw-r--r--Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1033/default.htm2
-rw-r--r--Qt4VS2003/Projects/Qt4WinCEProject/HTML/1031/default.htm2
-rw-r--r--Qt4VS2003/Projects/Qt4WinCEProject/HTML/1033/default.htm2
-rw-r--r--Qt4VS2003/Qt4VSAddin/AddQtVersionDialog.cs2
-rw-r--r--Qt4VS2003/QtProjectEngine/QtProjectEngine.cs4
-rw-r--r--Qt4VS2003/QtProjectLib/HelperFunctions.cs26
7 files changed, 26 insertions, 14 deletions
diff --git a/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1031/default.htm b/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1031/default.htm
index c5b9a4f9..462607a5 100644
--- a/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1031/default.htm
+++ b/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1031/default.htm
@@ -392,7 +392,7 @@ function InitControls()
QTMODULES.innerText = strModules;
var strHTML = '<select id="PLATFORM_COMBO" name="PLATFORM_COMBO" style="width: 360px" width="250">';
- var qtVersions = QtEngine.GetQtWinCEVersions();
+ var qtVersions = QtEngine.GetQtWinCEVersions(window.external.dte);
var strDefaultQtWinCEVersion = QtEngine.GetDefaultWinCEVersion();
if (qtVersions.Count > 0) {
for (var i=0; i < qtVersions.Count; ++i) {
diff --git a/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1033/default.htm b/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1033/default.htm
index e9b4376d..fd5e7e7b 100644
--- a/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1033/default.htm
+++ b/Qt4VS2003/Projects/Qt4WinCELibProject/HTML/1033/default.htm
@@ -394,7 +394,7 @@ function InitControls()
QTMODULES.innerText = strModules;
var strHTML = '<select id="PLATFORM_COMBO" name="PLATFORM_COMBO" style="width: 360px" width="250">';
- var qtVersions = QtEngine.GetQtWinCEVersions();
+ var qtVersions = QtEngine.GetQtWinCEVersions(window.external.dte);
var strDefaultQtWinCEVersion = QtEngine.GetDefaultWinCEVersion();
if (qtVersions.Count > 0) {
for (var i=0; i < qtVersions.Count; ++i) {
diff --git a/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1031/default.htm b/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1031/default.htm
index 1c0f95b3..81a32703 100644
--- a/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1031/default.htm
+++ b/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1031/default.htm
@@ -384,7 +384,7 @@ function InitControls()
QTMODULES.innerText = strModules;
var strHTML = '<select id="PLATFORM_COMBO" name="PLATFORM_COMBO" style="width: 360px" width="250">';
- var qtVersions = QtEngine.GetQtWinCEVersions();
+ var qtVersions = QtEngine.GetQtWinCEVersions(window.external.dte);
var strDefaultQtWinCEVersion = QtEngine.GetDefaultWinCEVersion();
if (qtVersions.Count > 0) {
for (var i=0; i < qtVersions.Count; ++i) {
diff --git a/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1033/default.htm b/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1033/default.htm
index 7fe6d95a..898c2aa6 100644
--- a/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1033/default.htm
+++ b/Qt4VS2003/Projects/Qt4WinCEProject/HTML/1033/default.htm
@@ -390,7 +390,7 @@ function InitControls()
QTMODULES.innerText = strModules;
var strHTML = '<select id="PLATFORM_COMBO" name="PLATFORM_COMBO" style="width: 360px" width="250">';
- var qtVersions = QtEngine.GetQtWinCEVersions();
+ var qtVersions = QtEngine.GetQtWinCEVersions(window.external.dte);
var strDefaultQtWinCEVersion = QtEngine.GetDefaultWinCEVersion();
if (qtVersions.Count > 0) {
for (var i=0; i < qtVersions.Count; ++i) {
diff --git a/Qt4VS2003/Qt4VSAddin/AddQtVersionDialog.cs b/Qt4VS2003/Qt4VSAddin/AddQtVersionDialog.cs
index 882a6a69..8a48fef6 100644
--- a/Qt4VS2003/Qt4VSAddin/AddQtVersionDialog.cs
+++ b/Qt4VS2003/Qt4VSAddin/AddQtVersionDialog.cs
@@ -245,7 +245,7 @@ namespace Qt4VSAddin
{
// check whether we have an SDK installed for this platform
string platformName = versionInfo.GetVSPlatformName();
- if (!HelperFunctions.IsPlatformAvailable(platformName))
+ if (!HelperFunctions.IsPlatformAvailable(Connect._applicationObject, platformName))
{
MessageBox.Show(SR.GetString("AddQtVersionDialog_PlatformNotFoundError", platformName),
null, MessageBoxButtons.OK,
diff --git a/Qt4VS2003/QtProjectEngine/QtProjectEngine.cs b/Qt4VS2003/QtProjectEngine/QtProjectEngine.cs
index 54864e01..bbe95509 100644
--- a/Qt4VS2003/QtProjectEngine/QtProjectEngine.cs
+++ b/Qt4VS2003/QtProjectEngine/QtProjectEngine.cs
@@ -486,7 +486,7 @@ namespace Nokia.QtProjectLib
/// Returns the Windows CE Qt builds which are available.
/// </summary>
/// <returns>List of string</returns>
- public ArrayList GetQtWinCEVersions()
+ public ArrayList GetQtWinCEVersions(EnvDTE.DTE dte)
{
ArrayList list = new ArrayList();
QtVersionManager vm = QtVersionManager.The();
@@ -495,7 +495,7 @@ namespace Nokia.QtProjectLib
{
VersionInformation vi = vm.GetVersionInfo(qtVersion);
string platformName = GetWinCEPlatformName(qtVersion, vm);
- if (vi.IsWinCEVersion() && HelperFunctions.IsPlatformAvailable(platformName))
+ if (vi.IsWinCEVersion() && HelperFunctions.IsPlatformAvailable(dte, platformName))
list.Add(qtVersion);
}
return list;
diff --git a/Qt4VS2003/QtProjectLib/HelperFunctions.cs b/Qt4VS2003/QtProjectLib/HelperFunctions.cs
index 91857969..5debc14c 100644
--- a/Qt4VS2003/QtProjectLib/HelperFunctions.cs
+++ b/Qt4VS2003/QtProjectLib/HelperFunctions.cs
@@ -42,6 +42,7 @@ namespace Nokia.QtProjectLib
using System.Reflection;
using System.Text.RegularExpressions;
using EnvDTE;
+ using System.Xml;
public class HelperFunctions
{
@@ -1643,16 +1644,27 @@ namespace Nokia.QtProjectLib
/// Returns true if the given platform is available in the global settings of Visual Studio.
/// On error this function returns false.
/// </summary>
- public static bool IsPlatformAvailable(string platformName)
+ public static bool IsPlatformAvailable(EnvDTE.DTE dteObject, string platformName)
{
- if (availablePlatforms == null)
+ if (availablePlatforms == null || availablePlatforms.Count == 0)
{
- VCProjectEngine engine = new VCProjectEngineObject();
- IVCCollection platforms = engine.Platforms as IVCCollection;
- availablePlatforms = new List<string>(platforms.Count);
- foreach (VCPlatform platform in platforms)
+ availablePlatforms = new List<string>();
+ // Read the available platforms from WCE.VCPlatform.config
+ // instead of using VCProjectEngine, because for some strange
+ // reason the project wizards isn't able to create a project if
+ // we are instantiating the VCProjectEngine here.
+ String vcPlatformCfg = dteObject.FullName;
+ int idx = vcPlatformCfg.LastIndexOf("\\");
+ idx = vcPlatformCfg.LastIndexOf("\\", idx - 1);
+ idx = vcPlatformCfg.LastIndexOf("\\", idx - 1);
+ vcPlatformCfg = vcPlatformCfg.Substring(0, idx + 1);
+ vcPlatformCfg += "VC\\vcpackages\\WCE.VCPlatform.config";
+
+ FileStream stream = new FileStream(vcPlatformCfg, FileMode.Open);
+ XmlReader reader = new XmlTextReader(stream);
+ while (reader.ReadToFollowing("PlatformName"))
{
- availablePlatforms.Add(platform.Name);
+ availablePlatforms.Add(reader.ReadElementContentAsString());
}
}