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/QtProjectContextMenu.cs | 128 ++++++++---------------------------------- 1 files changed, 26 insertions(+), 102 deletions(-) diff --git a/QtVsTools.Package/Package/QtProjectContextMenu.cs b/QtVsTools.Package/Package/QtProjectContextMenu.cs index 2706ef5..3b08b13 100644 --- a/QtVsTools.Package/Package/QtProjectContextMenu.cs +++ b/QtVsTools.Package/Package/QtProjectContextMenu.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,20 +26,17 @@ ** ****************************************************************************/ -using EnvDTE; -using Microsoft.VisualStudio; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; -using Microsoft.VisualStudio.VCProjectEngine; -using QtVsTools.Core; -using QtVsTools.VisualStudio; using System; using System.ComponentModel.Design; using System.Windows.Forms; +using Microsoft.VisualStudio.Shell; +using EnvDTE; namespace QtVsTools { + using Core; using QtMsBuild; + using VisualStudio; /// <summary> /// Command handler @@ -49,24 +46,23 @@ /// <summary> /// Command menu group (command set GUID). /// </summary> - public static readonly Guid ProjectContextMenuGuid = new Guid("5732faa9-6074-4e07-b035-2816e809f50e"); + private static readonly Guid ProjectContextMenuGuid = new Guid("5732faa9-6074-4e07-b035-2816e809f50e"); /// <summary> /// Gets the instance of the command. /// </summary> - public static QtProjectContextMenu Instance + private static QtProjectContextMenu 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 QtProjectContextMenu(package); + Instance = new QtProjectContextMenu(); } /// <summary> @@ -77,35 +73,20 @@ ImportPriFileProjectId = 0x0114, ExportPriFileProjectId = 0x0115, ExportProFileProjectId = 0x0116, - CreateNewTsFileProjectId = 0x0117, lUpdateOnProjectId = 0x0118, lReleaseOnProjectId = 0x0119, ProjectConvertToQtMsBuild = 0x0130, ProjectRefreshIntelliSense = 0x0131, - ConvertToQtProjectId = 0x0120, - ConvertToQmakeProjectId = 0x0121, QtProjectSettingsProjectId = 0x0122, - ChangeProjectQtVersionProjectId = 0x0123, - ProjectAddNewQtClassProjectId = 0x200 + ChangeProjectQtVersionProjectId = 0x0123 } - - /// <summary> - /// VS Package that provides this command, not null. - /// </summary> - private readonly Package m_package; /// <summary> /// 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 QtProjectContextMenu(Package package) + private QtProjectContextMenu() { - if (package == null) - throw new ArgumentNullException("package"); - - m_package = package; - var commandService = VsServiceProvider .GetService<IMenuCommandService, OleMenuCommandService>(); if (commandService == null) @@ -121,6 +102,8 @@ private void execHandler(object sender, EventArgs e) { + ThreadHelper.ThrowIfNotOnUIThread(); + var command = sender as OleMenuCommand; if (command == null) return; @@ -135,25 +118,11 @@ case CommandId.ExportProFileProjectId: ExtLoader.ExportProFile(); break; - case CommandId.CreateNewTsFileProjectId: - Translation.CreateNewTranslationFile(HelperFunctions.GetSelectedQtProject(QtVsToolsPackage - .Instance.Dte)); - break; case CommandId.lUpdateOnProjectId: Translation.RunlUpdate(HelperFunctions.GetSelectedQtProject(QtVsToolsPackage.Instance.Dte)); break; case CommandId.lReleaseOnProjectId: Translation.RunlRelease(HelperFunctions.GetSelectedQtProject(QtVsToolsPackage.Instance.Dte)); - break; - case CommandId.ConvertToQtProjectId: - case CommandId.ConvertToQmakeProjectId: { - var caption = SR.GetString("ConvertTitle"); - var text = SR.GetString("ConvertConfirmation"); - if (MessageBox.Show(text, caption, MessageBoxButtons.YesNo) == DialogResult.Yes) { - HelperFunctions.ToggleProjectKind(HelperFunctions.GetSelectedProject(QtVsToolsPackage - .Instance.Dte)); - } - } break; case CommandId.QtProjectSettingsProjectId: { var pro = HelperFunctions.GetSelectedQtProject(QtVsToolsPackage.Instance.Dte); @@ -161,31 +130,14 @@ if (projectVersion >= Resources.qtMinFormatVersion_Settings) { QtVsToolsPackage.Instance.Dte.ExecuteCommand("Project.Properties"); } else if (pro != null) { - using (var formProjectQtSettings = new FormProjectQtSettings()) { - formProjectQtSettings.SetProject(pro); - formProjectQtSettings.StartPosition = FormStartPosition.CenterParent; - var ww = new MainWinWrapper(QtVsToolsPackage.Instance.Dte); - formProjectQtSettings.ShowDialog(ww); - } + Legacy.QtMenu.ShowFormProjectQtSettings(pro); } else { MessageBox.Show(SR.GetString("NoProjectOpened")); } } break; - case CommandId.ChangeProjectQtVersionProjectId: { - var pro = HelperFunctions.GetSelectedQtProject(QtVsToolsPackage.Instance.Dte); - if (HelperFunctions.IsQMakeProject(pro)) { - using (var formChangeQtVersion = new FormChangeQtVersion()) { - formChangeQtVersion.UpdateContent(ChangeFor.Project); - var ww = new MainWinWrapper(QtVsToolsPackage.Instance.Dte); - if (formChangeQtVersion.ShowDialog(ww) == DialogResult.OK) { - var qtVersion = formChangeQtVersion.GetSelectedQtVersion(); - HelperFunctions.SetDebuggingEnvironment(pro, "PATH=" + QtVersionManager - .The().GetInstallPath(qtVersion) + @"\bin;$(PATH)", true); - } - } - } - } + case CommandId.ChangeProjectQtVersionProjectId: + Legacy.QtMenu.ShowFormChangeProjectQtVersion(); break; case CommandId.ProjectConvertToQtMsBuild: { QtMsBuildConverter.ProjectToQtMsBuild( @@ -194,29 +146,8 @@ break; case CommandId.ProjectRefreshIntelliSense: { var selectedProject = HelperFunctions.GetSelectedProject(QtVsToolsPackage.Instance.Dte); - var tracker = QtProjectTracker.Get(selectedProject); + var tracker = QtProjectTracker.Get(selectedProject, selectedProject.FullName); QtProjectIntellisense.Refresh(tracker.Project); - } - break; - case CommandId.ProjectAddNewQtClassProjectId: { - try { - var project = HelperFunctions.GetSelectedProject(QtVsToolsPackage.Instance.Dte); - if (!HelperFunctions.IsQtProject(project)) - return; - - var vcProject = project.Object as VCProject; - if (vcProject == null) - return; - - var loop = true; - do { - var classWizard = new Wizards.ClassWizard.AddClassWizard(); - loop = classWizard.Run(QtVsToolsPackage.Instance.Dte, vcProject.Name, - vcProject.ProjectDirectory) == Wizards.WizardResult.Exception; - } while (loop); - } catch { - // Deliberately ignore any kind of exception but close the dialog. - } } break; } @@ -229,8 +160,8 @@ return; var project = HelperFunctions.GetSelectedProject(QtVsToolsPackage.Instance.Dte); - var isQtProject = HelperFunctions.IsQtProject(project); - var isQMakeProject = HelperFunctions.IsQMakeProject(project); + var isQtProject = HelperFunctions.IsVsToolsProject(project); + var isQMakeProject = HelperFunctions.IsQtProject(project); var isQtMsBuildEnabled = QtProject.IsQtMsBuildEnabled(project); if (!isQtProject && !isQMakeProject) { @@ -239,25 +170,19 @@ } switch ((CommandId)command.CommandID.ID) { - // TODO: Fix these functionality and re-enable the menu items - case CommandId.ConvertToQtProjectId: - case CommandId.ConvertToQmakeProjectId: { - command.Visible = false; - } - break; case CommandId.ImportPriFileProjectId: case CommandId.ExportPriFileProjectId: case CommandId.ExportProFileProjectId: - case CommandId.CreateNewTsFileProjectId: + command.Visible = true; + command.Enabled = HelperFunctions.IsVsToolsProject(HelperFunctions + .GetSelectedProject(QtVsToolsPackage.Instance.Dte)); + break; case CommandId.lUpdateOnProjectId: case CommandId.lReleaseOnProjectId: command.Visible = true; - command.Enabled = HelperFunctions.IsQtProject(HelperFunctions - .GetSelectedProject(QtVsToolsPackage.Instance.Dte)); + command.Enabled = Translation.ToolsAvailable(project); break; - //case CommandId.ConvertToQmakeProjectId: - case CommandId.QtProjectSettingsProjectId: - case CommandId.ProjectAddNewQtClassProjectId: { + case CommandId.QtProjectSettingsProjectId: { var status = vsCommandStatus.vsCommandStatusSupported; if (project != null) { if (isQtProject) @@ -269,7 +194,6 @@ command.Visible = ((status & vsCommandStatus.vsCommandStatusInvisible) == 0); } break; - //case CommandId.ConvertToQtProjectId: case CommandId.ChangeProjectQtVersionProjectId: { var status = vsCommandStatus.vsCommandStatusSupported; if ((project == null) || isQtProject) -- Gitblit v1.9.1