@@ -33,14 +33,14 @@ private bool SpecialEvaluateCanExecute(object parameter)
33
33
{
34
34
return _exportCommand . CanExecute ( parameter ) &&
35
35
parameter is CodeExplorerComponentViewModel viewModel &&
36
- viewModel . Declaration . QualifiedName . QualifiedModuleName . ComponentType != ComponentType . Document ;
36
+ viewModel . Declaration . QualifiedModuleName . ComponentType != ComponentType . Document ;
37
37
}
38
38
39
39
protected override void OnExecute ( object parameter )
40
40
{
41
41
if ( ! ( parameter is CodeExplorerComponentViewModel node ) ||
42
42
node . Declaration == null ||
43
- node . Declaration . QualifiedName . QualifiedModuleName . ComponentType == ComponentType . Document )
43
+ node . Declaration . QualifiedModuleName . ComponentType == ComponentType . Document )
44
44
{
45
45
return ;
46
46
}
@@ -71,15 +71,18 @@ public bool RemoveComponent(QualifiedModuleName qualifiedModuleName, bool prompt
71
71
72
72
private bool TryExport ( QualifiedModuleName qualifiedModuleName )
73
73
{
74
- var projectId = qualifiedModuleName . ProjectId ;
75
- var projectType = _projectsRepository . Project ( projectId ) . Type ;
76
74
var component = _projectsRepository . Component ( qualifiedModuleName ) ;
75
+ if ( component is null )
76
+ {
77
+ return false ; // Edge-case, component already gone.
78
+ }
77
79
78
- if ( projectType == ProjectType . HostProject && component . IsSaved )
80
+ if ( _vbe . Kind == VBEKind . Standalone && component . IsSaved )
79
81
{
80
82
return true ; // File already up-to-date
81
83
}
82
84
85
+ // "Do you want to export '{qualifiedModuleName.Name}' before removing?" (localized)
83
86
var message = string . Format ( CodeExplorerUI . ExportBeforeRemove_Prompt , qualifiedModuleName . Name ) ;
84
87
85
88
switch ( _messageBox . Confirm ( message , CodeExplorerUI . ExportBeforeRemove_Caption , ConfirmationOutcome . Yes ) )
0 commit comments