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