diff --git a/spyder/plugins/application/container.py b/spyder/plugins/application/container.py index 39654bb5c30..7b4bd29370f 100644 --- a/spyder/plugins/application/container.py +++ b/spyder/plugins/application/container.py @@ -55,6 +55,7 @@ class ApplicationActions: SpyderTroubleshootingAction = "spyder_troubleshooting_action" SpyderDependenciesAction = "spyder_dependencies_action" SpyderSupportAction = "spyder_support_action" + HelpSpyderAction = "help_spyder_action" SpyderAbout = "spyder_about_action" # Tools @@ -137,6 +138,13 @@ def setup(self): _("Spyder support..."), triggered=lambda: start_file(__forum_url__)) + self.create_action( + ApplicationActions.HelpSpyderAction, + _("Help Spyder..."), + icon=self.create_icon("inapp_appeal"), + triggered=self.inapp_appeal_status.show_appeal + ) + # About action self.about_action = self.create_action( ApplicationActions.SpyderAbout, diff --git a/spyder/plugins/application/plugin.py b/spyder/plugins/application/plugin.py index 3ae21547916..e49e04598a8 100644 --- a/spyder/plugins/application/plugin.py +++ b/spyder/plugins/application/plugin.py @@ -223,13 +223,18 @@ def _populate_help_menu_support_section(self): """Add Spyder base support actions to the Help main menu.""" mainmenu = self.get_plugin(Plugins.MainMenu) for support_action in [ - self.trouble_action, self.report_action, - self.dependencies_action, self.support_group_action]: + self.trouble_action, + self.report_action, + self.dependencies_action, + self.support_group_action, + self.get_action(ApplicationActions.HelpSpyderAction), + ]: mainmenu.add_item_to_application_menu( support_action, menu_id=ApplicationMenus.Help, section=HelpMenuSections.Support, - before_section=HelpMenuSections.ExternalDocumentation) + before_section=HelpMenuSections.ExternalDocumentation + ) def _populate_help_menu_about_section(self): """Create Spyder base about actions.""" diff --git a/spyder/plugins/application/widgets/status.py b/spyder/plugins/application/widgets/status.py index ce433706e49..80c89caf0e8 100644 --- a/spyder/plugins/application/widgets/status.py +++ b/spyder/plugins/application/widgets/status.py @@ -118,6 +118,8 @@ def _on_click(self): def show_appeal(self): if self._appeal_dialog is None: self._appeal_dialog = InAppAppealDialog(self) + + if not self._appeal_dialog.isVisible(): self._appeal_dialog.show() # ---- StatusBarWidget API