Example #1
0
        private bool VerifyCompileOnDemand()
        {
            if (_vbeSettings.CompileOnDemand)
            {
                return(_messageBox.ConfirmYesNo(RubberduckUI.Command_Reparse_CompileOnDemandEnabled, RubberduckUI.Command_Reparse_CompileOnDemandEnabled_Caption, false));
            }

            return(true);
        }
Example #2
0
        private Declaration PromptIfTargetImplementsInterface()
        {
            if (!(TargetDeclaration is ModuleBodyElementDeclaration member) || !member.IsInterfaceImplementation)
            {
                return(TargetDeclaration);
            }

            var interfaceMember = member.InterfaceMemberImplemented;
            var message         =
                string.Format(RubberduckUI.Refactoring_TargetIsInterfaceMemberImplementation, TargetDeclaration.IdentifierName, interfaceMember.ComponentName, interfaceMember.IdentifierName);

            return(_messageBox.ConfirmYesNo(message, RubberduckUI.ReorderParamsDialog_TitleText) ? interfaceMember : null);
        }
        private bool Confirm(string identifier, int referencesFound)
        {
            const int threshold = 1000;

            if (referencesFound == 0)
            {
                _messageBox.NotifyWarn(
                    string.Format(RubberduckUI.AllReferences_NoneFoundReference, identifier),
                    RubberduckUI.Rubberduck);
                return(false);
            }

            if (referencesFound > threshold)
            {
                return(_messageBox.ConfirmYesNo(
                           string.Format(RubberduckUI.AllReferences_PerformanceWarning, identifier, referencesFound),
                           RubberduckUI.PerformanceWarningCaption));
            }

            return(true);
        }
Example #4
0
        public void FindAllReferences(Declaration declaration, ReferenceInfo reference)
        {
            if (_state.Status != ParserState.Ready ||
                !(declaration is ProjectDeclaration project))
            {
                return;
            }

            var usages = _state.DeclarationFinder.FindAllReferenceUsesInProject(project, reference, out var referenceProject);

            if (!usages.Any())
            {
                _messageBox.NotifyWarn(string.Format(RubberduckUI.AllReferences_NoneFoundReference, referenceProject.IdentifierName), RubberduckUI.Rubberduck);
                return;
            }

            if (usages.Count > 1000 &&
                !_messageBox.ConfirmYesNo(string.Format(RubberduckUI.AllReferences_PerformanceWarning, referenceProject.IdentifierName, usages.Count),
                                          RubberduckUI.PerformanceWarningCaption))
            {
                return;
            }

            var viewModel = CreateViewModel(project, referenceProject, usages);

            _viewModel.AddTab(viewModel);
            _viewModel.SelectedTab = viewModel;

            try
            {
                var presenter = _presenterService.Presenter(_viewModel);
                presenter.Show();
            }
            catch (Exception e)
            {
                _logger.Error(e);
            }
        }
Example #5
0
        protected override void OnExecute(object parameter)
        {
            if (!(parameter is CodeExplorerComponentViewModel node) || node.Declaration is null)
            {
                return;
            }

            var qualifiedModuleName = node.Declaration.QualifiedModuleName;
            var component           = _projectsProvider.Component(qualifiedModuleName);

            if (component is null)
            {
                return;
            }

            // "{qualifiedModuleName.Name} will be permanently deleted. Continue?" (localized)
            var message = string.Format(Resources.CodeExplorer.CodeExplorerUI.ConfirmBeforeDelete_Prompt, qualifiedModuleName.Name);

            if (!_messageBox.ConfirmYesNo(message, Resources.CodeExplorer.CodeExplorerUI.ConfirmBeforeDelete_Caption))
            {
                return;
            }

            // Have to build the file list *before* removing the component!
            var files = new List <string>();

            for (short i = 1; i <= component.FileCount; i++)
            {
                var fileName = component.GetFileName(i);
                if (fileName != null) // Unsaved components have a null filename for some reason
                {
                    files.Add(component.GetFileName(i));
                }
            }

            if (!_removeCommand.RemoveComponent(qualifiedModuleName, false))
            {
                return; // Remove was cancelled or failed
            }

            var failedDeletions = new List <string>();

            foreach (var file in files)
            {
                try
                {
                    File.Delete(file);
                }
                catch (Exception exception)
                {
                    Logger.Warn(exception, "Failed to delete file");
                    failedDeletions.Add(file);
                }
            }

            // Let the user know if there are any component files left on disk
            if (failedDeletions.Any())
            {
                // "The following files could not be deleted: {fileDeletions}" (localized)
                message = string.Format(Resources.CodeExplorer.CodeExplorerUI.DeleteFailed_Message, string.Join(Environment.NewLine, failedDeletions));
                _messageBox.NotifyWarn(message, Resources.CodeExplorer.CodeExplorerUI.DeleteFailed_Caption);
            }
        }
Example #6
0
 private bool UserConfirmsNewTarget(string message)
 {
     return(_messageBox.ConfirmYesNo(message, RubberduckUI.ReorderParamsDialog_TitleText));
 }
Example #7
0
 private bool UserConfirmsRenameOfResolvedTarget(string message)
 {
     return(_messageBox?.ConfirmYesNo(message, RubberduckUI.RenameDialog_TitleText) ?? false);
 }
 private void ConfirmReorderParameterHandler(object sender, Rubberduck.Refactorings.RefactoringConfirmEventArgs e)
 {
     e.Confirm = _messageBox.ConfirmYesNo(e.Message, RubberduckUI.ReorderParamsDialog_TitleText);
 }
        private bool UserConfirmsToProceedWithFolderMerge(string targetFolder, List <string> mergedTargetFolders)
        {
            var message = FolderMergeUserConfirmationMessage(targetFolder, mergedTargetFolders);

            return(_messageBox?.ConfirmYesNo(message, RubberduckUI.MoveFoldersDialog_Caption) ?? false);
        }