public void OnBuildProjConfigBegin(string projectName, string projectConfig, string platform, string solutionConfig) { if (currentBuildAction != vsBuildAction.vsBuildActionBuild && currentBuildAction != vsBuildAction.vsBuildActionRebuildAll) { return; // Don't do anything, if we're not building. } Project project = null; foreach (var p in HelperFunctions.ProjectsInSolution(dte)) { if (p.UniqueName == projectName) { project = p; break; } } if (project == null || !HelperFunctions.IsQtProject(project)) { return; } if (QtProject.GetFormatVersion(project) >= Resources.qtMinFormatVersion_Settings) { return; } var qtpro = QtProject.Create(project); var versionManager = QtVersionManager.The(); var qtVersion = versionManager.GetProjectQtVersion(project, platform); if (qtVersion == null) { Messages.DisplayCriticalErrorMessage(SR.GetString("ProjectQtVersionNotFoundError", projectName, projectConfig, platform)); dte.ExecuteCommand("Build.Cancel", ""); return; } if (!QtVSIPSettings.GetDisableAutoMocStepsUpdate()) { if (qtpro.ConfigurationRowNamesChanged) { qtpro.UpdateMocSteps(QtVSIPSettings.GetMocDirectory(project)); } } // Solution config is given to function to get QTDIR property // set correctly also during batch build qtpro.SetQtEnvironment(qtVersion, solutionConfig, true); if (QtVSIPSettings.GetLUpdateOnBuild(project)) { Translation.RunlUpdate(project); } }
private void execHandler(object sender, EventArgs e) { var command = sender as OleMenuCommand; if (command == null) { return; } switch (command.CommandID.ID) { case lUpdateOnItemId: Translation.RunlUpdate(HelperFunctions.GetSelectedFiles(Vsix.Instance.Dte), HelperFunctions.GetSelectedQtProject(Vsix.Instance.Dte)); break; case lReleaseOnItemId: Translation.RunlRelease(HelperFunctions.GetSelectedFiles(Vsix.Instance.Dte)); break; } }
private void execHandler(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); var command = sender as OleMenuCommand; if (command == null) { return; } switch (command.CommandID.ID) { case lUpdateOnItemId: Translation.RunlUpdate(HelperFunctions.GetSelectedFiles(QtVsToolsPackage.Instance.Dte)); break; case lReleaseOnItemId: Translation.RunlRelease(HelperFunctions.GetSelectedFiles(QtVsToolsPackage.Instance.Dte)); break; } }
private void execHandler(object sender, EventArgs e) { var command = sender as OleMenuCommand; if (command == null) { return; } switch (command.CommandID.ID) { case lUpdateOnSolutionId: Translation.RunlUpdate(Vsix.Instance.Dte.Solution); break; case lReleaseOnSolutionId: Translation.RunlRelease(Vsix.Instance.Dte.Solution); break; case ChangeSolutionQtVersionId: var newQtVersion = string.Empty; 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 = Vsix.Instance.Dte.Solution.SolutionBuild .ActiveConfiguration as SolutionConfiguration2; currentPlatform = config2.PlatformName; } catch { } if (string.IsNullOrEmpty(currentPlatform)) { return; } var dte = Vsix.Instance.Dte; 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); qtProject.ChangeQtVersion(OldQtVersion, newQtVersion, ref created); } } QtVersionManager.The().SaveSolutionQtVersion(dte.Solution, newQtVersion); break; } }
private void execHandler(object sender, EventArgs e) { var command = sender as OleMenuCommand; if (command == null) { return; } switch ((CommandId)command.CommandID.ID) { case CommandId.ImportPriFileProjectId: ExtLoader.ImportPriFile(HelperFunctions.GetSelectedQtProject(Vsix.Instance.Dte)); break; case CommandId.ExportPriFileProjectId: ExtLoader.ExportPriFile(); break; case CommandId.ExportProFileProjectId: ExtLoader.ExportProFile(); break; case CommandId.CreateNewTsFileProjectId: Translation.CreateNewTranslationFile(HelperFunctions.GetSelectedQtProject(Vsix .Instance.Dte)); break; case CommandId.lUpdateOnProjectId: Translation.RunlUpdate(HelperFunctions.GetSelectedQtProject(Vsix.Instance.Dte)); break; case CommandId.lReleaseOnProjectId: Translation.RunlRelease(HelperFunctions.GetSelectedQtProject(Vsix.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(Vsix .Instance.Dte)); } } break; case CommandId.QtProjectSettingsProjectId: { var pro = HelperFunctions.GetSelectedQtProject(Vsix.Instance.Dte); if (pro != null) { using (var formProjectQtSettings = new FormProjectQtSettings()) { formProjectQtSettings.SetProject(pro); formProjectQtSettings.StartPosition = FormStartPosition.CenterParent; var ww = new MainWinWrapper(Vsix.Instance.Dte); formProjectQtSettings.ShowDialog(ww); } } else { MessageBox.Show(SR.GetString("NoProjectOpened")); } } break; case CommandId.ChangeProjectQtVersionProjectId: { var pro = HelperFunctions.GetSelectedQtProject(Vsix.Instance.Dte); if (HelperFunctions.IsQMakeProject(pro)) { using (var formChangeQtVersion = new FormChangeQtVersion()) { formChangeQtVersion.UpdateContent(ChangeFor.Project); var ww = new MainWinWrapper(Vsix.Instance.Dte); if (formChangeQtVersion.ShowDialog(ww) == DialogResult.OK) { var qtVersion = formChangeQtVersion.GetSelectedQtVersion(); HelperFunctions.SetDebuggingEnvironment(pro, "PATH=" + QtVersionManager .The().GetInstallPath(qtVersion) + @"\bin;$(PATH)", true); } } } } break; case CommandId.ProjectAddNewQtClassProjectId: { try { var project = HelperFunctions.GetSelectedProject(Vsix.Instance.Dte); if (!HelperFunctions.IsQtProject(project)) { return; } var vcProject = project.Object as VCProject; if (vcProject == null) { return; } var loop = true; do { var classWizard = new AddClassWizard(); loop = classWizard.Run(Vsix.Instance.Dte, vcProject.Name, vcProject.ProjectDirectory) == WizardResult.Exception; } while (loop); } catch { // Deliberately ignore any kind of exception but close the dialog. } } break; } }
public void ProjectItemsEvents_ItemAdded(ProjectItem projectItem) { ThreadHelper.ThrowIfNotOnUIThread(); var project = HelperFunctions.GetSelectedQtProject(QtVsToolsPackage.Instance.Dte); var qtPro = QtProject.Create(project); if (!HelperFunctions.IsQtProject(project)) { return; } var vcFile = GetVCFileFromProject(projectItem.Name, qtPro.VCProject); if (vcFile == null) { return; } try { if (HelperFunctions.IsSourceFile(vcFile.Name)) { if (vcFile.Name.StartsWith("moc_", StringComparison.OrdinalIgnoreCase)) { return; } if (vcFile.Name.StartsWith("qrc_", StringComparison.OrdinalIgnoreCase)) { // Do not use precompiled headers with these files QtProject.SetPCHOption(vcFile, pchOption.pchNone); return; } var pcHeaderThrough = qtPro.GetPrecompiledHeaderThrough(); if (pcHeaderThrough != null) { var pcHeaderCreator = pcHeaderThrough.Remove(pcHeaderThrough.LastIndexOf('.')) + ".cpp"; if (vcFile.Name.EndsWith(pcHeaderCreator, StringComparison.OrdinalIgnoreCase) && HelperFunctions.CxxFileContainsNotCommented(vcFile, "#include \"" + pcHeaderThrough + "\"", StringComparison.OrdinalIgnoreCase, false)) { //File is used to create precompiled headers QtProject.SetPCHOption(vcFile, pchOption.pchCreateUsingSpecific); return; } } if (HelperFunctions.HasQObjectDeclaration(vcFile)) { if (!qtPro.IsQtMsBuildEnabled()) { HelperFunctions.EnsureCustomBuildToolAvailable(projectItem); } qtPro.AddMocStep(vcFile); } } else if (HelperFunctions.IsHeaderFile(vcFile.Name)) { if (vcFile.Name.StartsWith("ui_", StringComparison.OrdinalIgnoreCase)) { return; } if (HelperFunctions.HasQObjectDeclaration(vcFile)) { if (!qtPro.IsQtMsBuildEnabled()) { HelperFunctions.EnsureCustomBuildToolAvailable(projectItem); } qtPro.AddMocStep(vcFile); } } else if (HelperFunctions.IsUicFile(vcFile.Name)) { if (!qtPro.IsQtMsBuildEnabled()) { HelperFunctions.EnsureCustomBuildToolAvailable(projectItem); } qtPro.AddUic4BuildStep(vcFile); QtProjectIntellisense.Refresh(project); } else if (HelperFunctions.IsQrcFile(vcFile.Name)) { if (!qtPro.IsQtMsBuildEnabled()) { HelperFunctions.EnsureCustomBuildToolAvailable(projectItem); } qtPro.UpdateRccStep(vcFile, null); } else if (HelperFunctions.IsTranslationFile(vcFile.Name)) { Translation.RunlUpdate(vcFile); } } catch { } }
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: Translation.RunlUpdate(QtVsToolsPackage.Instance.Dte.Solution); break; case (int)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); break; case (int)CommandId.SolutionConvertToQtMsBuild: { QtMsBuildConverter.SolutionToQtMsBuild(); } break; case (int)CommandId.SolutionEnableProjectTracking: { foreach (var project in HelperFunctions.ProjectsInSolution(dte)) { if (HelperFunctions.IsQtProject(project)) { QtProjectTracker.Get(project, project.FullName); } } } break; } }
private void execHandler(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); var command = sender as OleMenuCommand; if (command == null) { return; } switch ((CommandId)command.CommandID.ID) { case CommandId.ImportPriFileProjectId: ExtLoader.ImportPriFile(HelperFunctions.GetSelectedQtProject(QtVsToolsPackage.Instance.Dte)); break; case CommandId.ExportPriFileProjectId: ExtLoader.ExportPriFile(); break; case CommandId.ExportProFileProjectId: ExtLoader.ExportProFile(); 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); int projectVersion = QtProject.GetFormatVersion(pro); 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); } } 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); } } } } break; case CommandId.ProjectConvertToQtMsBuild: { QtMsBuildConverter.ProjectToQtMsBuild( HelperFunctions.GetSelectedProject(QtVsToolsPackage.Instance.Dte)); } break; case CommandId.ProjectRefreshIntelliSense: { var selectedProject = HelperFunctions.GetSelectedProject(QtVsToolsPackage.Instance.Dte); var tracker = QtProjectTracker.Get(selectedProject, selectedProject.FullName); QtProjectIntellisense.Refresh(tracker.Project); } break; } }