279 self.multiProject = MultiProject(self.project, self) |
279 self.multiProject = MultiProject(self.project, self) |
280 |
280 |
281 # Generate the debug server object |
281 # Generate the debug server object |
282 logging.debug("Creating Debug Server...") |
282 logging.debug("Creating Debug Server...") |
283 from Debugger.DebugServer import DebugServer |
283 from Debugger.DebugServer import DebugServer |
284 debugServer = DebugServer(self.__originalPathString, |
284 self.__debugServer = DebugServer( |
285 project=self.project, parent=self) |
285 self.__originalPathString, project=self.project, parent=self) |
286 |
286 |
287 # Create the background service object |
287 # Create the background service object |
288 from Utilities.BackgroundService import BackgroundService |
288 from Utilities.BackgroundService import BackgroundService |
289 self.backgroundService = BackgroundService(self) |
289 self.backgroundService = BackgroundService(self) |
290 |
290 |
300 self.__webBrowserProcess = None |
300 self.__webBrowserProcess = None |
301 self.__webBrowserClient = None |
301 self.__webBrowserClient = None |
302 self.__webBrowserSAName = QUuid.createUuid().toString()[1:-1] |
302 self.__webBrowserSAName = QUuid.createUuid().toString()[1:-1] |
303 |
303 |
304 logging.debug("Creating Application Objects...") |
304 logging.debug("Creating Application Objects...") |
305 self.__createObjects(debugServer) |
305 self.__createObjects() |
306 |
306 |
307 # Create the main window now so that we can connect QActions to it. |
307 # Create the main window now so that we can connect QActions to it. |
308 logging.debug("Creating Layout...") |
308 logging.debug("Creating Layout...") |
309 self.__createLayout() |
309 self.__createLayout() |
310 self.__currentRightWidget = None |
310 self.__currentRightWidget = None |
311 self.__currentBottomWidget = None |
311 self.__currentBottomWidget = None |
312 |
312 |
313 # Generate the debugger part of the ui |
313 # Generate the debugger part of the ui |
314 logging.debug("Creating Debugger UI...") |
314 logging.debug("Creating Debugger UI...") |
315 from Debugger.DebugUI import DebugUI |
315 from Debugger.DebugUI import DebugUI |
316 self.debuggerUI = DebugUI(self, self.viewmanager, debugServer, |
316 self.debuggerUI = DebugUI(self, self.viewmanager, self.__debugServer, |
317 self.debugViewer, self.project) |
317 self.debugViewer, self.project) |
318 self.debugViewer.setDebugger(self.debuggerUI) |
318 self.debugViewer.setDebugger(self.debuggerUI) |
319 self.shell.setDebuggerUI(self.debuggerUI) |
319 self.shell.setDebuggerUI(self.debuggerUI) |
320 |
320 |
321 # Generate the redirection helpers |
321 # Generate the redirection helpers |
451 self.debuggerUI.compileResources.connect( |
451 self.debuggerUI.compileResources.connect( |
452 self.projectBrowser.prBrowser.compileChangedResources) |
452 self.projectBrowser.prBrowser.compileChangedResources) |
453 self.debuggerUI.executeMake.connect(self.project.executeMake) |
453 self.debuggerUI.executeMake.connect(self.project.executeMake) |
454 self.debuggerUI.appendStdout.connect(self.appendToStdout) |
454 self.debuggerUI.appendStdout.connect(self.appendToStdout) |
455 |
455 |
456 debugServer.clientDisassembly.connect( |
456 self.__debugServer.clientDisassembly.connect( |
457 self.debugViewer.disassemblyViewer.showDisassembly) |
457 self.debugViewer.disassemblyViewer.showDisassembly) |
458 debugServer.clientProcessStdout.connect(self.appendToStdout) |
458 self.__debugServer.clientProcessStdout.connect(self.appendToStdout) |
459 debugServer.clientProcessStderr.connect(self.appendToStderr) |
459 self.__debugServer.clientProcessStderr.connect(self.appendToStderr) |
460 debugServer.appendStdout.connect(self.appendToStdout) |
460 self.__debugServer.appendStdout.connect(self.appendToStdout) |
461 |
461 |
462 self.stdout.appendStdout.connect(self.appendToStdout) |
462 self.stdout.appendStdout.connect(self.appendToStdout) |
463 self.stderr.appendStderr.connect(self.appendToStderr) |
463 self.stderr.appendStderr.connect(self.appendToStderr) |
464 |
464 |
465 self.preferencesChanged.connect(self.viewmanager.preferencesChanged) |
465 self.preferencesChanged.connect(self.viewmanager.preferencesChanged) |
486 self.preferencesChanged.connect( |
486 self.preferencesChanged.connect( |
487 self.projectBrowser.poBrowser.handlePreferencesChanged) |
487 self.projectBrowser.poBrowser.handlePreferencesChanged) |
488 self.preferencesChanged.connect( |
488 self.preferencesChanged.connect( |
489 self.taskViewer.handlePreferencesChanged) |
489 self.taskViewer.handlePreferencesChanged) |
490 self.preferencesChanged.connect(self.pluginManager.preferencesChanged) |
490 self.preferencesChanged.connect(self.pluginManager.preferencesChanged) |
491 self.preferencesChanged.connect(debugServer.preferencesChanged) |
491 self.preferencesChanged.connect(self.__debugServer.preferencesChanged) |
492 self.preferencesChanged.connect(self.debugViewer.preferencesChanged) |
492 self.preferencesChanged.connect(self.debugViewer.preferencesChanged) |
493 self.preferencesChanged.connect( |
493 self.preferencesChanged.connect( |
494 self.backgroundService.preferencesOrProjectChanged) |
494 self.backgroundService.preferencesOrProjectChanged) |
495 self.preferencesChanged.connect(self.__previewer.preferencesChanged) |
495 self.preferencesChanged.connect(self.__previewer.preferencesChanged) |
496 self.preferencesChanged.connect(self.__astViewer.preferencesChanged) |
496 self.preferencesChanged.connect(self.__astViewer.preferencesChanged) |
519 self.browser.trpreview.connect(self.__TRPreviewer) |
519 self.browser.trpreview.connect(self.__TRPreviewer) |
520 |
520 |
521 self.debuggerUI.debuggingStarted.connect( |
521 self.debuggerUI.debuggingStarted.connect( |
522 self.browser.handleProgramChange) |
522 self.browser.handleProgramChange) |
523 |
523 |
524 debugServer.clientInterpreterChanged.connect( |
524 self.__debugServer.clientInterpreterChanged.connect( |
525 self.browser.handleInterpreterChanged) |
525 self.browser.handleInterpreterChanged) |
526 |
526 |
527 self.preferencesChanged.connect( |
527 self.preferencesChanged.connect( |
528 self.browser.handlePreferencesChanged) |
528 self.browser.handlePreferencesChanged) |
529 |
529 |
595 |
595 |
596 # register all relevant objects |
596 # register all relevant objects |
597 splash.showMessage(self.tr("Registering Objects...")) |
597 splash.showMessage(self.tr("Registering Objects...")) |
598 ericApp().registerObject("UserInterface", self) |
598 ericApp().registerObject("UserInterface", self) |
599 ericApp().registerObject("DebugUI", self.debuggerUI) |
599 ericApp().registerObject("DebugUI", self.debuggerUI) |
600 ericApp().registerObject("DebugServer", debugServer) |
600 ericApp().registerObject("DebugServer", self.__debugServer) |
601 ericApp().registerObject("BackgroundService", self.backgroundService) |
601 ericApp().registerObject("BackgroundService", self.backgroundService) |
602 ericApp().registerObject("ViewManager", self.viewmanager) |
602 ericApp().registerObject("ViewManager", self.viewmanager) |
603 ericApp().registerObject("ProjectBrowser", self.projectBrowser) |
603 ericApp().registerObject("ProjectBrowser", self.projectBrowser) |
604 ericApp().registerObject("MultiProject", self.multiProject) |
604 ericApp().registerObject("MultiProject", self.multiProject) |
605 ericApp().registerObject("TaskViewer", self.taskViewer) |
605 ericApp().registerObject("TaskViewer", self.taskViewer) |
726 |
726 |
727 # now start the debug client with the most recently used virtual |
727 # now start the debug client with the most recently used virtual |
728 # environment |
728 # environment |
729 splash.showMessage(self.tr("Starting Debugger...")) |
729 splash.showMessage(self.tr("Starting Debugger...")) |
730 if Preferences.getShell("StartWithMostRecentlyUsedEnvironment"): |
730 if Preferences.getShell("StartWithMostRecentlyUsedEnvironment"): |
731 debugServer.startClient( |
731 self.__debugServer.startClient( |
732 False, venvName=Preferences.getShell("LastVirtualEnvironment") |
732 False, venvName=Preferences.getShell("LastVirtualEnvironment") |
733 ) |
733 ) |
734 else: |
734 else: |
735 debugServer.startClient(False) |
735 self.__debugServer.startClient(False) |
736 |
736 |
737 # attributes for the network objects |
737 # attributes for the network objects |
738 self.__networkManager = QNetworkAccessManager(self) |
738 self.__networkManager = QNetworkAccessManager(self) |
739 self.__networkManager.proxyAuthenticationRequired.connect( |
739 self.__networkManager.proxyAuthenticationRequired.connect( |
740 proxyAuthenticationRequired) |
740 proxyAuthenticationRequired) |
777 @return reference to the network access manager object |
777 @return reference to the network access manager object |
778 @rtype QNetworkAccessManager |
778 @rtype QNetworkAccessManager |
779 """ |
779 """ |
780 return self.__networkManager |
780 return self.__networkManager |
781 |
781 |
782 def __createObjects(self, debugServer): |
782 def __createObjects(self): |
783 """ |
783 """ |
784 Private method to create the various objects of the application. |
784 Private method to create the various application objects. |
785 |
|
786 @param debugServer reference to the debug server object |
|
787 @type DebugServer |
|
788 """ |
785 """ |
789 # Create the view manager depending on the configuration setting |
786 # Create the view manager depending on the configuration setting |
790 logging.debug("Creating Viewmanager...") |
787 logging.debug("Creating Viewmanager...") |
791 import ViewManager |
788 import ViewManager |
792 self.viewmanager = ViewManager.factory( |
789 self.viewmanager = ViewManager.factory( |
793 self, self, debugServer, self.pluginManager) |
790 self, self, self.__debugServer, self.pluginManager) |
794 |
791 |
795 # Create previewer |
792 # Create previewer |
796 logging.debug("Creating Previewer...") |
793 logging.debug("Creating Previewer...") |
797 from .Previewer import Previewer |
794 from .Previewer import Previewer |
798 self.__previewer = Previewer(self.viewmanager) |
795 self.__previewer = Previewer(self.viewmanager) |
829 self.logViewer = LogViewer(self) |
826 self.logViewer = LogViewer(self) |
830 |
827 |
831 # Create the debug viewer |
828 # Create the debug viewer |
832 logging.debug("Creating Debug Viewer...") |
829 logging.debug("Creating Debug Viewer...") |
833 from Debugger.DebugViewer import DebugViewer |
830 from Debugger.DebugViewer import DebugViewer |
834 self.debugViewer = DebugViewer(debugServer) |
831 self.debugViewer = DebugViewer(self.__debugServer) |
835 |
832 |
836 # Create the shell |
833 # Create the shell |
837 logging.debug("Creating Shell...") |
834 logging.debug("Creating Shell...") |
838 from QScintilla.Shell import ShellAssembly |
835 from QScintilla.Shell import ShellAssembly |
839 self.shellAssembly = ShellAssembly( |
836 self.shellAssembly = ShellAssembly( |
840 debugServer, self.viewmanager, self.project, True) |
837 self.__debugServer, self.viewmanager, self.project, True) |
841 self.shell = self.shellAssembly.shell() |
838 self.shell = self.shellAssembly.shell() |
842 |
839 |
843 if Preferences.getUI("ShowTemplateViewer"): |
840 if Preferences.getUI("ShowTemplateViewer"): |
844 # Create the template viewer part of the user interface |
841 # Create the template viewer part of the user interface |
845 logging.debug("Creating Template Viewer...") |
842 logging.debug("Creating Template Viewer...") |
941 from PluginManager.PluginRepositoryDialog import PluginRepositoryWidget |
938 from PluginManager.PluginRepositoryDialog import PluginRepositoryWidget |
942 self.pluginRepositoryViewer = PluginRepositoryWidget( |
939 self.pluginRepositoryViewer = PluginRepositoryWidget( |
943 self.pluginManager, integrated=True, parent=self) |
940 self.pluginManager, integrated=True, parent=self) |
944 self.pluginRepositoryViewer.closeAndInstall.connect( |
941 self.pluginRepositoryViewer.closeAndInstall.connect( |
945 self.__installDownloadedPlugins) |
942 self.__installDownloadedPlugins) |
|
943 |
|
944 # Create the virtual environments management widget |
|
945 from VirtualEnv.VirtualenvManagerWidgets import VirtualenvManagerWidget |
|
946 self.__virtualenvManagerWidget = VirtualenvManagerWidget( |
|
947 self.virtualenvManager, self) |
946 |
948 |
947 def __createLayout(self): |
949 def __createLayout(self): |
948 """ |
950 """ |
949 Private method to create the layout of the various windows. |
951 Private method to create the layout of the various windows. |
950 |
952 |
1065 |
1067 |
1066 self.rToolbox.addItem(self.pluginRepositoryViewer, |
1068 self.rToolbox.addItem(self.pluginRepositoryViewer, |
1067 UI.PixmapCache.getIcon("pluginRepository"), |
1069 UI.PixmapCache.getIcon("pluginRepository"), |
1068 self.tr("Plugin Repository")) |
1070 self.tr("Plugin Repository")) |
1069 |
1071 |
|
1072 self.rToolbox.addItem(self.__virtualenvManagerWidget, |
|
1073 UI.PixmapCache.getIcon("virtualenv"), |
|
1074 self.tr("Virtual Environments")) |
1070 if self.pipWidget: |
1075 if self.pipWidget: |
1071 self.rToolbox.addItem(self.pipWidget, |
1076 self.rToolbox.addItem(self.pipWidget, |
1072 UI.PixmapCache.getIcon("pypi"), |
1077 UI.PixmapCache.getIcon("pypi"), |
1073 self.tr("PyPI")) |
1078 self.tr("PyPI")) |
1074 |
1079 |
1203 |
1208 |
1204 self.rightSidebar.addTab( |
1209 self.rightSidebar.addTab( |
1205 self.pluginRepositoryViewer, |
1210 self.pluginRepositoryViewer, |
1206 UI.PixmapCache.getIcon("sbPluginRepository96"), |
1211 UI.PixmapCache.getIcon("sbPluginRepository96"), |
1207 self.tr("Plugin Repository")) |
1212 self.tr("Plugin Repository")) |
|
1213 |
|
1214 self.rightSidebar.addTab( |
|
1215 self.__virtualenvManagerWidget, |
|
1216 UI.PixmapCache.getIcon("sbVirtenvManager96"), |
|
1217 self.tr("Virtual Environments")) |
1208 |
1218 |
1209 if self.pipWidget: |
1219 if self.pipWidget: |
1210 self.rightSidebar.addTab( |
1220 self.rightSidebar.addTab( |
1211 self.pipWidget, UI.PixmapCache.getIcon("sbPyPI96"), |
1221 self.pipWidget, UI.PixmapCache.getIcon("sbPyPI96"), |
1212 self.tr("PyPI")) |
1222 self.tr("PyPI")) |
2180 self.pluginRepositoryViewerActivateAct.triggered.connect( |
2190 self.pluginRepositoryViewerActivateAct.triggered.connect( |
2181 self.activatePluginRepositoryViewer) |
2191 self.activatePluginRepositoryViewer) |
2182 self.actions.append(self.pluginRepositoryViewerActivateAct) |
2192 self.actions.append(self.pluginRepositoryViewerActivateAct) |
2183 self.addAction(self.pluginRepositoryViewerActivateAct) |
2193 self.addAction(self.pluginRepositoryViewerActivateAct) |
2184 |
2194 |
|
2195 self.virtualenvManagerActivateAct = EricAction( |
|
2196 self.tr('Virtual Environments'), |
|
2197 self.tr('Virtual Environments'), |
|
2198 QKeySequence(self.tr("Ctrl+Alt+V")), |
|
2199 0, self, |
|
2200 'virtualenv_manager_activate') |
|
2201 self.virtualenvManagerActivateAct.setStatusTip(self.tr( |
|
2202 "Switch the input focus to the Virtual Environments Manager" |
|
2203 " window.")) |
|
2204 self.virtualenvManagerActivateAct.setWhatsThis(self.tr( |
|
2205 """<b>Virtual Environments</b>""" |
|
2206 """<p>This switches the input focus to the Virtual Environments""" |
|
2207 """ Manager window.</p>""" |
|
2208 )) |
|
2209 self.virtualenvManagerActivateAct.triggered.connect( |
|
2210 self.activateVirtualenvManager) |
|
2211 self.actions.append(self.virtualenvManagerActivateAct) |
|
2212 self.addAction(self.virtualenvManagerActivateAct) |
|
2213 |
2185 self.whatsThisAct = EricAction( |
2214 self.whatsThisAct = EricAction( |
2186 self.tr('What\'s This?'), |
2215 self.tr('What\'s This?'), |
2187 UI.PixmapCache.getIcon("whatsThis"), |
2216 UI.PixmapCache.getIcon("whatsThis"), |
2188 self.tr('&What\'s This?'), |
2217 self.tr('&What\'s This?'), |
2189 QKeySequence(self.tr("Shift+F1")), |
2218 QKeySequence(self.tr("Shift+F1")), |
2870 """<p>This opens a dialog, that shows a list of plugins """ |
2899 """<p>This opens a dialog, that shows a list of plugins """ |
2871 """available on the Internet.</p>""" |
2900 """available on the Internet.</p>""" |
2872 )) |
2901 )) |
2873 self.pluginRepoAct.triggered.connect(self.__showPluginsAvailable) |
2902 self.pluginRepoAct.triggered.connect(self.__showPluginsAvailable) |
2874 self.actions.append(self.pluginRepoAct) |
2903 self.actions.append(self.pluginRepoAct) |
2875 |
|
2876 self.virtualenvManagerAct = EricAction( |
|
2877 self.tr('Virtualenv Manager'), |
|
2878 UI.PixmapCache.getIcon("virtualenv"), |
|
2879 self.tr('&Virtualenv Manager...'), |
|
2880 0, 0, self, |
|
2881 'virtualenv_manager') |
|
2882 self.virtualenvManagerAct.setStatusTip(self.tr( |
|
2883 'Virtualenv Manager')) |
|
2884 self.virtualenvManagerAct.setWhatsThis(self.tr( |
|
2885 """<b>Virtualenv Manager</b>""" |
|
2886 """<p>This opens a dialog to manage the defined Python virtual""" |
|
2887 """ environments.</p>""" |
|
2888 )) |
|
2889 self.virtualenvManagerAct.triggered.connect( |
|
2890 self.virtualenvManager.showVirtualenvManagerDialog) |
|
2891 self.actions.append(self.virtualenvManagerAct) |
|
2892 |
|
2893 self.virtualenvConfigAct = EricAction( |
|
2894 self.tr('Virtualenv Configurator'), |
|
2895 UI.PixmapCache.getIcon("virtualenvConfig"), |
|
2896 self.tr('Virtualenv &Configurator...'), |
|
2897 0, 0, self, |
|
2898 'virtualenv_configurator') |
|
2899 self.virtualenvConfigAct.setStatusTip(self.tr( |
|
2900 'Virtualenv Configurator')) |
|
2901 self.virtualenvConfigAct.setWhatsThis(self.tr( |
|
2902 """<b>Virtualenv Configurator</b>""" |
|
2903 """<p>This opens a dialog for entering all the parameters""" |
|
2904 """ needed to create a Python virtual environment using""" |
|
2905 """ virtualenv or pyvenv.</p>""" |
|
2906 )) |
|
2907 self.virtualenvConfigAct.triggered.connect( |
|
2908 self.virtualenvManager.createVirtualEnv) |
|
2909 self.actions.append(self.virtualenvConfigAct) |
|
2910 |
2904 |
2911 # initialize viewmanager actions |
2905 # initialize viewmanager actions |
2912 self.viewmanager.initActions() |
2906 self.viewmanager.initActions() |
2913 |
2907 |
2914 # initialize debugger actions |
2908 # initialize debugger actions |
3188 self.__menus["macros"] = self.viewmanager.initMacroMenu() |
3182 self.__menus["macros"] = self.viewmanager.initMacroMenu() |
3189 self.__menus["extras"].addMenu(self.__menus["macros"]) |
3183 self.__menus["extras"].addMenu(self.__menus["macros"]) |
3190 self.__menus["extras"].addSeparator() |
3184 self.__menus["extras"].addSeparator() |
3191 |
3185 |
3192 ############################################################## |
3186 ############################################################## |
3193 ## Extras/VirtualEnv Manager menu entries |
|
3194 ############################################################## |
|
3195 |
|
3196 self.__menus["extras"].addAction(self.virtualenvManagerAct) |
|
3197 self.__menus["extras"].addAction(self.virtualenvConfigAct) |
|
3198 self.__menus["extras"].addSeparator() |
|
3199 |
|
3200 ############################################################## |
|
3201 ## Extras/Plugins menu |
3187 ## Extras/Plugins menu |
3202 ############################################################## |
3188 ############################################################## |
3203 |
3189 |
3204 pluginsMenu = QMenu(self.tr('P&lugins'), self) |
3190 pluginsMenu = QMenu(self.tr('P&lugins'), self) |
3205 pluginsMenu.setIcon(UI.PixmapCache.getIcon("plugin")) |
3191 pluginsMenu.setIcon(UI.PixmapCache.getIcon("plugin")) |
3325 self.__menus["subwindow"].addAction( |
3311 self.__menus["subwindow"].addAction( |
3326 self.codeDocumentationViewerActivateAct) |
3312 self.codeDocumentationViewerActivateAct) |
3327 self.__menus["subwindow"].addAction(self.debugViewerActivateAct) |
3313 self.__menus["subwindow"].addAction(self.debugViewerActivateAct) |
3328 self.__menus["subwindow"].addAction( |
3314 self.__menus["subwindow"].addAction( |
3329 self.pluginRepositoryViewerActivateAct) |
3315 self.pluginRepositoryViewerActivateAct) |
|
3316 self.__menus["subwindow"].addAction(self.virtualenvManagerActivateAct) |
3330 if self.pipWidget is not None: |
3317 if self.pipWidget is not None: |
3331 self.__menus["subwindow"].addAction(self.pipWidgetActivateAct) |
3318 self.__menus["subwindow"].addAction(self.pipWidgetActivateAct) |
3332 if self.condaWidget is not None: |
3319 if self.condaWidget is not None: |
3333 self.__menus["subwindow"].addAction(self.condaWidgetActivateAct) |
3320 self.__menus["subwindow"].addAction(self.condaWidgetActivateAct) |
3334 if self.cooperation is not None: |
3321 if self.cooperation is not None: |
3472 toolstb.addSeparator() |
3459 toolstb.addSeparator() |
3473 toolstb.addAction(self.miniEditorAct) |
3460 toolstb.addAction(self.miniEditorAct) |
3474 toolstb.addAction(self.hexEditorAct) |
3461 toolstb.addAction(self.hexEditorAct) |
3475 toolstb.addAction(self.iconEditorAct) |
3462 toolstb.addAction(self.iconEditorAct) |
3476 toolstb.addAction(self.snapshotAct) |
3463 toolstb.addAction(self.snapshotAct) |
3477 toolstb.addSeparator() |
|
3478 toolstb.addAction(self.virtualenvManagerAct) |
|
3479 toolstb.addAction(self.virtualenvConfigAct) |
|
3480 if self.webBrowserAct: |
3464 if self.webBrowserAct: |
3481 toolstb.addSeparator() |
3465 toolstb.addSeparator() |
3482 toolstb.addAction(self.webBrowserAct) |
3466 toolstb.addAction(self.webBrowserAct) |
3483 self.toolbarManager.addToolBar(toolstb, toolstb.windowTitle()) |
3467 self.toolbarManager.addToolBar(toolstb, toolstb.windowTitle()) |
3484 |
3468 |
5014 Private slot to generate the unit test dialog on demand. |
4998 Private slot to generate the unit test dialog on demand. |
5015 """ |
4999 """ |
5016 if self.unittestDialog is None: |
5000 if self.unittestDialog is None: |
5017 from PyUnit.UnittestDialog import UnittestDialog |
5001 from PyUnit.UnittestDialog import UnittestDialog |
5018 self.unittestDialog = UnittestDialog( |
5002 self.unittestDialog = UnittestDialog( |
5019 None, self.debuggerUI.debugServer, self) |
5003 None, self.__debugServer, self) |
5020 self.unittestDialog.unittestFile.connect( |
5004 self.unittestDialog.unittestFile.connect( |
5021 self.viewmanager.setFileLine) |
5005 self.viewmanager.setFileLine) |
5022 self.unittestDialog.unittestStopped.connect(self.__unittestStopped) |
5006 self.unittestDialog.unittestStopped.connect(self.__unittestStopped) |
5023 |
5007 |
5024 def __unittestStopped(self): |
5008 def __unittestStopped(self): |
6505 """ |
6489 """ |
6506 Private slot to handle the projectOpened signal. |
6490 Private slot to handle the projectOpened signal. |
6507 """ |
6491 """ |
6508 from Debugger.DebugClientCapabilities import HasUnittest |
6492 from Debugger.DebugClientCapabilities import HasUnittest |
6509 self.__setWindowCaption(project=self.project.name) |
6493 self.__setWindowCaption(project=self.project.name) |
6510 cap = ericApp().getObject("DebugServer").getClientCapabilities( |
6494 cap = self.__debugServer.getClientCapabilities( |
6511 self.project.getProjectLanguage()) |
6495 self.project.getProjectLanguage()) |
6512 self.utProjectAct.setEnabled(cap & HasUnittest) |
6496 self.utProjectAct.setEnabled(cap & HasUnittest) |
6513 self.utProjectOpen = cap & HasUnittest |
6497 self.utProjectOpen = cap & HasUnittest |
6514 |
6498 |
6515 def __projectClosed(self): |
6499 def __projectClosed(self): |
6557 """ |
6541 """ |
6558 self.wizardsMenuAct.setEnabled( |
6542 self.wizardsMenuAct.setEnabled( |
6559 len(self.__menus["wizards"].actions()) > 0) |
6543 len(self.__menus["wizards"].actions()) > 0) |
6560 |
6544 |
6561 if fn and str(fn) != "None": |
6545 if fn and str(fn) != "None": |
6562 dbs = ericApp().getObject("DebugServer") |
6546 dbs = self.__debugServer |
6563 for language in dbs.getSupportedLanguages(): |
6547 for language in dbs.getSupportedLanguages(): |
6564 exts = dbs.getExtensions(language) |
6548 exts = dbs.getExtensions(language) |
6565 if fn.endswith(exts): |
6549 if fn.endswith(exts): |
6566 from Debugger.DebugClientCapabilities import HasUnittest |
6550 from Debugger.DebugClientCapabilities import HasUnittest |
6567 cap = dbs.getClientCapabilities(language) |
6551 cap = dbs.getClientCapabilities(language) |
6580 @param editor editor window |
6564 @param editor editor window |
6581 """ |
6565 """ |
6582 fn = editor.getFileName() if editor else None |
6566 fn = editor.getFileName() if editor else None |
6583 |
6567 |
6584 if fn: |
6568 if fn: |
6585 dbs = ericApp().getObject("DebugServer") |
6569 dbs = self.__debugServer |
6586 for language in dbs.getSupportedLanguages(): |
6570 for language in dbs.getSupportedLanguages(): |
6587 exts = dbs.getExtensions(language) |
6571 exts = dbs.getExtensions(language) |
6588 if fn.endswith(exts): |
6572 if fn.endswith(exts): |
6589 from Debugger.DebugClientCapabilities import HasUnittest |
6573 from Debugger.DebugClientCapabilities import HasUnittest |
6590 cap = dbs.getClientCapabilities(language) |
6574 cap = dbs.getClientCapabilities(language) |
7103 |
7087 |
7104 if self.cooperation is not None: |
7088 if self.cooperation is not None: |
7105 self.cooperation.shutdown() |
7089 self.cooperation.shutdown() |
7106 |
7090 |
7107 self.pluginManager.doShutdown() |
7091 self.pluginManager.doShutdown() |
7108 |
|
7109 self.virtualenvManager.shutdown() |
|
7110 |
7092 |
7111 if self.SAServer is not None: |
7093 if self.SAServer is not None: |
7112 self.SAServer.shutdown() |
7094 self.SAServer.shutdown() |
7113 self.SAServer = None |
7095 self.SAServer = None |
7114 |
7096 |
7700 manager.cancel() |
7682 manager.cancel() |
7701 else: |
7683 else: |
7702 # We did not get permission to interact, play it safe and |
7684 # We did not get permission to interact, play it safe and |
7703 # save all data. |
7685 # save all data. |
7704 self.viewmanager.saveAllEditors() |
7686 self.viewmanager.saveAllEditors() |
|
7687 |
|
7688 ############################################################ |
|
7689 ## Interface to the virtual environment manager widget below |
|
7690 ############################################################ |
|
7691 |
|
7692 @pyqtSlot() |
|
7693 def activateVirtualenvManager(self): |
|
7694 """ |
|
7695 Public slot to activate the virtual environments manager widget. |
|
7696 """ |
|
7697 if self.__layoutType == "Toolboxes": |
|
7698 self.rToolboxDock.show() |
|
7699 self.rToolbox.setCurrentWidget(self.__virtualenvManagerWidget) |
|
7700 elif self.__layoutType == "Sidebars": |
|
7701 self.rightSidebar.show() |
|
7702 self.rightSidebar.setCurrentWidget(self.__virtualenvManagerWidget) |
|
7703 self.__virtualenvManagerWidget.setFocus( |
|
7704 Qt.FocusReason.ActiveWindowFocusReason) |