From ca47896204482bf4a6979e3838bf7f09f61cebeb Mon Sep 17 00:00:00 2001
From: giy <giy@omp-system.ru>
Date: Fri, 02 Sep 2022 14:16:56 +0300
Subject: [PATCH] Обновление до версии 2.9.0
---
QtVsTools.Package/QtMsBuild/QtModulesEditor.cs | 38 +++++++++++++++++++++++++-------------
1 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs b/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs
index 8fbd145..e05e4ce 100644
--- a/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs
+++ b/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt VS Tools.
@@ -28,15 +28,15 @@
using Microsoft.VisualStudio.ProjectSystem;
using Microsoft.VisualStudio.ProjectSystem.Properties;
-using Microsoft.Internal.VisualStudio.PlatformUI;
using System;
+using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Threading.Tasks;
namespace QtVsTools.QtMsBuild
{
- using QtVsTools.Core;
+ using Core;
[Export(typeof(IPropertyPageUIValueEditor))]
[ExportMetadata("Name", "QtModulesEditor")]
@@ -50,7 +50,15 @@
{
await Task.Yield();
- var modules = QtModules.Instance.GetAvailableModules()
+ var qtSettings = ruleProperty.ContainingRule;
+ var qtVersion = await qtSettings.GetPropertyValueAsync("QtInstall");
+
+ var vm = QtVersionManager.The();
+ var versionInfo = vm.GetVersionInfo(qtVersion);
+ if (versionInfo == null)
+ versionInfo = vm.GetVersionInfo(vm.GetDefaultVersion());
+
+ var modules = QtModules.Instance.GetAvailableModules(versionInfo.qtMajor)
.Where(x => !string.IsNullOrEmpty(x.proVarQT))
.Select(x => new QtModulesPopup.Module
{
@@ -61,24 +69,28 @@
})
.ToList();
- var allQT = modules.SelectMany(x => x.QT).ToHashSet();
- var selectedQT = currentValue.ToString().Split(';').ToHashSet();
- var extraQT = selectedQT.Except(allQT);
+ HashSet<string> selectedQt = null;
+ IEnumerable<string> extraQt = null;
+ if (currentValue != null) {
+ var allQt = modules.SelectMany(x => x.QT).ToHashSet();
+ selectedQt = currentValue.ToString().Split(';').ToHashSet();
+ extraQt = selectedQt.Except(allQt);
- foreach (var module in modules)
- module.IsSelected = module.QT.Intersect(selectedQT).Count() == module.QT.Count;
+ foreach (var module in modules)
+ module.IsSelected = module.QT.Intersect(selectedQt).Count() == module.QT.Count;
+ }
var popup = new QtModulesPopup();
- popup.SetModules(modules);
+ popup.SetModules(modules.OrderBy(module => module.Name));
if (popup.ShowModal().GetValueOrDefault()) {
- selectedQT = modules
+ selectedQt = modules
.Where(x => x.IsSelected)
.SelectMany(x => x.QT)
- .Union(extraQT)
+ .Union(extraQt ?? Enumerable.Empty<string>())
.ToHashSet();
}
- return string.Join(";", selectedQT);
+ return selectedQt == null ? "" : string.Join(";", selectedQt);
}
}
}
--
Gitblit v1.9.1