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/Package/QtMsBuildConverter.cs | 33 ++++++++++++++++++++++++++------- 1 files changed, 26 insertions(+), 7 deletions(-) diff --git a/QtVsTools.Package/Package/QtMsBuildConverter.cs b/QtVsTools.Package/Package/QtMsBuildConverter.cs index eac783f..79d484d 100644 --- a/QtVsTools.Package/Package/QtMsBuildConverter.cs +++ b/QtVsTools.Package/Package/QtMsBuildConverter.cs @@ -32,17 +32,21 @@ using System.Linq; using System.Windows.Forms; using Microsoft.VisualStudio; +using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.VCProjectEngine; -using QtVsTools.Core; -using QtVsTools.VisualStudio; namespace QtVsTools { + using Core; + using VisualStudio; + static class QtMsBuildConverter { public static bool SolutionToQtMsBuild() { + ThreadHelper.ThrowIfNotOnUIThread(); + var solution = QtVsToolsPackage.Instance.Dte.Solution; if (solution == null) return ErrorMessage(string.Format(SR.GetString("ErrorConvertingProject"), "")); @@ -53,8 +57,8 @@ return WarningMessage(SR.GetString("NoProjectsToConvert")); foreach (EnvDTE.Project project in allProjects) { - if ((HelperFunctions.IsQtProject(project) - || HelperFunctions.IsQMakeProject(project)) + if ((HelperFunctions.IsVsToolsProject(project) + || HelperFunctions.IsQtProject(project)) && !QtProject.IsQtMsBuildEnabled(project)) { projects.Add(project); } @@ -68,7 +72,14 @@ MessageBoxButtons.YesNo) != DialogResult.Yes) return WarningMessage(SR.GetString("CancelConvertingProject")); - if (projects.Where(project => project.IsDirty).Any()) { + bool hasDirtyProjects = projects + .Where(project => + { + ThreadHelper.ThrowIfNotOnUIThread(); + return project.IsDirty; + }) + .Any(); + if (hasDirtyProjects) { if (MessageBox.Show( SR.GetString("ConvertSaveConfirmation"), SR.GetString("ConvertTitle"), @@ -76,7 +87,13 @@ return WarningMessage(SR.GetString("CancelConvertingProject")); } - var projectPaths = projects.Select(x => x.FullName).ToList(); + var projectPaths = projects + .Select(x => + { + ThreadHelper.ThrowIfNotOnUIThread(); + return x.FullName; + }) + .ToList(); string solutionPath = solution.FileName; solution.Close(true); @@ -142,6 +159,8 @@ public static bool ProjectToQtMsBuild(EnvDTE.Project project, bool askConfirmation = true) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (project == null) return ErrorMessage(string.Format(SR.GetString("ErrorConvertingProject"), "")); var pathToProject = project.FullName; @@ -178,7 +197,7 @@ try { if (solution.UnloadProject( ref projectGuid, - (uint)_VSProjectUnloadStatus.UNLOADSTATUS_LoadPendingIfNeeded) + (uint)_VSProjectUnloadStatus.UNLOADSTATUS_UnloadedByUser) != VSConstants.S_OK) return ErrorMessage( string.Format(SR.GetString("ErrorConvertingProject"), projectName)); -- Gitblit v1.9.1