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/QtSolutionContextMenu.cs | 107 +++++++++++++++++++----------------------------------
1 files changed, 39 insertions(+), 68 deletions(-)
diff --git a/QtVsTools.Package/Package/QtSolutionContextMenu.cs b/QtVsTools.Package/Package/QtSolutionContextMenu.cs
index d680fe7..67f2a8c 100644
--- a/QtVsTools.Package/Package/QtSolutionContextMenu.cs
+++ b/QtVsTools.Package/Package/QtSolutionContextMenu.cs
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 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.
@@ -26,17 +26,15 @@
**
****************************************************************************/
-using EnvDTE80;
-using Microsoft.VisualStudio.Shell;
-using QtVsTools.Core;
-using QtVsTools.VisualStudio;
using System;
using System.ComponentModel.Design;
-using System.Windows.Forms;
+using Microsoft.VisualStudio.Shell;
namespace QtVsTools
{
+ using Core;
using QtMsBuild;
+ using VisualStudio;
/// <summary>
/// Command handler
@@ -46,30 +44,24 @@
/// <summary>
/// Command menu group (command set GUID).
/// </summary>
- public static readonly Guid SolutionContextMenuGuid = new Guid("6dcda34f-4d22-4d6a-a176-5507069c5a3e");
+ private static readonly Guid SolutionContextMenuGuid = new Guid("6dcda34f-4d22-4d6a-a176-5507069c5a3e");
/// <summary>
/// Gets the instance of the command.
/// </summary>
- public static QtSolutionContextMenu Instance
+ private static QtSolutionContextMenu Instance
{
get;
- private set;
+ set;
}
/// <summary>
/// Initializes the singleton instance of the command.
/// </summary>
- /// <param name="package">Owner package, not null.</param>
- public static void Initialize(Package package)
+ public static void Initialize()
{
- Instance = new QtSolutionContextMenu(package);
+ Instance = new QtSolutionContextMenu();
}
-
- /// <summary>
- /// VS Package that provides this command, not null.
- /// </summary>
- private readonly Package m_package;
/// <summary>
/// Command ID.
@@ -87,14 +79,8 @@
/// Initializes a new instance of the <see cref="QtMainMenu"/> class.
/// Adds our command handlers for menu (commands must exist in the command table file)
/// </summary>
- /// <param name="package">Owner package, not null.</param>
- private QtSolutionContextMenu(Package package)
+ private QtSolutionContextMenu()
{
- if (package == null)
- throw new ArgumentNullException("package");
-
- m_package = package;
-
var commandService = VsServiceProvider
.GetService<IMenuCommandService, OleMenuCommandService>();
if (commandService == null)
@@ -113,66 +99,51 @@
var command = sender as OleMenuCommand;
if (command == null)
return;
- command.Enabled = command.Visible = true;
+
+ switch (command.CommandID.ID) {
+ case (int)CommandId.ChangeSolutionQtVersionId:
+ var projects = HelperFunctions.ProjectsInSolution(QtVsToolsPackage.Instance.Dte);
+ foreach (var project in projects) {
+ if (!HelperFunctions.IsVsToolsProject(project)
+ && HelperFunctions.IsQtProject(project)) {
+ command.Enabled = command.Visible = true;
+ return;
+ }
+ }
+ command.Enabled = command.Visible = false;
+ break;
+ default:
+ command.Enabled = command.Visible = true;
+ break;
+ }
}
private void execHandler(object sender, EventArgs e)
{
+ ThreadHelper.ThrowIfNotOnUIThread();
+
var command = sender as OleMenuCommand;
if (command == null)
return;
var dte = QtVsToolsPackage.Instance.Dte;
- switch (command.CommandID.ID) {
- case (int)CommandId.lUpdateOnSolutionId:
+ switch ((CommandId)command.CommandID.ID) {
+ case CommandId.lUpdateOnSolutionId:
Translation.RunlUpdate(QtVsToolsPackage.Instance.Dte.Solution);
break;
- case (int)CommandId.lReleaseOnSolutionId:
+ case CommandId.lReleaseOnSolutionId:
Translation.RunlRelease(QtVsToolsPackage.Instance.Dte.Solution);
break;
- case (int)CommandId.ChangeSolutionQtVersionId:
- string newQtVersion = null;
- using (var formChangeQtVersion = new FormChangeQtVersion()) {
- formChangeQtVersion.UpdateContent(ChangeFor.Solution);
- if (formChangeQtVersion.ShowDialog() != DialogResult.OK)
- return;
- newQtVersion = formChangeQtVersion.GetSelectedQtVersion();
- }
- if (newQtVersion == null)
- return;
-
- string currentPlatform = null;
- try {
- var config2 = QtVsToolsPackage.Instance.Dte.Solution.SolutionBuild
- .ActiveConfiguration as SolutionConfiguration2;
- currentPlatform = config2.PlatformName;
- } catch { }
- if (string.IsNullOrEmpty(currentPlatform))
- return;
-
- foreach (var project in HelperFunctions.ProjectsInSolution(dte)) {
- if (HelperFunctions.IsQtProject(project)) {
- var OldQtVersion = QtVersionManager.The().GetProjectQtVersion(project,
- currentPlatform);
- if (OldQtVersion == null)
- OldQtVersion = QtVersionManager.The().GetDefaultVersion();
-
- var created = false;
- var qtProject = QtProject.Create(project);
- if (qtProject.PromptChangeQtVersion(OldQtVersion, newQtVersion))
- qtProject.ChangeQtVersion(OldQtVersion, newQtVersion, ref created);
- }
- }
- QtVersionManager.The().SaveSolutionQtVersion(dte.Solution, newQtVersion);
+ case CommandId.ChangeSolutionQtVersionId:
+ Legacy.QtMenu.ShowFormChangeSolutionQtVersion();
break;
- case (int)CommandId.SolutionConvertToQtMsBuild: {
- QtMsBuildConverter.SolutionToQtMsBuild();
- }
+ case CommandId.SolutionConvertToQtMsBuild:
+ QtMsBuildConverter.SolutionToQtMsBuild();
break;
- case (int)CommandId.SolutionEnableProjectTracking: {
+ case CommandId.SolutionEnableProjectTracking: {
foreach (var project in HelperFunctions.ProjectsInSolution(dte)) {
- if (HelperFunctions.IsQtProject(project))
- QtProjectTracker.Get(project);
+ if (HelperFunctions.IsVsToolsProject(project))
+ QtProjectTracker.Get(project, project.FullName);
}
}
break;
--
Gitblit v1.9.1