eric6/UI/UserInterface.py

changeset 7149
6a9d4a241962
parent 7134
21d23ca51680
child 7151
fcd3fcaecbef
--- a/eric6/UI/UserInterface.py	Wed Aug 21 14:48:57 2019 +0200
+++ b/eric6/UI/UserInterface.py	Wed Aug 21 16:31:03 2019 +0200
@@ -281,6 +281,7 @@
         self.numbersViewer = None
         self.pipWidget = None
         self.condaWidget = None
+        self.microPythonWidget = None
         
         self.__webBrowserProcess = None
         self.__webBrowserClient = None
@@ -605,6 +606,8 @@
             e5App().registerObject("Numbers", self.numbersViewer)
         if self.codeDocumentationViewer is not None:
             e5App().registerObject("DocuViewer", self.codeDocumentationViewer)
+        if self.microPythonWidget is not None:
+            e5App().registerObject("MicroPython", self.microPythonWidget)
         
         # list of web addresses serving the versions file
         self.__httpAlternatives = Preferences.getUI("VersionsUrls6")
@@ -1871,7 +1874,7 @@
             self.ircActivateAct = E5Action(
                 self.tr('IRC'),
                 self.tr('&IRC'),
-                QKeySequence(self.tr("Meta+Shift+I")),
+                QKeySequence(self.tr("Ctrl+Alt+Shift+I")),
                 0, self,
                 'irc_widget_activate')
             self.ircActivateAct.setStatusTip(self.tr(
@@ -1922,7 +1925,83 @@
                 self.__activateNumbersViewer)
             self.actions.append(self.numbersViewerActivateAct)
             self.addAction(self.numbersViewerActivateAct)
-
+        
+        if self.codeDocumentationViewer is not None:
+            self.codeDocumentationViewerActivateAct = E5Action(
+                self.tr('Code Documentation Viewer'),
+                self.tr('Code Documentation Viewer'),
+                QKeySequence(self.tr("Ctrl+Alt+Shift+D")),
+                0, self,
+                'code_documentation_viewer_activate')
+            self.codeDocumentationViewerActivateAct.setStatusTip(self.tr(
+                "Switch the input focus to the Code Documentation Viewer"
+                " window."))
+            self.codeDocumentationViewerActivateAct.setWhatsThis(self.tr(
+                """<b>Code Documentation Viewer</b>"""
+                """<p>This switches the input focus to the Code"""
+                """ Documentation Viewer window.</p>"""
+            ))
+            self.codeDocumentationViewerActivateAct.triggered.connect(
+                self.activateCodeDocumentationViewer)
+            self.actions.append(self.codeDocumentationViewerActivateAct)
+            self.addAction(self.codeDocumentationViewerActivateAct)
+        
+        if self.pipWidget is not None:
+            self.pipWidgetActivateAct = E5Action(
+                self.tr('PyPI'),
+                self.tr('PyPI'),
+                QKeySequence(self.tr("Ctrl+Alt+Shift+P")),
+                0, self,
+                'pip_widget_activate')
+            self.pipWidgetActivateAct.setStatusTip(self.tr(
+                "Switch the input focus to the PyPI window."))
+            self.pipWidgetActivateAct.setWhatsThis(self.tr(
+                """<b>PyPI</b>"""
+                """<p>This switches the input focus to the PyPI window.</p>"""
+            ))
+            self.pipWidgetActivateAct.triggered.connect(
+                self.__activatePipWidget)
+            self.actions.append(self.pipWidgetActivateAct)
+            self.addAction(self.pipWidgetActivateAct)
+        
+        if self.condaWidget is not None:
+            self.condaWidgetActivateAct = E5Action(
+                self.tr('Conda'),
+                self.tr('Conda'),
+                QKeySequence(self.tr("Ctrl+Alt+Shift+C")),
+                0, self,
+                'conda_widget_activate')
+            self.condaWidgetActivateAct.setStatusTip(self.tr(
+                "Switch the input focus to the Conda window."))
+            self.condaWidgetActivateAct.setWhatsThis(self.tr(
+                """<b>Conda</b>"""
+                """<p>This switches the input focus to the Conda window.</p>"""
+            ))
+            self.condaWidgetActivateAct.triggered.connect(
+                self.__activateCondaWidget)
+            self.actions.append(self.condaWidgetActivateAct)
+            self.addAction(self.condaWidgetActivateAct)
+        
+        # TODO: add action for "MicroPython", Ctrl+Alt+Shift+M
+        if self.microPythonWidget is not None:
+            self.microPythonWidgetActivateAct = E5Action(
+                self.tr('MicroPython'),
+                self.tr('MicroPython'),
+                QKeySequence(self.tr("Ctrl+Alt+Shift+M")),
+                0, self,
+                'micropython_widget_activate')
+            self.microPythonWidgetActivateAct.setStatusTip(self.tr(
+                "Switch the input focus to the MicroPython window."))
+            self.microPythonWidgetActivateAct.setWhatsThis(self.tr(
+                """<b>MicroPython</b>"""
+                """<p>This switches the input focus to the MicroPython"""
+                """ window.</p>"""
+            ))
+            self.microPythonWidgetActivateAct.triggered.connect(
+                self.__activateMicroPython)
+            self.actions.append(self.microPythonWidgetActivateAct)
+            self.addAction(self.microPythonWidgetActivateAct)
+        
         self.whatsThisAct = E5Action(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis.png"),
@@ -3082,22 +3161,20 @@
             self.__menus["subwindow"].addAction(self.shellActivateAct)
         if self.codeDocumentationViewer is not None:
             self.__menus["subwindow"].addAction(
-                self.tr("Code Documentation Viewer"),
-                self.activateCodeDocumentationViewer)
+                self.codeDocumentationViewerActivateAct)
         self.__menus["subwindow"].addAction(self.debugViewerActivateAct)
         if self.pipWidget is not None:
-            self.__menus["subwindow"].addAction(
-                self.tr("PyPI"),
-                self.__activatePipWidget)
+            self.__menus["subwindow"].addAction(self.pipWidgetActivateAct)
         if self.condaWidget is not None:
-            self.__menus["subwindow"].addAction(
-                self.tr("Conda"),
-                self.__activateCondaWidget)
+            self.__menus["subwindow"].addAction(self.condaWidgetActivateAct)
         if self.cooperation is not None:
             self.__menus["subwindow"].addAction(
                 self.cooperationViewerActivateAct)
         if self.irc is not None:
             self.__menus["subwindow"].addAction(self.ircActivateAct)
+        if self.microPythonWidget is not None:
+            self.__menus["subwindow"].addAction(
+                self.microPythonWidgetActivateAct)
         try:
             self.__menus["subwindow"].addSection(self.tr("Plug-ins"))
         except AttributeError:
@@ -4672,6 +4749,19 @@
                 self.rightSidebar.setCurrentWidget(self.condaWidget)
             self.condaWidget.setFocus(Qt.ActiveWindowFocusReason)
     
+    def __activateMicroPython(self):
+        """
+        Private slot to handle the activation of the MicroPython widget.
+        """
+        if self.microPythonWidget is not None:
+            if self.__layoutType == "Toolboxes":
+                self.rToolboxDock.show()
+                self.rToolbox.setCurrentWidget(self.microPythonWidget)
+            elif self.__layoutType == "Sidebars":
+                self.rightSidebar.show()
+                self.rightSidebar.setCurrentWidget(self.microPythonWidget)
+            self.microPythonWidget.setFocus(Qt.ActiveWindowFocusReason)
+    
     def __toggleWindow(self, w):
         """
         Private method to toggle a workspace editor window.

eric ide

mercurial