internal override int QueryStatusOnNode()

in Python/Product/PythonTools/PythonTools/Project/InterpretersNode.cs [391:468]


        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
            if (cmdGroup == VsMenus.guidStandardCommandSet2K) {
                switch ((VsCommands2K)cmd) {
                    case CommonConstants.OpenFolderInExplorerCmdId:
                        result = QueryStatusResult.SUPPORTED;
                        if (_factory != null && Directory.Exists(_factory.Configuration.GetPrefixPath())) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                }
            }

            if (cmdGroup == CommonGuidList.guidPythonToolsCmdSet) {
                switch (cmd) {
                    case PythonConstants.ActivateEnvironment:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.Configuration.IsAvailable() &&
                            ProjectMgr.ActiveInterpreter != _factory &&
                            Directory.Exists(_factory.Configuration.GetPrefixPath())
                        ) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                    case PythonConstants.InstallPythonPackage:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.Configuration.IsAvailable() &&
                            Directory.Exists(_factory.Configuration.GetPrefixPath())
                        ) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                    case PythonConstants.InstallRequirementsTxt:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.IsRunnable() &&
                            File.Exists(PathUtils.GetAbsoluteFilePath(ProjectMgr.ProjectHome, "requirements.txt"))) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                    case PythonConstants.GenerateRequirementsTxt:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.Configuration.IsAvailable()) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                    case PythonConstants.OpenInteractiveForEnvironment:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.Configuration.IsAvailable() &&
                            File.Exists(_factory.Configuration.InterpreterPath)
                        ) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                }
            }

            if (cmdGroup == ProjectMgr.SharedCommandGuid) {
                switch ((SharedCommands)cmd) {
                    case SharedCommands.OpenCommandPromptHere:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.Configuration.IsAvailable() &&
                            Directory.Exists(_factory.Configuration.GetPrefixPath()) &&
                            File.Exists(_factory.Configuration.InterpreterPath)) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                    case SharedCommands.CopyFullPath:
                        result |= QueryStatusResult.SUPPORTED;
                        if (_factory != null && _factory.Configuration.IsAvailable() &&
                            Directory.Exists(_factory.Configuration.GetPrefixPath()) &&
                            File.Exists(_factory.Configuration.InterpreterPath)) {
                            result |= QueryStatusResult.ENABLED;
                        }
                        return VSConstants.S_OK;
                }
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }