aboutsummaryrefslogtreecommitdiffstats
path: root/QtVsTools.Core
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2022-02-18 15:48:11 +0100
committerMiguel Costa <miguel.costa@qt.io>2022-02-22 09:32:28 +0000
commit8058ed8e43f327e2a3288d627c380e2b6450a59a (patch)
tree3c18f44df2304de01fd58855f7963282f3f79cee /QtVsTools.Core
parent38d7aa663140de527b1d50c7d3b157e0fb76319f (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.cs53
-rw-r--r--QtVsTools.Core/MsBuildProject.cs2
-rw-r--r--QtVsTools.Core/ProjectExporter.cs19
-rw-r--r--QtVsTools.Core/ProjectImporter.cs19
-rw-r--r--QtVsTools.Core/QMake.cs2
-rw-r--r--QtVsTools.Core/QMakeConf.cs2
-rw-r--r--QtVsTools.Core/QMakeQuery.cs6
-rw-r--r--QtVsTools.Core/QtProject.cs49
-rw-r--r--QtVsTools.Core/QtVSIPSettings.cs12
-rw-r--r--QtVsTools.Core/QtVersionManager.cs20
-rw-r--r--QtVsTools.Core/VersionInformation.cs4
-rw-r--r--QtVsTools.Core/WaitDialog.cs24
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);