diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2022-02-18 15:48:11 +0100 |
---|---|---|
committer | Miguel Costa <miguel.costa@qt.io> | 2022-02-22 09:32:28 +0000 |
commit | 8058ed8e43f327e2a3288d627c380e2b6450a59a (patch) | |
tree | 3c18f44df2304de01fd58855f7963282f3f79cee /QtVsTools.Core | |
parent | 38d7aa663140de527b1d50c7d3b157e0fb76319f (diff) |
Remove some more ThreadHelper.ThrowIfNotOnUIThread()
Also:
* Moved remaining ThrowIfNotOnUIThread to the top of functions
* Added 'using Microsoft.VisualStudio.Shell;' and removed full
namespace prefix from calls to ThrowIfNotOnUIThread
* Minor adjustments (white-space, commented/forgotten debug call, etc.)
Change-Id: Id76d809d267c250580d5cc1c774f857c7bf612ab
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'QtVsTools.Core')
-rw-r--r-- | QtVsTools.Core/HelperFunctions.cs | 53 | ||||
-rw-r--r-- | QtVsTools.Core/MsBuildProject.cs | 2 | ||||
-rw-r--r-- | QtVsTools.Core/ProjectExporter.cs | 19 | ||||
-rw-r--r-- | QtVsTools.Core/ProjectImporter.cs | 19 | ||||
-rw-r--r-- | QtVsTools.Core/QMake.cs | 2 | ||||
-rw-r--r-- | QtVsTools.Core/QMakeConf.cs | 2 | ||||
-rw-r--r-- | QtVsTools.Core/QMakeQuery.cs | 6 | ||||
-rw-r--r-- | QtVsTools.Core/QtProject.cs | 49 | ||||
-rw-r--r-- | QtVsTools.Core/QtVSIPSettings.cs | 12 | ||||
-rw-r--r-- | QtVsTools.Core/QtVersionManager.cs | 20 | ||||
-rw-r--r-- | QtVsTools.Core/VersionInformation.cs | 4 | ||||
-rw-r--r-- | QtVsTools.Core/WaitDialog.cs | 24 |
12 files changed, 96 insertions, 116 deletions
diff --git a/QtVsTools.Core/HelperFunctions.cs b/QtVsTools.Core/HelperFunctions.cs index 19dcba65..8db2709d 100644 --- a/QtVsTools.Core/HelperFunctions.cs +++ b/QtVsTools.Core/HelperFunctions.cs @@ -114,11 +114,11 @@ namespace QtVsTools.Core public static void SetDebuggingEnvironment(Project prj, string envpath, bool overwrite, string solutionConfig) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (QtProject.GetFormatVersion(prj) >= Resources.qtMinFormatVersion_Settings) return; - ThreadHelper.ThrowIfNotOnUIThread(); - // Get platform name from given solution configuration // or if not available take the active configuration var activePlatformName = string.Empty; @@ -451,11 +451,11 @@ namespace QtVsTools.Core /// <returns></returns> public static void ToggleProjectKind(Project project) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (QtProject.GetFormatVersion(project) >= Resources.qtMinFormatVersion_Settings) return; - ThreadHelper.ThrowIfNotOnUIThread(); - var vcPro = (VCProject)project.Object; if (!IsQMakeProject(project)) return; @@ -537,7 +537,8 @@ namespace QtVsTools.Core if (compiler != null) { var additionalIncludes = compiler.AdditionalIncludeDirectories; if (additionalIncludes != null) { - ReplaceDirectory(ref additionalIncludes, qtDir, "$(QTDIR)", project); + ReplaceDirectory(ref additionalIncludes, qtDir, "$(QTDIR)", + project.FullName); compiler.AdditionalIncludeDirectories = additionalIncludes; } } @@ -545,7 +546,7 @@ namespace QtVsTools.Core var linkerToolWrapper = new LinkerToolWrapper(linker); var paths = linkerToolWrapper.AdditionalLibraryDirectories; if (paths != null) { - ReplaceDirectory(ref paths, qtDir, "$(QTDIR)", project); + ReplaceDirectory(ref paths, qtDir, "$(QTDIR)", project.FullName); linkerToolWrapper.AdditionalLibraryDirectories = paths; } } @@ -558,16 +559,16 @@ namespace QtVsTools.Core } /// <summary> - /// Replaces every occurrence of oldDirectory with replacement in the array of strings. - /// Parameter oldDirectory must be an absolute path. - /// This function converts relative directories to absolute paths internally - /// and replaces them, if necessary. If no replacement is done, the path isn't altered. + /// Replaces every occurrence of oldDirectory with replacement in the array of + /// strings.Parameter oldDirectory must be an absolute path. This function converts + /// relative directories to absolute paths internally and replaces them, if necessary. If + /// no replacement is done, the path isn't altered. /// </summary> - /// <param name="project">The project is needed to convert relative paths to absolute paths.</param> - private static void ReplaceDirectory(ref List<string> paths, string oldDirectory, string replacement, Project project) + /// <param name="fullName">The projects full name is needed to convert relative paths to + /// absolute paths.</param> + private static void ReplaceDirectory(ref List<string> paths, string oldDirectory, + string replacement, string fullName) { - ThreadHelper.ThrowIfNotOnUIThread(); - for (var i = 0; i < paths.Count; ++i) { var dirName = paths[i]; if (dirName.StartsWith("\"", StringComparison.Ordinal) && dirName.EndsWith("\"", StringComparison.Ordinal)) { @@ -575,7 +576,7 @@ namespace QtVsTools.Core } if (!Path.IsPathRooted(dirName)) { // convert to absolute path - dirName = Path.Combine(Path.GetDirectoryName(project.FullName), dirName); + dirName = Path.Combine(Path.GetDirectoryName(fullName), dirName); dirName = Path.GetFullPath(dirName); var alteredDirName = dirName.Replace(oldDirectory, replacement, StringComparison .OrdinalIgnoreCase); @@ -680,14 +681,14 @@ namespace QtVsTools.Core /// <returns></returns> public static bool IsQtProject(VCProject proj) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (!IsQMakeProject(proj)) return false; if (QtProject.GetFormatVersion(proj) >= Resources.qtMinFormatVersion_Settings) return true; - ThreadHelper.ThrowIfNotOnUIThread(); - var envPro = proj.Object as Project; if (envPro.Globals == null || envPro.Globals.VariableNames == null) return false; @@ -919,11 +920,11 @@ namespace QtVsTools.Core public static void CollapseFilter(UIHierarchyItem item, UIHierarchy hierarchy, string nodeToCollapseFilter) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (string.IsNullOrEmpty(nodeToCollapseFilter)) return; - ThreadHelper.ThrowIfNotOnUIThread(); - foreach (UIHierarchyItem innerItem in item.UIHierarchyItems) { if (innerItem.Name == nodeToCollapseFilter) CollapseFilter(innerItem, hierarchy); @@ -1078,11 +1079,11 @@ namespace QtVsTools.Core public static Project GetSelectedProject(DTE dteObject) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (dteObject == null) return null; - ThreadHelper.ThrowIfNotOnUIThread(); - Array prjs = null; try { prjs = (Array)dteObject.ActiveSolutionProjects; @@ -1152,11 +1153,11 @@ namespace QtVsTools.Core public static VCFile[] GetSelectedFiles(DTE dteObject) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (GetSelectedQtProject(dteObject) == null) return null; - ThreadHelper.ThrowIfNotOnUIThread(); - if (dteObject.SelectedItems.Count <= 0) return null; @@ -1266,11 +1267,11 @@ namespace QtVsTools.Core private static void addSubProjects(ProjectItems subItems, ref List<Project> projects) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (subItems == null) return; - ThreadHelper.ThrowIfNotOnUIThread(); - foreach (ProjectItem item in subItems) { Project subprj = null; try { @@ -1662,8 +1663,6 @@ namespace QtVsTools.Core public static bool SetVCVars(VersionInformation VersionInfo, ProcessStartInfo startInfo) { - ThreadHelper.ThrowIfNotOnUIThread(); - if (VersionInfo == null) { VersionInfo = QtVersionManager.The().GetVersionInfo( QtVersionManager.The().GetDefaultVersion()); diff --git a/QtVsTools.Core/MsBuildProject.cs b/QtVsTools.Core/MsBuildProject.cs index edba45e5..9cd54631 100644 --- a/QtVsTools.Core/MsBuildProject.cs +++ b/QtVsTools.Core/MsBuildProject.cs @@ -290,8 +290,6 @@ namespace QtVsTools.Core /// <returns>true if successful</returns> public bool UpdateProjectFormatVersion() { - ThreadHelper.ThrowIfNotOnUIThread(); - if (ConfigCondition == null) return false; diff --git a/QtVsTools.Core/ProjectExporter.cs b/QtVsTools.Core/ProjectExporter.cs index ff737eea..b5bcfcca 100644 --- a/QtVsTools.Core/ProjectExporter.cs +++ b/QtVsTools.Core/ProjectExporter.cs @@ -92,11 +92,11 @@ namespace QtVsTools.Core private ProSolution CreateProFileSolution(Solution sln) { + ThreadHelper.ThrowIfNotOnUIThread(); + ProFileContent content; var prosln = new ProSolution(sln); - ThreadHelper.ThrowIfNotOnUIThread(); - foreach (var proj in HelperFunctions.ProjectsInSolution(sln.DTE)) { try { // only add qt projects @@ -131,12 +131,12 @@ namespace QtVsTools.Core private static ProFileContent CreateProFileContent(Project project) { + ThreadHelper.ThrowIfNotOnUIThread(); + ProFileOption option; var qtPro = QtProject.Create(project); var content = new ProFileContent(qtPro.VCProject); - ThreadHelper.ThrowIfNotOnUIThread(); - // hack to get active config var activeConfig = project.ConfigurationManager.ActiveConfiguration.ConfigurationName; var activePlatform = project.ConfigurationManager.ActiveConfiguration.PlatformName; @@ -425,6 +425,8 @@ namespace QtVsTools.Core private static void AddIncludePaths(Project project, ProFileOption option, string includePaths) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (QtProject.GetFormatVersion(project) >= Resources.qtMinFormatVersion_ClProperties) return; @@ -440,8 +442,6 @@ namespace QtVsTools.Core qtDir = HelperFunctions.NormalizeRelativeFilePath(qtDir); - ThreadHelper.ThrowIfNotOnUIThread(); - foreach (var s in includePaths.Split(';', ',')) { var d = HelperFunctions.NormalizeRelativeFilePath(s); if (!d.StartsWith("$(qtdir)\\include", StringComparison.OrdinalIgnoreCase) && @@ -585,6 +585,8 @@ namespace QtVsTools.Core private void WriteProFile(ProFileContent content, string proFile, string priFileToInclude, bool openFile) { + ThreadHelper.ThrowIfNotOnUIThread(); + StreamWriter sw; if (File.Exists(proFile)) { if (MessageBox.Show(SR.GetString("ExportProject_ExistsOverwriteQuestion", proFile), @@ -617,7 +619,6 @@ namespace QtVsTools.Core WriteProFileOptions(sw, content.Options); } - ThreadHelper.ThrowIfNotOnUIThread(); if (openFile) // open the file in vs dteObject.OpenFile(Constants.vsViewKindTextView, proFile).Activate(); } @@ -717,6 +718,8 @@ namespace QtVsTools.Core public static void SyncIncludeFiles(VCProject vcproj, List<string> priFiles, List<string> projFiles, DTE dte, bool flat, FakeFilter fakeFilter) { + ThreadHelper.ThrowIfNotOnUIThread(); + var cmpPriFiles = new List<string>(priFiles.Count); foreach (var s in priFiles) cmpPriFiles.Add(HelperFunctions.NormalizeFilePath(s).ToLower()); @@ -726,8 +729,6 @@ namespace QtVsTools.Core foreach (var s in projFiles) cmpProjFiles.Add(HelperFunctions.NormalizeFilePath(s).ToLower()); - ThreadHelper.ThrowIfNotOnUIThread(); - var qtPro = QtProject.Create(vcproj); var filterPathTable = new Hashtable(17); var pathFilterTable = new Hashtable(17); diff --git a/QtVsTools.Core/ProjectImporter.cs b/QtVsTools.Core/ProjectImporter.cs index e90ae3c0..2ed75357 100644 --- a/QtVsTools.Core/ProjectImporter.cs +++ b/QtVsTools.Core/ProjectImporter.cs @@ -48,6 +48,8 @@ namespace QtVsTools.Core public void ImportProFile(string qtVersion) { + ThreadHelper.ThrowIfNotOnUIThread(); + FileDialog toOpen = new OpenFileDialog(); toOpen.FilterIndex = 1; toOpen.CheckFileExists = true; @@ -57,8 +59,6 @@ namespace QtVsTools.Core if (DialogResult.OK != toOpen.ShowDialog()) return; - ThreadHelper.ThrowIfNotOnUIThread(); - var mainInfo = new FileInfo(toOpen.FileName); if (HelperFunctions.IsSubDirsFile(mainInfo.FullName)) { // we use the safe way. Make the user close the existing solution manually @@ -81,14 +81,14 @@ namespace QtVsTools.Core private void ImportSolution(FileInfo mainInfo, string qtVersion) { + ThreadHelper.ThrowIfNotOnUIThread(); + var versionInfo = QtVersionManager.The().GetVersionInfo(qtVersion); var VCInfo = RunQmake(mainInfo, ".sln", true, versionInfo); if (null == VCInfo) return; ImportQMakeSolution(VCInfo, versionInfo); - ThreadHelper.ThrowIfNotOnUIThread(); - try { if (CheckQtVersion(versionInfo)) { dteObject.Solution.Open(VCInfo.FullName); @@ -111,6 +111,8 @@ namespace QtVsTools.Core public void ImportProject(FileInfo mainInfo, string qtVersion) { + ThreadHelper.ThrowIfNotOnUIThread(); + var versionInfo = QtVersionManager.The().GetVersionInfo(qtVersion); var VCInfo = RunQmake(mainInfo, projectFileExtension, false, versionInfo); if (null == VCInfo) @@ -118,7 +120,6 @@ namespace QtVsTools.Core ImportQMakeProject(VCInfo, versionInfo); - ThreadHelper.ThrowIfNotOnUIThread(); try { if (CheckQtVersion(versionInfo)) { // no need to add the project again if it's already there... @@ -185,9 +186,6 @@ namespace QtVsTools.Core private void ImportQMakeSolution(FileInfo solutionFile, VersionInformation vi) { var projects = ParseProjectsFromSolution(solutionFile); - - ThreadHelper.ThrowIfNotOnUIThread(); - foreach (var project in projects) { var projectInfo = new FileInfo(project); ImportQMakeProject(projectInfo, vi); @@ -214,8 +212,6 @@ namespace QtVsTools.Core private void ImportQMakeProject(FileInfo projectFile, VersionInformation vi) { - ThreadHelper.ThrowIfNotOnUIThread(); - var xmlProject = MsBuildProject.Load(projectFile.FullName); xmlProject.ReplacePath(vi.qtDir, "$(QTDIR)"); xmlProject.ReplacePath(projectFile.DirectoryName, "."); @@ -245,6 +241,8 @@ namespace QtVsTools.Core private static void ApplyPostImportSteps(QtProject qtProject) { + ThreadHelper.ThrowIfNotOnUIThread(); + qtProject.RemoveResFilesFromGeneratedFilesFilter(); qtProject.TranslateFilterNames(); @@ -252,7 +250,6 @@ namespace QtVsTools.Core qtProject.CollapseFilter(Filters.ResourceFiles().Name); qtProject.CollapseFilter(Filters.GeneratedFiles().Name); - ThreadHelper.ThrowIfNotOnUIThread(); try { // save the project after modification qtProject.Project.Save(null); diff --git a/QtVsTools.Core/QMake.cs b/QtVsTools.Core/QMake.cs index 362ee1e5..5cdabeb3 100644 --- a/QtVsTools.Core/QMake.cs +++ b/QtVsTools.Core/QMake.cs @@ -181,8 +181,6 @@ namespace QtVsTools.Core public virtual int Run(bool setVCVars = false) { - ThreadHelper.ThrowIfNotOnUIThread(); - int exitCode = -1; using (var qmakeProc = CreateProcess()) { try { diff --git a/QtVsTools.Core/QMakeConf.cs b/QtVsTools.Core/QMakeConf.cs index 471d999c..14f06ece 100644 --- a/QtVsTools.Core/QMakeConf.cs +++ b/QtVsTools.Core/QMakeConf.cs @@ -40,8 +40,6 @@ namespace QtVsTools.Core public QMakeConf(VersionInformation versionInfo, QMakeQuery qmakeQuery = null) { - ThreadHelper.ThrowIfNotOnUIThread(); - Entries = new Hashtable(); QMakeSpecDirectory = Path.Combine(versionInfo.qtDir, "mkspecs", "default"); var qmakeConf = Path.Combine(QMakeSpecDirectory, "qmake.conf"); diff --git a/QtVsTools.Core/QMakeQuery.cs b/QtVsTools.Core/QMakeQuery.cs index a1944328..10feff86 100644 --- a/QtVsTools.Core/QMakeQuery.cs +++ b/QtVsTools.Core/QMakeQuery.cs @@ -56,8 +56,6 @@ namespace QtVsTools.Core public Dictionary<string, string> QueryAllValues() { - ThreadHelper.ThrowIfNotOnUIThread(); - stdOutput = new StringBuilder(); Query = " "; @@ -77,8 +75,6 @@ namespace QtVsTools.Core { get { - ThreadHelper.ThrowIfNotOnUIThread(); - if (Properties.TryGetValue(name, out string value)) return value; return null; @@ -90,8 +86,6 @@ namespace QtVsTools.Core { get { - ThreadHelper.ThrowIfNotOnUIThread(); - return _Properties ?? (_Properties = QueryAllValues()); } } diff --git a/QtVsTools.Core/QtProject.cs b/QtVsTools.Core/QtProject.cs index 2fd09a9b..7062a2ae 100644 --- a/QtVsTools.Core/QtProject.cs +++ b/QtVsTools.Core/QtProject.cs @@ -586,13 +586,13 @@ namespace QtVsTools.Core /// <param name="file">file</param> public void AddUic4BuildStep(VCFile file) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (GetFormatVersion(vcPro) >= Resources.qtMinFormatVersion_Settings) { file.ItemType = QtUic.ItemTypeName; return; } - ThreadHelper.ThrowIfNotOnUIThread(); - CustomTool toolSettings = IsQtMsBuildEnabled() ? CustomTool.MSBuildTarget : CustomTool.CustomBuildStep; @@ -897,6 +897,8 @@ namespace QtVsTools.Core string includes, string description) { + ThreadHelper.ThrowIfNotOnUIThread(); + var workFile = workFileConfig.File as VCFile; var mocFileName = GetMocFileName(sourceFile.FullPath); var mocableIsCPP = HelperFunctions.IsMocFile(mocFileName); @@ -941,8 +943,6 @@ namespace QtVsTools.Core var regExp = new Regex(pattern); var matchList = regExp.Matches(tool.Outputs.Replace(ProjectMacros.Name, baseFileName)); - ThreadHelper.ThrowIfNotOnUIThread(); - if (matchList.Count > 0) { if (matchList[0].Length > 0) outputMocFile = matchList[0].ToString(); @@ -1110,14 +1110,14 @@ namespace QtVsTools.Core VCFileConfiguration workConfig, CustomTool toolSettings) { + ThreadHelper.ThrowIfNotOnUIThread(); + var mocFileName = GetMocFileName(sourceFile.FullPath); var mocableIsCPP = HelperFunctions.IsMocFile(mocFileName); var vcConfig = workConfig.ProjectConfiguration as VCConfiguration; var platform = vcConfig.Platform as VCPlatform; var platformName = platform.Name; - ThreadHelper.ThrowIfNotOnUIThread(); - var mocRelPath = GetRelativeMocFilePath( sourceFile.FullPath, vcConfig.ConfigurationName, @@ -1194,6 +1194,8 @@ namespace QtVsTools.Core /// <param name="file">file</param> public void AddMocStep(VCFile file) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (GetFormatVersion(vcPro) >= Resources.qtMinFormatVersion_Settings) { file.ItemType = QtMoc.ItemTypeName; if (HelperFunctions.IsSourceFile(file.FullPath)) { @@ -1208,7 +1210,6 @@ namespace QtVsTools.Core CustomTool toolSettings = IsQtMsBuildEnabled() ? CustomTool.MSBuildTarget : CustomTool.CustomBuildStep; - ThreadHelper.ThrowIfNotOnUIThread(); try { var mocFileName = GetMocFileName(file.FullPath); if (mocFileName == null) @@ -1295,14 +1296,14 @@ namespace QtVsTools.Core public bool HasMocStep(VCFile file, string mocOutDir = null) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (file.ItemType == QtMoc.ItemTypeName) return true; if (HelperFunctions.IsHeaderFile(file.Name)) return CheckForCommand(file, "moc.exe"); - ThreadHelper.ThrowIfNotOnUIThread(); - if (HelperFunctions.IsSourceFile(file.Name)) { return (HasCppMocFiles(file)); } @@ -1392,6 +1393,8 @@ namespace QtVsTools.Core string nameOnly, string qrcCppFile) { + ThreadHelper.ThrowIfNotOnUIThread(); + var qrcFile = vfc.File as VCFile; var rccOptsCfg = rccOpts; var cmdLine = string.Empty; @@ -1404,8 +1407,6 @@ namespace QtVsTools.Core cmdLine += "\"" + Resources.rcc4Command + "\"" + " -name \"" + ProjectMacros.Name + "\""; - ThreadHelper.ThrowIfNotOnUIThread(); - if (rccOptsCfg == null) rccOptsCfg = HelperFunctions.ParseRccOptions(cbt.CommandLine, qrcFile); @@ -1421,13 +1422,13 @@ namespace QtVsTools.Core public void UpdateRccStep(VCFile qrcFile, RccOptions rccOpts) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (GetFormatVersion(vcPro) >= Resources.qtMinFormatVersion_Settings) { qrcFile.ItemType = QtRcc.ItemTypeName; return; } - ThreadHelper.ThrowIfNotOnUIThread(); - CustomTool toolSettings = IsQtMsBuildEnabled() ? CustomTool.MSBuildTarget : CustomTool.CustomBuildStep; @@ -2041,6 +2042,8 @@ namespace QtVsTools.Core /// <param name="file"></param> public static void AdjustWhitespace(DTE dte, string file) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (!File.Exists(file)) return; @@ -2051,7 +2054,6 @@ namespace QtVsTools.Core } try { - ThreadHelper.ThrowIfNotOnUIThread(); var prop = dte.get_Properties("TextEditor", "C/C++"); var tabSize = Convert.ToInt64(prop.Item("TabSize").Value); var insertTabs = Convert.ToBoolean(prop.Item("InsertTabs").Value); @@ -2386,6 +2388,8 @@ namespace QtVsTools.Core public void RefreshMocSteps() { + ThreadHelper.ThrowIfNotOnUIThread(); + // Ignore when using shared compiler properties if (GetFormatVersion(vcPro) >= Resources.qtMinFormatVersion_ClProperties) return; @@ -2394,8 +2398,6 @@ namespace QtVsTools.Core if (filesCollection == null) return; - ThreadHelper.ThrowIfNotOnUIThread(); - int progress = 0; int progressTotal = filesCollection.Count; var waitDialog = WaitDialog.StartWithProgress(SR.GetString("Resources_QtVsTools"), @@ -2429,6 +2431,8 @@ namespace QtVsTools.Core /// <param name="vcfile"></param> private void RefreshMocStep(VCFile vcfile, bool singleFile) { + ThreadHelper.ThrowIfNotOnUIThread(); + var isHeaderFile = HelperFunctions.IsHeaderFile(vcfile.FullPath); if (!isHeaderFile && !HelperFunctions.IsSourceFile(vcfile.FullPath)) return; @@ -2436,8 +2440,6 @@ namespace QtVsTools.Core if (mocCmdChecker == null) mocCmdChecker = new MocCmdChecker(); - ThreadHelper.ThrowIfNotOnUIThread(); - foreach (VCFileConfiguration config in (IVCCollection)vcfile.FileConfigurations) { try { string commandLine = ""; @@ -2791,8 +2793,6 @@ namespace QtVsTools.Core if (newIsWinRt == oldIsWinRt || newIsWinRt == isWinRT()) return true; - ThreadHelper.ThrowIfNotOnUIThread(); - var promptCaption = string.Format("Change Qt Version ({0})", Project.Name); var promptText = string.Format( "Changing Qt version from {0} to {1}.\r\n" + @@ -2815,6 +2815,8 @@ namespace QtVsTools.Core /// <returns>true, if the operation performed successfully</returns> public bool ChangeQtVersion(string oldVersion, string newVersion, ref bool newProjectCreated) { + ThreadHelper.ThrowIfNotOnUIThread(); + newProjectCreated = false; var versionManager = QtVersionManager.The(); var viNew = versionManager.GetVersionInfo(newVersion); @@ -2832,8 +2834,6 @@ namespace QtVsTools.Core var refreshMocSteps = (vsPlatformNameNew != vsPlatformNameOld); var platformChanged = (vsPlatformNameNew != vsPlatformNameOld); - ThreadHelper.ThrowIfNotOnUIThread(); - try { if (platformChanged) { if (!SelectSolutionPlatform(vsPlatformNameNew) || !HasPlatform(vsPlatformNameNew)) { @@ -2975,8 +2975,6 @@ namespace QtVsTools.Core if (genVCFilter == null) return; - ThreadHelper.ThrowIfNotOnUIThread(); - if (DeleteFilesFromFilter(genVCFilter)) Messages.Print(SR.GetString("DeleteGeneratedFilesError")); } @@ -3203,6 +3201,8 @@ namespace QtVsTools.Core /// </summary> public void SetQtEnvironment(string qtVersion, string solutionConfig, bool build = false) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (string.IsNullOrEmpty(qtVersion)) return; @@ -3214,7 +3214,6 @@ namespace QtVsTools.Core qtDir = QtVersionManager.The().GetInstallPath(qtVersion); HelperFunctions.SetEnvironmentVariableEx("QTDIR", qtDir); - ThreadHelper.ThrowIfNotOnUIThread(); try { var propertyAccess = (IVCBuildPropertyStorage)vcPro; var vcprj = envPro.Object as VCProject; diff --git a/QtVsTools.Core/QtVSIPSettings.cs b/QtVsTools.Core/QtVSIPSettings.cs index 10bdb5ef..48328e7f 100644 --- a/QtVsTools.Core/QtVSIPSettings.cs +++ b/QtVsTools.Core/QtVSIPSettings.cs @@ -218,11 +218,11 @@ namespace QtVsTools.Core public static void SaveMocOptions(EnvDTE.Project project, string options) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (options == null) options = GetMocOptions(); - ThreadHelper.ThrowIfNotOnUIThread(); - SaveOption(project, Resources.mocOptionsKeyword, options); } @@ -234,21 +234,21 @@ namespace QtVsTools.Core public static void SaveLUpdateOptions(EnvDTE.Project project, string options) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (options == null) options = GetLUpdateOptions(); - ThreadHelper.ThrowIfNotOnUIThread(); - SaveOption(project, Resources.lupdateOptionsKeyword, options); } public static void SaveLReleaseOptions(EnvDTE.Project project, string options) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (options == null) options = GetLReleaseOptions(); - ThreadHelper.ThrowIfNotOnUIThread(); - SaveOption(project, Resources.lreleaseOptionsKeyword, options); } diff --git a/QtVsTools.Core/QtVersionManager.cs b/QtVsTools.Core/QtVersionManager.cs index 7700480e..db31cd60 100644 --- a/QtVsTools.Core/QtVersionManager.cs +++ b/QtVsTools.Core/QtVersionManager.cs @@ -354,11 +354,11 @@ namespace QtVsTools.Core public bool SaveProjectQtVersion(EnvDTE.Project project, string version, string platform) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (!IsVersionAvailable(version) && version != "$(DefaultQtVersion)") return false; - ThreadHelper.ThrowIfNotOnUIThread(); - if (QtProject.GetFormatVersion(project) >= Resources.qtMinFormatVersion_Settings) { var vcPro = project.Object as VCProject; if (vcPro == null) @@ -405,11 +405,11 @@ namespace QtVsTools.Core public string GetProjectQtVersion(EnvDTE.Project project, EnvDTE.Configuration config) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (QtProject.GetFormatVersion(project) >= Resources.qtMinFormatVersion_Settings) return QtProject.GetPropertyValue(project, config, "QtInstall"); - ThreadHelper.ThrowIfNotOnUIThread(); - var key = "Qt5Version " + config.PlatformName; if (!project.Globals.get_VariablePersists(key)) return null; @@ -420,11 +420,11 @@ namespace QtVsTools.Core public string GetProjectQtVersion(EnvDTE.Project project, string platform) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (QtProject.GetFormatVersion(project) >= Resources.qtMinFormatVersion_Settings) return GetProjectQtVersion(project); - ThreadHelper.ThrowIfNotOnUIThread(); - var key = "Qt5Version " + platform; if (!project.Globals.get_VariablePersists(key)) return null; @@ -450,11 +450,11 @@ namespace QtVsTools.Core public bool SaveSolutionQtVersion(EnvDTE.Solution solution, string version) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (!IsVersionAvailable(version) && version != "$(DefaultQtVersion)") return false; - ThreadHelper.ThrowIfNotOnUIThread(); - solution.Globals["Qt5Version"] = version; if (!solution.Globals.get_VariablePersists("Qt5Version")) solution.Globals.set_VariablePersists("Qt5Version", true); @@ -463,11 +463,11 @@ namespace QtVsTools.Core public string GetSolutionQtVersion(EnvDTE.Solution solution) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (solution == null) return null; - ThreadHelper.ThrowIfNotOnUIThread(); - if (solution.Globals.get_VariableExists("Qt5Version")) { var version = (string)solution.Globals["Qt5Version"]; return VerifyIfQtVersionExists(version) ? version : null; diff --git a/QtVsTools.Core/VersionInformation.cs b/QtVsTools.Core/VersionInformation.cs index 8c0bb195..67997ccf 100644 --- a/QtVsTools.Core/VersionInformation.cs +++ b/QtVsTools.Core/VersionInformation.cs @@ -94,8 +94,6 @@ namespace QtVsTools.Core private VersionInformation(string qtDirIn) { - ThreadHelper.ThrowIfNotOnUIThread(); - qtDir = qtDirIn; try { @@ -288,8 +286,6 @@ namespace QtVsTools.Core public bool isWinRT() { - ThreadHelper.ThrowIfNotOnUIThread(); - var qmakeQuery = new QMakeQuery(this); string qmakeXSpec; try { diff --git a/QtVsTools.Core/WaitDialog.cs b/QtVsTools.Core/WaitDialog.cs index 38f68d8e..6b76abd6 100644 --- a/QtVsTools.Core/WaitDialog.cs +++ b/QtVsTools.Core/WaitDialog.cs @@ -48,14 +48,14 @@ namespace QtVsTools.Core { get { + ThreadHelper.ThrowIfNotOnUIThread(); + if (vsDialogCanceled.HasValue) return vsDialogCanceled.Value; if (VsWaitDialog == null) return false; - ThreadHelper.ThrowIfNotOnUIThread(); - int res = VsWaitDialog.HasCanceled(out bool canceled); if (res != VSConstants.S_OK) return false; @@ -72,6 +72,8 @@ namespace QtVsTools.Core static WaitDialog Create(IVsThreadedWaitDialogFactory dialogFactory) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (factory == null) { factory = dialogFactory ?? VsServiceProvider .GetService<SVsThreadedWaitDialogFactory, IVsThreadedWaitDialogFactory>(); @@ -79,8 +81,6 @@ namespace QtVsTools.Core return null; } - ThreadHelper.ThrowIfNotOnUIThread(); - factory.CreateInstance(out IVsThreadedWaitDialog2 vsWaitDialog); if (vsWaitDialog == null) return null; @@ -102,12 +102,12 @@ namespace QtVsTools.Core bool showMarqueeProgress = true, IVsThreadedWaitDialogFactory dialogFactory = null) { + ThreadHelper.ThrowIfNotOnUIThread(); + var dialog = Create(dialogFactory); if (dialog == null) return null; - ThreadHelper.ThrowIfNotOnUIThread(); - var res = dialog.VsWaitDialog.StartWaitDialog(caption, message, progressText, null, statusBarText, delay, isCancelable, showMarqueeProgress); @@ -128,12 +128,12 @@ namespace QtVsTools.Core bool isCancelable = false, IVsThreadedWaitDialogFactory dialogFactory = null) { + ThreadHelper.ThrowIfNotOnUIThread(); + var dialog = Create(dialogFactory); if (dialog == null) return null; - ThreadHelper.ThrowIfNotOnUIThread(); - var res = dialog.VsWaitDialog.StartWaitDialogWithPercentageProgress( caption, message, progressText, null, statusBarText, isCancelable, delay, totalSteps, currentStep); @@ -152,11 +152,11 @@ namespace QtVsTools.Core string statusBarText = null, bool disableCancel = false) { + ThreadHelper.ThrowIfNotOnUIThread(); + if (!Running) return; - ThreadHelper.ThrowIfNotOnUIThread(); - int res = VsWaitDialog.UpdateProgress(message, progressText, statusBarText, currentStep, totalSteps, disableCancel, out bool canceled); @@ -169,11 +169,11 @@ namespace QtVsTools.Core public void Stop() { + ThreadHelper.ThrowIfNotOnUIThread(); + if (!Running) return; - ThreadHelper.ThrowIfNotOnUIThread(); - Running = false; VsWaitDialog.EndWaitDialog(out int canceled); Canceled = (canceled != 0); |