10734:2b015db9761a | 10814:ba20efe10336 |
---|---|
57 QVBoxLayout, | 57 QVBoxLayout, |
58 QWhatsThis, | 58 QWhatsThis, |
59 QWidget, | 59 QWidget, |
60 ) | 60 ) |
61 | 61 |
62 from eric7 import Globals, Preferences, Testing, Utilities | 62 from eric7 import EricUtilities, Globals, Preferences, Testing, Utilities |
63 from eric7.__version__ import Version, VersionOnly | 63 from eric7.__version__ import Version, VersionOnly |
64 from eric7.CondaInterface.Conda import Conda | 64 from eric7.CondaInterface.Conda import Conda |
65 from eric7.Debugger.DebugServer import DebugServer | 65 from eric7.Debugger.DebugServer import DebugServer |
66 from eric7.Debugger.DebugUI import DebugUI | 66 from eric7.Debugger.DebugUI import DebugUI |
67 from eric7.EricCore import EricFileSystemWatcher | 67 from eric7.EricCore import EricFileSystemWatcher |
85 from eric7.PluginManager.PluginManager import PluginManager | 85 from eric7.PluginManager.PluginManager import PluginManager |
86 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryDownloadCleanup | 86 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryDownloadCleanup |
87 from eric7.Preferences import Shortcuts | 87 from eric7.Preferences import Shortcuts |
88 from eric7.Project.Project import Project | 88 from eric7.Project.Project import Project |
89 from eric7.QScintilla.SpellChecker import SpellChecker | 89 from eric7.QScintilla.SpellChecker import SpellChecker |
90 from eric7.RemoteServerInterface.EricServerInterface import EricServerInterface | |
90 from eric7.Sessions.SessionFile import SessionFile | 91 from eric7.Sessions.SessionFile import SessionFile |
91 from eric7.SystemUtilities import ( | 92 from eric7.SystemUtilities import ( |
92 DesktopUtilities, | 93 DesktopUtilities, |
93 FileSystemUtilities, | 94 FileSystemUtilities, |
94 OSUtilities, | 95 OSUtilities, |
176 @type Any | 177 @type Any |
177 """ | 178 """ |
178 self.buffer += str(s) | 179 self.buffer += str(s) |
179 self.__nWrite(self.__bufferedWrite()) | 180 self.__nWrite(self.__bufferedWrite()) |
180 | 181 |
182 def isatty(self): | |
183 """ | |
184 Public method to indicate a tty. | |
185 | |
186 Note: This always reports 'False'. | |
187 | |
188 @return flag indicating a tty | |
189 @rtype bool | |
190 """ | |
191 return False | |
192 | |
193 @property | |
194 def encoding(self): | |
195 """ | |
196 Public method to report the used encoding. | |
197 | |
198 @return used encoding | |
199 @rtype str | |
200 """ | |
201 return Preferences.getSystem("IOEncoding") | |
202 | |
181 | 203 |
182 class UserInterfaceSide(enum.Enum): | 204 class UserInterfaceSide(enum.Enum): |
183 """ | 205 """ |
184 Class defining the supported sides of the user interface. | 206 Class defining the supported sides of the user interface. |
185 """ | 207 """ |
213 mainPasswordChanged = pyqtSignal(str, str) | 235 mainPasswordChanged = pyqtSignal(str, str) |
214 onlineStateChanged = pyqtSignal(bool) | 236 onlineStateChanged = pyqtSignal(bool) |
215 | 237 |
216 maxFilePathLen = 100 | 238 maxFilePathLen = 100 |
217 maxMenuFilePathLen = 75 | 239 maxMenuFilePathLen = 75 |
240 | |
241 # TODO: change this to 'True' for official releases | |
242 ReleaseMode = False | |
218 | 243 |
219 ErrorLogFileName = "eric7_error.log" | 244 ErrorLogFileName = "eric7_error.log" |
220 | 245 |
221 def __init__( | 246 def __init__( |
222 self, | 247 self, |
311 | 336 |
312 # load the view profiles | 337 # load the view profiles |
313 self.profiles = Preferences.getUI("ViewProfiles") | 338 self.profiles = Preferences.getUI("ViewProfiles") |
314 | 339 |
315 splash.showMessage(self.tr("Initializing Basic Services...")) | 340 splash.showMessage(self.tr("Initializing Basic Services...")) |
341 logging.getLogger(__name__).debug("Initializing Basic Services...") | |
342 | |
343 # Generate the redirection helpers | |
344 self.stdout = Redirector(False, self) | |
345 self.stdout.appendStdout.connect(self.appendToStdout) | |
346 self.stderr = Redirector(True, self) | |
347 self.stderr.appendStderr.connect(self.appendToStderr) | |
348 # Redirect sys.stdout and/or sys.stderr if those are None | |
349 if sys.stdout is None or UserInterface.ReleaseMode: | |
350 sys.stdout = self.stdout | |
351 if sys.stderr is None or UserInterface.ReleaseMode: | |
352 sys.stderr = self.stderr | |
353 | |
354 # create the remote server interface | |
355 logging.getLogger(__name__).debug("Creating 'eric-ide' Server Interface...") | |
356 self.__ericServerInterface = EricServerInterface(self) | |
357 # register it early because it is needed very soon | |
358 ericApp().registerObject("EricServer", self.__ericServerInterface) | |
316 | 359 |
317 # Generate the conda interface | 360 # Generate the conda interface |
318 logging.debug("Creating Conda Interface...") | 361 logging.getLogger(__name__).debug("Creating Conda Interface...") |
319 self.condaInterface = Conda(self) | 362 self.condaInterface = Conda(self) |
363 # register it early because it is needed very soon | |
320 ericApp().registerObject("Conda", self.condaInterface) | 364 ericApp().registerObject("Conda", self.condaInterface) |
321 | 365 |
322 # Generate the pip interface | 366 # Generate the pip interface |
323 logging.debug("Creating Pip Interface...") | 367 logging.getLogger(__name__).debug("Creating Pip Interface...") |
324 self.pipInterface = Pip(self) | 368 self.pipInterface = Pip(self) |
369 # register it early because it is needed very soon | |
325 ericApp().registerObject("Pip", self.pipInterface) | 370 ericApp().registerObject("Pip", self.pipInterface) |
326 | 371 |
327 # Generate the virtual environment manager | 372 # Generate the virtual environment manager |
328 logging.debug("Creating Virtual Environments Manager...") | 373 logging.getLogger(__name__).debug("Creating Virtual Environments Manager...") |
329 self.virtualenvManager = VirtualenvManager(self) | 374 self.virtualenvManager = VirtualenvManager(self) |
330 # register it early because it is needed very soon | 375 # register it early because it is needed very soon |
331 ericApp().registerObject("VirtualEnvManager", self.virtualenvManager) | 376 ericApp().registerObject("VirtualEnvManager", self.virtualenvManager) |
332 | 377 |
333 # Generate an empty project object and multi project object | 378 # Generate an empty project object |
334 logging.debug("Creating Project Manager...") | 379 logging.getLogger(__name__).debug("Creating Project Manager...") |
335 self.project = Project(self) | 380 self.project = Project(self, remoteServer=self.__ericServerInterface) |
336 ericApp().registerObject("Project", self.project) | 381 ericApp().registerObject("Project", self.project) |
337 | 382 |
338 logging.debug("Creating Multi-Project Manager...") | 383 # Generate the multi project object |
384 logging.getLogger(__name__).debug("Creating Multi-Project Manager...") | |
339 self.multiProject = MultiProject(self.project, self) | 385 self.multiProject = MultiProject(self.project, self) |
340 | 386 |
341 # Generate the debug server object | 387 # Generate the debug server object |
342 logging.debug("Creating Debug Server...") | 388 logging.getLogger(__name__).debug("Creating Debug Server...") |
343 self.__debugServer = DebugServer( | 389 self.__debugServer = DebugServer( |
344 self.__originalPathString, project=self.project, parent=self | 390 self.__originalPathString, project=self.project, parent=self |
345 ) | 391 ) |
346 | 392 |
347 # Create the background service object | 393 # Create the background service object |
394 logging.getLogger(__name__).debug("Creating Background Service...") | |
348 self.backgroundService = BackgroundService(self) | 395 self.backgroundService = BackgroundService(self) |
349 | 396 |
350 splash.showMessage(self.tr("Initializing Plugin Manager...")) | 397 splash.showMessage(self.tr("Initializing Plugin Manager...")) |
351 | 398 logging.getLogger(__name__).debug("Initializing Plugin Manager...") |
352 # Initialize the Plugin Manager (Plugins are initialized later | 399 |
400 # Initialize the Plugin Manager (Plugins are initialized later) | |
353 self.pluginManager = PluginManager( | 401 self.pluginManager = PluginManager( |
354 self, self.__disabledPlugins, develPlugin=plugin | 402 self, self.__disabledPlugins, develPlugin=plugin |
355 ) | 403 ) |
356 | 404 |
357 splash.showMessage(self.tr("Generating Main User Interface...")) | 405 splash.showMessage(self.tr("Generating Main User Interface...")) |
406 logging.getLogger(__name__).debug("Generating Main User Interface...") | |
358 | 407 |
359 self.__webBrowserProcess = None | 408 self.__webBrowserProcess = None |
360 self.__webBrowserClient = None | 409 self.__webBrowserClient = None |
361 self.__webBrowserSAName = QUuid.createUuid().toString()[1:-1] | 410 self.__webBrowserSAName = QUuid.createUuid().toString()[1:-1] |
362 | 411 |
374 pel = SpellChecker.getUserDictionaryPath(isException=True) | 423 pel = SpellChecker.getUserDictionaryPath(isException=True) |
375 SpellCheckMixin.setDefaultLanguage( | 424 SpellCheckMixin.setDefaultLanguage( |
376 Preferences.getEditor("SpellCheckingDefaultLanguage"), pwl, pel | 425 Preferences.getEditor("SpellCheckingDefaultLanguage"), pwl, pel |
377 ) | 426 ) |
378 | 427 |
379 logging.debug("Creating Application Objects...") | 428 logging.getLogger(__name__).debug("Creating Application Objects...") |
380 self.__createObjects() | 429 self.__createObjects() |
381 | 430 |
382 # Create the main window now so that we can connect QActions to it. | 431 # Create the main window now so that we can connect QActions to it. |
383 logging.debug("Creating Layout...") | 432 logging.getLogger(__name__).debug("Creating Layout...") |
384 self.__createLayout() | 433 self.__createLayout() |
385 self.__currentRightWidget = None | 434 self.__currentRightWidget = None |
386 self.__currentBottomWidget = None | 435 self.__currentBottomWidget = None |
387 | 436 |
388 # Generate the debugger part of the ui | 437 # Generate the debugger part of the ui |
389 logging.debug("Creating Debugger UI...") | 438 logging.getLogger(__name__).debug("Creating Debugger UI...") |
390 self.debuggerUI = DebugUI( | 439 self.debuggerUI = DebugUI( |
391 self, self.viewmanager, self.__debugServer, self.debugViewer, self.project | 440 self, self.viewmanager, self.__debugServer, self.debugViewer, self.project |
392 ) | 441 ) |
393 self.debugViewer.setDebugger(self.debuggerUI) | 442 self.debugViewer.setDebugger(self.debuggerUI) |
394 self.shell.setDebuggerUI(self.debuggerUI) | 443 self.shell.setDebuggerUI(self.debuggerUI) |
395 | |
396 # Generate the redirection helpers | |
397 self.stdout = Redirector(False, self) | |
398 self.stderr = Redirector(True, self) | |
399 | 444 |
400 # set a few dialog members for non-modal dialogs created on demand | 445 # set a few dialog members for non-modal dialogs created on demand |
401 self.programsDialog = None | 446 self.programsDialog = None |
402 self.shortcutsDialog = None | 447 self.shortcutsDialog = None |
403 self.__testingWidget = None | 448 self.__testingWidget = None |
411 self.__versionsDialog = None | 456 self.__versionsDialog = None |
412 self.__configurationDialog = None | 457 self.__configurationDialog = None |
413 | 458 |
414 # now setup the connections | 459 # now setup the connections |
415 splash.showMessage(self.tr("Setting up signal/slot-connections...")) | 460 splash.showMessage(self.tr("Setting up signal/slot-connections...")) |
461 logging.getLogger(__name__).debug( | |
462 self.tr("Setting up signal/slot-connections...") | |
463 ) | |
416 | 464 |
417 self.debugViewer.exceptionLogger.sourceFile.connect( | 465 self.debugViewer.exceptionLogger.sourceFile.connect( |
418 self.viewmanager.openSourceFile | 466 self.viewmanager.openSourceFile |
419 ) | 467 ) |
420 | 468 |
492 self.debugViewer.disassemblyViewer.showDisassembly | 540 self.debugViewer.disassemblyViewer.showDisassembly |
493 ) | 541 ) |
494 self.__debugServer.clientProcessStdout.connect(self.appendToStdout) | 542 self.__debugServer.clientProcessStdout.connect(self.appendToStdout) |
495 self.__debugServer.clientProcessStderr.connect(self.appendToStderr) | 543 self.__debugServer.clientProcessStderr.connect(self.appendToStderr) |
496 self.__debugServer.appendStdout.connect(self.appendToStdout) | 544 self.__debugServer.appendStdout.connect(self.appendToStdout) |
497 | |
498 self.stdout.appendStdout.connect(self.appendToStdout) | |
499 self.stderr.appendStderr.connect(self.appendToStderr) | |
500 | 545 |
501 self.preferencesChanged.connect(self.viewmanager.preferencesChanged) | 546 self.preferencesChanged.connect(self.viewmanager.preferencesChanged) |
502 self.reloadAPIs.connect(self.viewmanager.getAPIsManager().reloadAPIs) | 547 self.reloadAPIs.connect(self.viewmanager.getAPIsManager().reloadAPIs) |
503 self.preferencesChanged.connect(self.logViewer.preferencesChanged) | 548 self.preferencesChanged.connect(self.logViewer.preferencesChanged) |
504 self.appendStdout.connect(self.logViewer.appendToStdout) | 549 self.appendStdout.connect(self.logViewer.appendToStdout) |
597 if self.microPythonWidget is not None: | 642 if self.microPythonWidget is not None: |
598 self.microPythonWidget.aboutToDisconnect.connect( | 643 self.microPythonWidget.aboutToDisconnect.connect( |
599 self.viewmanager.closeDeviceEditors | 644 self.viewmanager.closeDeviceEditors |
600 ) | 645 ) |
601 | 646 |
647 self.__ericServerInterface.connectionStateChanged.connect( | |
648 self.project.remoteConnectionChanged | |
649 ) | |
650 self.__ericServerInterface.connectionStateChanged.connect( | |
651 self.viewmanager.remoteConnectionChanged | |
652 ) | |
653 self.__ericServerInterface.connectionStateChanged.connect( | |
654 self.shell.remoteConnectionChanged | |
655 ) | |
656 | |
657 self.__ericServerInterface.aboutToDisconnect.connect(self.project.closeProject) | |
658 self.__ericServerInterface.aboutToDisconnect.connect( | |
659 self.viewmanager.closeRemoteEditors | |
660 ) | |
661 | |
602 # create the toolbar manager object | 662 # create the toolbar manager object |
603 self.toolbarManager = EricToolBarManager(self, self) | 663 self.toolbarManager = EricToolBarManager(self, self) |
604 self.toolbarManager.setMainWindow(self) | 664 self.toolbarManager.setMainWindow(self) |
605 self.preferencesChanged.connect(self.toolbarManager.preferencesChanged) | 665 self.preferencesChanged.connect(self.toolbarManager.preferencesChanged) |
606 | 666 |
607 # Initialize the tool groups and list of started tools | 667 # Initialize the tool groups and list of started tools |
608 splash.showMessage(self.tr("Initializing Tools...")) | 668 splash.showMessage(self.tr("Initializing Tools...")) |
669 logging.getLogger(__name__).debug("Initializing Tools...") | |
609 self.toolGroups, self.currentToolGroup = Preferences.readToolGroups() | 670 self.toolGroups, self.currentToolGroup = Preferences.readToolGroups() |
610 self.toolProcs = [] | 671 self.toolProcs = [] |
611 self.__initExternalToolsActions() | 672 self.__initExternalToolsActions() |
612 | 673 |
613 # redirect handling of http, https and file URLs to ourselves | 674 # redirect handling of http, https and file URLs to ourselves |
615 QDesktopServices.setUrlHandler("http", self.handleUrl) | 676 QDesktopServices.setUrlHandler("http", self.handleUrl) |
616 QDesktopServices.setUrlHandler("https", self.handleUrl) | 677 QDesktopServices.setUrlHandler("https", self.handleUrl) |
617 | 678 |
618 # register all relevant objects | 679 # register all relevant objects |
619 splash.showMessage(self.tr("Registering Objects...")) | 680 splash.showMessage(self.tr("Registering Objects...")) |
681 logging.getLogger(__name__).debug("Registering Objects...") | |
620 ericApp().registerObject("UserInterface", self) | 682 ericApp().registerObject("UserInterface", self) |
621 ericApp().registerObject("DebugUI", self.debuggerUI) | 683 ericApp().registerObject("DebugUI", self.debuggerUI) |
622 ericApp().registerObject("DebugServer", self.__debugServer) | 684 ericApp().registerObject("DebugServer", self.__debugServer) |
623 ericApp().registerObject("BackgroundService", self.backgroundService) | 685 ericApp().registerObject("BackgroundService", self.backgroundService) |
624 ericApp().registerObject("ViewManager", self.viewmanager) | 686 ericApp().registerObject("ViewManager", self.viewmanager) |
649 self.__sessionFile = SessionFile(True) | 711 self.__sessionFile = SessionFile(True) |
650 self.__tasksFile = TasksFile(True) | 712 self.__tasksFile = TasksFile(True) |
651 | 713 |
652 # Initialize the actions, menus, toolbars and statusbar | 714 # Initialize the actions, menus, toolbars and statusbar |
653 splash.showMessage(self.tr("Initializing Actions...")) | 715 splash.showMessage(self.tr("Initializing Actions...")) |
716 logging.getLogger(__name__).debug("Initializing Actions...") | |
654 self.__initActions() | 717 self.__initActions() |
655 splash.showMessage(self.tr("Initializing Menus...")) | 718 splash.showMessage(self.tr("Initializing Menus...")) |
719 logging.getLogger(__name__).debug("Initializing Menus...") | |
656 self.__initMenus() | 720 self.__initMenus() |
657 splash.showMessage(self.tr("Initializing Toolbars...")) | 721 splash.showMessage(self.tr("Initializing Toolbars...")) |
722 logging.getLogger(__name__).debug("Initializing Toolbars...") | |
658 self.__initToolbars() | 723 self.__initToolbars() |
659 splash.showMessage(self.tr("Initializing Statusbar...")) | 724 splash.showMessage(self.tr("Initializing Statusbar...")) |
725 logging.getLogger(__name__).debug("Initializing Statusbar...") | |
660 self.__initStatusbar() | 726 self.__initStatusbar() |
661 | 727 |
662 # connect the appFocusChanged signal after all actions are ready | 728 # connect the appFocusChanged signal after all actions are ready |
663 app.focusChanged.connect(self.viewmanager.appFocusChanged) | 729 app.focusChanged.connect(self.viewmanager.appFocusChanged) |
664 | 730 |
674 self.currentProfile = None | 740 self.currentProfile = None |
675 | 741 |
676 self.shutdownCalled = False | 742 self.shutdownCalled = False |
677 self.inCloseEvent = False | 743 self.inCloseEvent = False |
678 | 744 |
679 # now redirect stdout and stderr | |
680 # TODO: release - reenable redirection | |
681 ##sys.stdout = self.stdout # __IGNORE_WARNING_M891__ | |
682 ##sys.stderr = self.stderr # __IGNORE_WARNING_M891__ | |
683 | |
684 # now fire up the single application server | 745 # now fire up the single application server |
685 if Preferences.getUI("SingleApplicationMode"): | 746 if Preferences.getUI("SingleApplicationMode"): |
686 splash.showMessage(self.tr("Initializing Single Application Server...")) | 747 splash.showMessage(self.tr("Initializing Single Application Server...")) |
748 logging.getLogger(__name__).debug( | |
749 self.tr("Initializing Single Application Server...") | |
750 ) | |
687 self.SAServer = EricSingleApplicationServer() | 751 self.SAServer = EricSingleApplicationServer() |
688 else: | 752 else: |
689 self.SAServer = None | 753 self.SAServer = None |
690 | 754 |
691 # now finalize the plugin manager setup | 755 # now finalize the plugin manager setup |
692 splash.showMessage(self.tr("Initializing Plugins...")) | 756 splash.showMessage(self.tr("Initializing Plugins...")) |
757 logging.getLogger(__name__).debug("Initializing Plugins...") | |
693 self.pluginManager.finalizeSetup() | 758 self.pluginManager.finalizeSetup() |
694 # now activate plugins having autoload set to True | 759 # now activate plugins having autoload set to True |
695 splash.showMessage(self.tr("Activating Plugins...")) | 760 splash.showMessage(self.tr("Activating Plugins...")) |
761 logging.getLogger(__name__).debug("Activating Plugins...") | |
696 self.pluginManager.activatePlugins() | 762 self.pluginManager.activatePlugins() |
697 splash.showMessage(self.tr("Generating Plugins Toolbars...")) | 763 splash.showMessage(self.tr("Generating Plugins Toolbars...")) |
764 logging.getLogger(__name__).debug("Generating Plugins Toolbars...") | |
698 self.pluginManager.initPluginToolbars(self.toolbarManager) | 765 self.pluginManager.initPluginToolbars(self.toolbarManager) |
699 if Preferences.getPluginManager("StartupCleanup"): | 766 if Preferences.getPluginManager("StartupCleanup"): |
700 splash.showMessage(self.tr("Cleaning Plugins Download Area...")) | 767 splash.showMessage(self.tr("Cleaning Plugins Download Area...")) |
768 logging.getLogger(__name__).debug("Cleaning Plugins Download Area...") | |
701 PluginRepositoryDownloadCleanup(quiet=True) | 769 PluginRepositoryDownloadCleanup(quiet=True) |
702 | 770 |
703 if self.__findFileWidget: | 771 if self.__findFileWidget: |
704 self.__findFileWidget.populateFileCategories() | 772 self.__findFileWidget.populateFileCategories() |
705 | 773 |
706 # now read the keyboard shortcuts for all the actions | 774 # now read the keyboard shortcuts for all the actions |
707 Shortcuts.readShortcuts() | 775 Shortcuts.readShortcuts() |
708 | 776 |
709 # restore toolbar manager state | 777 # restore toolbar manager state |
710 splash.showMessage(self.tr("Restoring Toolbarmanager...")) | 778 splash.showMessage(self.tr("Restoring Toolbarmanager...")) |
779 logging.getLogger(__name__).debug("Restoring Toolbarmanager...") | |
711 self.toolbarManager.restoreState(Preferences.getUI("ToolbarManagerState")) | 780 self.toolbarManager.restoreState(Preferences.getUI("ToolbarManagerState")) |
712 | 781 |
713 if self.codeDocumentationViewer is not None: | 782 if self.codeDocumentationViewer is not None: |
714 # finalize the initialization of the code documentation viewer | 783 # finalize the initialization of the code documentation viewer |
715 self.codeDocumentationViewer.finalizeSetup() | 784 self.codeDocumentationViewer.finalizeSetup() |
716 | 785 |
717 # now activate the initial view profile | 786 # now activate the initial view profile |
718 splash.showMessage(self.tr("Setting View Profile...")) | 787 splash.showMessage(self.tr("Setting View Profile...")) |
788 logging.getLogger(__name__).debug("Setting View Profile...") | |
719 self.__setEditProfile() | 789 self.__setEditProfile() |
720 | 790 |
721 # special treatment for the VCS toolbars | 791 # special treatment for the VCS toolbars |
722 for tb in self.getToolbarsByCategory("vcs"): | 792 for tb in self.getToolbarsByCategory("vcs"): |
723 tb.setVisible(False) | 793 tb.setVisible(False) |
727 if Preferences.getVCS("ShowVcsToolbar"): | 797 if Preferences.getVCS("ShowVcsToolbar"): |
728 tb.setVisible(True) | 798 tb.setVisible(True) |
729 | 799 |
730 # now read the saved tasks | 800 # now read the saved tasks |
731 splash.showMessage(self.tr("Reading Tasks...")) | 801 splash.showMessage(self.tr("Reading Tasks...")) |
802 logging.getLogger(__name__).debug("Reading Tasks...") | |
732 self.__readTasks() | 803 self.__readTasks() |
733 | 804 |
734 if self.templateViewer is not None: | 805 if self.templateViewer is not None: |
735 # now read the saved templates | 806 # now read the saved templates |
736 splash.showMessage(self.tr("Reading Templates...")) | 807 splash.showMessage(self.tr("Reading Templates...")) |
808 logging.getLogger(__name__).debug("Reading Templates...") | |
737 self.templateViewer.readTemplates() | 809 self.templateViewer.readTemplates() |
738 | 810 |
739 # now start the debug client with the most recently used virtual | 811 # now start the debug client with the most recently used virtual |
740 # environment | 812 # environment |
741 splash.showMessage(self.tr("Starting Debugger...")) | 813 splash.showMessage(self.tr("Starting Debugger...")) |
814 logging.getLogger(__name__).debug("Starting Debugger...") | |
742 if Preferences.getShell("StartWithMostRecentlyUsedEnvironment"): | 815 if Preferences.getShell("StartWithMostRecentlyUsedEnvironment"): |
743 venvName = Preferences.getShell("LastVirtualEnvironment") | 816 venvName = Preferences.getShell("LastVirtualEnvironment") |
744 if venvName == "embedded environment": | 817 if venvName == "embedded environment": |
745 venvName = "" | 818 venvName = "" |
746 self.__debugServer.startClient(False, venvName=venvName) | 819 self.__debugServer.startClient(False, venvName=venvName) |
800 from .Previewer import Previewer | 873 from .Previewer import Previewer |
801 from .PythonAstViewer import PythonAstViewer | 874 from .PythonAstViewer import PythonAstViewer |
802 from .PythonDisViewer import PythonDisViewer | 875 from .PythonDisViewer import PythonDisViewer |
803 | 876 |
804 # Create the view manager depending on the configuration setting | 877 # Create the view manager depending on the configuration setting |
805 logging.debug("Creating Viewmanager...") | 878 logging.getLogger(__name__).debug("Creating Viewmanager...") |
806 self.viewmanager = ViewManager.factory( | 879 self.viewmanager = ViewManager.factory( |
807 self, self.__debugServer, self.pluginManager | 880 self, self.__debugServer, self.__ericServerInterface, self.pluginManager |
808 ) | 881 ) |
809 | 882 |
810 # Create previewer | 883 # Create previewer |
811 logging.debug("Creating Previewer...") | 884 logging.getLogger(__name__).debug("Creating Previewer...") |
812 self.__previewer = Previewer(self.viewmanager) | 885 self.__previewer = Previewer(self.viewmanager) |
813 | 886 |
814 # Create AST viewer | 887 # Create AST viewer |
815 logging.debug("Creating Python AST Viewer") | 888 logging.getLogger(__name__).debug("Creating Python AST Viewer") |
816 self.__astViewer = PythonAstViewer(self.viewmanager) | 889 self.__astViewer = PythonAstViewer(self.viewmanager) |
817 | 890 |
818 # Create DIS viewer | 891 # Create DIS viewer |
819 logging.debug("Creating Python Disassembly Viewer") | 892 logging.getLogger(__name__).debug("Creating Python Disassembly Viewer") |
820 self.__disViewer = PythonDisViewer(self.viewmanager) | 893 self.__disViewer = PythonDisViewer(self.viewmanager) |
821 | 894 |
822 # Create the project browser | 895 # Create the project browser |
823 logging.debug("Creating Project Browser...") | 896 logging.getLogger(__name__).debug("Creating Project Browser...") |
824 self.projectBrowser = ProjectBrowser(self.project) | 897 self.projectBrowser = ProjectBrowser(self.project) |
825 | 898 |
826 # Create the multi project browser | 899 # Create the multi project browser |
827 logging.debug("Creating Multiproject Browser...") | 900 logging.getLogger(__name__).debug("Creating Multi Project Browser...") |
828 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject, self.project) | 901 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject, self.project) |
829 | 902 |
830 # Create the task viewer part of the user interface | 903 # Create the task viewer part of the user interface |
831 logging.debug("Creating Task Viewer...") | 904 logging.getLogger(__name__).debug("Creating Task Viewer...") |
832 self.taskViewer = TaskViewer(None, self.project) | 905 self.taskViewer = TaskViewer(None, self.project) |
833 | 906 |
834 # Create the log viewer part of the user interface | 907 # Create the log viewer part of the user interface |
835 logging.debug("Creating Log Viewer...") | 908 logging.getLogger(__name__).debug("Creating Log Viewer...") |
836 self.logViewer = LogViewer(self) | 909 self.logViewer = LogViewer(self) |
837 | 910 |
838 # Create the debug viewer | 911 # Create the debug viewer |
839 logging.debug("Creating Debug Viewer...") | 912 logging.getLogger(__name__).debug("Creating Debug Viewer...") |
840 self.debugViewer = DebugViewer(self.__debugServer) | 913 self.debugViewer = DebugViewer(self.__debugServer) |
841 | 914 |
842 # Create the shell | 915 # Create the shell |
843 logging.debug("Creating Shell...") | 916 logging.getLogger(__name__).debug("Creating Shell...") |
844 self.shellAssembly = ShellAssembly( | 917 self.shellAssembly = ShellAssembly( |
845 self.__debugServer, self.viewmanager, self.project, True | 918 self.__debugServer, self.viewmanager, self.project, True |
846 ) | 919 ) |
847 self.shell = self.shellAssembly.shell() | 920 self.shell = self.shellAssembly.shell() |
848 | 921 |
849 if Preferences.getUI("ShowTemplateViewer"): | 922 if Preferences.getUI("ShowTemplateViewer"): |
850 # Create the template viewer part of the user interface | 923 # Create the template viewer part of the user interface |
851 logging.debug("Creating Template Viewer...") | 924 logging.getLogger(__name__).debug("Creating Template Viewer...") |
852 from eric7.Templates.TemplateViewer import TemplateViewer # noqa: I101 | 925 from eric7.Templates.TemplateViewer import TemplateViewer # noqa: I101 |
853 | 926 |
854 self.templateViewer = TemplateViewer(None, self.viewmanager) | 927 self.templateViewer = TemplateViewer(None, self.viewmanager) |
855 else: | 928 else: |
856 logging.debug("Template Viewer disabled") | 929 logging.getLogger(__name__).debug("Template Viewer disabled") |
857 self.templateViewer = None | 930 self.templateViewer = None |
858 | 931 |
859 if Preferences.getUI("ShowFileBrowser"): | 932 if Preferences.getUI("ShowFileBrowser"): |
860 # Create the file browser | 933 # Create the file browser |
861 logging.debug("Creating File Browser...") | 934 logging.getLogger(__name__).debug("Creating File Browser...") |
862 from .Browser import Browser # noqa: I101 | 935 from .Browser import Browser # noqa: I101 |
863 | 936 |
864 self.browser = Browser() | 937 self.browser = Browser(self.__ericServerInterface) |
865 else: | 938 else: |
866 logging.debug("File Browser disabled") | 939 logging.getLogger(__name__).debug("File Browser disabled") |
867 self.browser = None | 940 self.browser = None |
868 | 941 |
869 if Preferences.getUI("ShowSymbolsViewer"): | 942 if Preferences.getUI("ShowSymbolsViewer"): |
870 # Create the symbols viewer | 943 # Create the symbols viewer |
871 logging.debug("Creating Symbols Viewer...") | 944 logging.getLogger(__name__).debug("Creating Symbols Viewer...") |
872 from .SymbolsWidget import SymbolsWidget # noqa: I101 | 945 from .SymbolsWidget import SymbolsWidget # noqa: I101 |
873 | 946 |
874 self.symbolsViewer = SymbolsWidget() | 947 self.symbolsViewer = SymbolsWidget() |
875 else: | 948 else: |
876 logging.debug("Symbols Viewer disabled") | 949 logging.getLogger(__name__).debug("Symbols Viewer disabled") |
877 self.symbolsViewer = None | 950 self.symbolsViewer = None |
878 | 951 |
879 if Preferences.getUI("ShowCodeDocumentationViewer"): | 952 if Preferences.getUI("ShowCodeDocumentationViewer"): |
880 # Create the code documentation viewer | 953 # Create the code documentation viewer |
881 logging.debug("Creating Code Documentation Viewer...") | 954 logging.getLogger(__name__).debug("Creating Code Documentation Viewer...") |
882 from .CodeDocumentationViewer import CodeDocumentationViewer # noqa: I101 | 955 from .CodeDocumentationViewer import CodeDocumentationViewer # noqa: I101 |
883 | 956 |
884 self.codeDocumentationViewer = CodeDocumentationViewer(self) | 957 self.codeDocumentationViewer = CodeDocumentationViewer(self) |
885 else: | 958 else: |
886 logging.debug("Code Documentation Viewer disabled") | 959 logging.getLogger(__name__).debug("Code Documentation Viewer disabled") |
887 self.codeDocumentationViewer = None | 960 self.codeDocumentationViewer = None |
888 | 961 |
889 if Preferences.getUI("ShowPyPIPackageManager"): | 962 if Preferences.getUI("ShowPyPIPackageManager"): |
890 # Create the PyPI package manager | 963 # Create the PyPI package manager |
891 logging.debug("Creating PyPI Package Manager...") | 964 logging.getLogger(__name__).debug("Creating PyPI Package Manager...") |
892 from eric7.PipInterface.PipPackagesWidget import ( # noqa: I101 | 965 from eric7.PipInterface.PipPackagesWidget import ( # noqa: I101 |
893 PipPackagesWidget, | 966 PipPackagesWidget, |
894 ) | 967 ) |
895 | 968 |
896 self.pipWidget = PipPackagesWidget(self.pipInterface) | 969 self.pipWidget = PipPackagesWidget(self.pipInterface) |
897 else: | 970 else: |
898 logging.debug("PyPI Package Manager disabled") | 971 logging.getLogger(__name__).debug("PyPI Package Manager disabled") |
899 self.pipWidget = None | 972 self.pipWidget = None |
900 | 973 |
901 if Preferences.getUI("ShowCondaPackageManager"): | 974 if Preferences.getUI("ShowCondaPackageManager"): |
902 # Create the conda package manager | 975 # Create the conda package manager |
903 logging.debug("Creating Conda Package Manager...") | 976 logging.getLogger(__name__).debug("Creating Conda Package Manager...") |
904 from eric7.CondaInterface.CondaPackagesWidget import ( # noqa: I101 | 977 from eric7.CondaInterface.CondaPackagesWidget import ( # noqa: I101 |
905 CondaPackagesWidget, | 978 CondaPackagesWidget, |
906 ) | 979 ) |
907 | 980 |
908 self.condaWidget = CondaPackagesWidget(self.condaInterface) | 981 self.condaWidget = CondaPackagesWidget(self.condaInterface) |
909 else: | 982 else: |
910 logging.debug("Conda Package Manager disabled") | 983 logging.getLogger(__name__).debug("Conda Package Manager disabled") |
911 self.condaWidget = None | 984 self.condaWidget = None |
912 | 985 |
913 if Preferences.getUI("ShowCooperation"): | 986 if Preferences.getUI("ShowCooperation"): |
914 # Create the chat part of the user interface | 987 # Create the chat part of the user interface |
915 logging.debug("Creating Chat Widget...") | 988 logging.getLogger(__name__).debug("Creating Chat Widget...") |
916 from eric7.Cooperation.ChatWidget import ChatWidget # noqa: I101 | 989 from eric7.Cooperation.ChatWidget import ChatWidget # noqa: I101 |
917 | 990 |
918 self.cooperation = ChatWidget(self) | 991 self.cooperation = ChatWidget(self) |
919 else: | 992 else: |
920 logging.debug("Chat Widget disabled") | 993 logging.getLogger(__name__).debug("Chat Widget disabled") |
921 self.cooperation = None | 994 self.cooperation = None |
922 | 995 |
923 if Preferences.getUI("ShowIrc"): | 996 if Preferences.getUI("ShowIrc"): |
924 # Create the IRC part of the user interface | 997 # Create the IRC part of the user interface |
925 logging.debug("Creating IRC Widget...") | 998 logging.getLogger(__name__).debug("Creating IRC Widget...") |
926 from eric7.Network.IRC.IrcWidget import IrcWidget # noqa: I101 | 999 from eric7.Network.IRC.IrcWidget import IrcWidget # noqa: I101 |
927 | 1000 |
928 self.irc = IrcWidget(self) | 1001 self.irc = IrcWidget(self) |
929 else: | 1002 else: |
930 logging.debug("IRC Widget disabled") | 1003 logging.getLogger(__name__).debug("IRC Widget disabled") |
931 self.irc = None | 1004 self.irc = None |
932 | 1005 |
933 if Preferences.getUI("ShowMicroPython"): | 1006 if Preferences.getUI("ShowMicroPython"): |
934 # Create the MicroPython part of the user interface | 1007 # Create the MicroPython part of the user interface |
935 logging.debug("Creating MicroPython Widget...") | 1008 logging.getLogger(__name__).debug("Creating MicroPython Widget...") |
936 from eric7.MicroPython.MicroPythonWidget import ( # noqa: I101 | 1009 from eric7.MicroPython.MicroPythonWidget import ( # noqa: I101 |
937 MicroPythonWidget, | 1010 MicroPythonWidget, |
938 ) | 1011 ) |
939 | 1012 |
940 self.microPythonWidget = MicroPythonWidget(self) | 1013 self.microPythonWidget = MicroPythonWidget(self) |
941 else: | 1014 else: |
942 logging.debug("MicroPython Widget disabled") | 1015 logging.getLogger(__name__).debug("MicroPython Widget disabled") |
943 self.microPythonWidget = None | 1016 self.microPythonWidget = None |
944 | 1017 |
945 if Preferences.getUI("ShowNumbersViewer"): | 1018 if Preferences.getUI("ShowNumbersViewer"): |
946 # Create the numbers viewer | 1019 # Create the numbers viewer |
947 logging.debug("Creating Numbers Viewer...") | 1020 logging.getLogger(__name__).debug("Creating Numbers Viewer...") |
948 from .NumbersWidget import NumbersWidget # noqa: I101 | 1021 from .NumbersWidget import NumbersWidget # noqa: I101 |
949 | 1022 |
950 self.numbersViewer = NumbersWidget() | 1023 self.numbersViewer = NumbersWidget() |
951 else: | 1024 else: |
952 logging.debug("Numbers Viewer disabled") | 1025 logging.getLogger(__name__).debug("Numbers Viewer disabled") |
953 self.numbersViewer = None | 1026 self.numbersViewer = None |
954 | 1027 |
955 # Create the Jedi Assistant | 1028 # Create the Jedi Assistant |
956 logging.debug("Creating Jedi Assistant...") | 1029 logging.getLogger(__name__).debug("Creating Jedi Assistant...") |
957 self.jediAssistant = AssistantJedi(self, self.viewmanager, self.project) | 1030 self.jediAssistant = AssistantJedi(self, self.viewmanager, self.project) |
958 | 1031 |
959 # Create the plug-ins repository viewer | 1032 # Create the plug-ins repository viewer |
1033 logging.getLogger(__name__).debug("Creating Plugin Repository Viewer...") | |
960 self.pluginRepositoryViewer = PluginRepositoryWidget( | 1034 self.pluginRepositoryViewer = PluginRepositoryWidget( |
961 self.pluginManager, integrated=True, parent=self | 1035 self.pluginManager, integrated=True, parent=self |
962 ) | 1036 ) |
963 self.pluginRepositoryViewer.closeAndInstall.connect( | 1037 self.pluginRepositoryViewer.closeAndInstall.connect( |
964 self.__installDownloadedPlugins | 1038 self.__installDownloadedPlugins |
965 ) | 1039 ) |
966 | 1040 |
967 # Create the virtual environments management widget | 1041 # Create the virtual environments management widget |
1042 logging.getLogger(__name__).debug("Creating Virtual Environments Viewer...") | |
968 self.__virtualenvManagerWidget = VirtualenvManagerWidget( | 1043 self.__virtualenvManagerWidget = VirtualenvManagerWidget( |
969 self.virtualenvManager, self | 1044 self.virtualenvManager, self |
970 ) | 1045 ) |
971 | 1046 |
972 self.__findFileDialog = None | 1047 self.__findFileDialog = None |
973 self.__replaceFileDialog = None | 1048 self.__replaceFileDialog = None |
974 if Preferences.getUI("ShowFindFileWidget"): | 1049 if Preferences.getUI("ShowFindFileWidget"): |
975 # Create the find in files widget | 1050 # Create the find in files widget |
976 from .FindFileWidget import FindFileWidget # noqa: I101 | 1051 from .FindFileWidget import FindFileWidget # noqa: I101 |
977 | 1052 |
1053 logging.getLogger(__name__).debug("Creating Find/Replace Pane...") | |
978 self.__findFileWidget = FindFileWidget(self.project, self) | 1054 self.__findFileWidget = FindFileWidget(self.project, self) |
979 self.__findFileWidget.sourceFile.connect(self.viewmanager.openSourceFile) | 1055 self.__findFileWidget.sourceFile.connect(self.viewmanager.openSourceFile) |
980 self.__findFileWidget.designerFile.connect(self.__designer) | 1056 self.__findFileWidget.designerFile.connect(self.__designer) |
981 self.__findFileWidget.linguistFile.connect(self.__linguist) | 1057 self.__findFileWidget.linguistFile.connect(self.__linguist) |
982 self.__findFileWidget.trpreview.connect(self.__TRPreviewer) | 1058 self.__findFileWidget.trpreview.connect(self.__TRPreviewer) |
983 self.__findFileWidget.pixmapFile.connect(self.__showPixmap) | 1059 self.__findFileWidget.pixmapFile.connect(self.__showPixmap) |
984 self.__findFileWidget.svgFile.connect(self.__showSvg) | 1060 self.__findFileWidget.svgFile.connect(self.__showSvg) |
985 self.__findFileWidget.umlFile.connect(self.__showUml) | 1061 self.__findFileWidget.umlFile.connect(self.__showUml) |
986 else: | 1062 else: |
1063 logging.getLogger(__name__).debug("Find/Replace Pane disabled...") | |
987 self.__findFileWidget = None | 1064 self.__findFileWidget = None |
988 | 1065 |
989 self.__findLocationDialog = None | 1066 self.__findLocationDialog = None |
990 if Preferences.getUI("ShowFindLocationWidget"): | 1067 if Preferences.getUI("ShowFindLocationWidget"): |
991 # Create the find location (file) widget | 1068 # Create the find location (file) widget |
992 from .FindLocationWidget import FindLocationWidget # noqa: I101 | 1069 from .FindLocationWidget import FindLocationWidget # noqa: I101 |
993 | 1070 |
1071 logging.getLogger(__name__).debug("Creating Find File Pane...") | |
994 self.__findLocationWidget = FindLocationWidget(self.project, self) | 1072 self.__findLocationWidget = FindLocationWidget(self.project, self) |
995 self.__findLocationWidget.sourceFile.connect( | 1073 self.__findLocationWidget.sourceFile.connect( |
996 self.viewmanager.openSourceFile | 1074 self.viewmanager.openSourceFile |
997 ) | 1075 ) |
998 self.__findLocationWidget.designerFile.connect(self.__designer) | 1076 self.__findLocationWidget.designerFile.connect(self.__designer) |
1000 self.__findLocationWidget.trpreview.connect(self.__TRPreviewer) | 1078 self.__findLocationWidget.trpreview.connect(self.__TRPreviewer) |
1001 self.__findLocationWidget.pixmapFile.connect(self.__showPixmap) | 1079 self.__findLocationWidget.pixmapFile.connect(self.__showPixmap) |
1002 self.__findLocationWidget.svgFile.connect(self.__showSvg) | 1080 self.__findLocationWidget.svgFile.connect(self.__showSvg) |
1003 self.__findLocationWidget.umlFile.connect(self.__showUml) | 1081 self.__findLocationWidget.umlFile.connect(self.__showUml) |
1004 else: | 1082 else: |
1083 logging.getLogger(__name__).debug("Find File Pane disabled...") | |
1005 self.__findLocationWidget = None | 1084 self.__findLocationWidget = None |
1006 | 1085 |
1007 # Create the VCS Status widget | 1086 # Create the VCS Status widget |
1087 logging.getLogger(__name__).debug("Creating VCS Status Viewer...") | |
1008 self.__vcsStatusWidget = StatusWidget(self.project, self.viewmanager, self) | 1088 self.__vcsStatusWidget = StatusWidget(self.project, self.viewmanager, self) |
1009 | 1089 |
1010 if ( | 1090 if ( |
1011 Preferences.getUI("ShowInternalHelpViewer") | 1091 Preferences.getUI("ShowInternalHelpViewer") |
1012 or Preferences.getHelp("HelpViewerType") == 0 | 1092 or Preferences.getHelp("HelpViewerType") == 0 |
1013 ): | 1093 ): |
1014 # Create the embedded help viewer | 1094 # Create the embedded help viewer |
1015 logging.debug("Creating Internal Help Viewer...") | 1095 logging.getLogger(__name__).debug("Creating Internal Help Viewer...") |
1016 from eric7.HelpViewer.HelpViewerWidget import HelpViewerWidget # noqa: I101 | 1096 from eric7.HelpViewer.HelpViewerWidget import HelpViewerWidget # noqa: I101 |
1017 | 1097 |
1018 self.__helpViewerWidget = HelpViewerWidget(self) | 1098 self.__helpViewerWidget = HelpViewerWidget(self) |
1019 else: | 1099 else: |
1020 logging.debug("Internal Help Viewer disabled...") | 1100 logging.getLogger(__name__).debug("Internal Help Viewer disabled...") |
1021 self.__helpViewerWidget = None | 1101 self.__helpViewerWidget = None |
1022 | 1102 |
1023 def __createLayout(self): | 1103 def __createLayout(self): |
1024 """ | 1104 """ |
1025 Private method to create the layout of the various windows. | 1105 Private method to create the layout of the various windows. |
1057 self.rightSidebar = None | 1137 self.rightSidebar = None |
1058 self.bottomSidebar = None | 1138 self.bottomSidebar = None |
1059 | 1139 |
1060 # Create layout with toolbox windows embedded in dock windows | 1140 # Create layout with toolbox windows embedded in dock windows |
1061 if self.__layoutType == "Toolboxes": | 1141 if self.__layoutType == "Toolboxes": |
1062 logging.debug("Creating toolboxes...") | 1142 logging.getLogger(__name__).debug("Creating toolboxes...") |
1063 self.__createToolboxesLayout() | 1143 self.__createToolboxesLayout() |
1064 | 1144 |
1065 # Create layout with sidebar windows embedded in dock windows | 1145 # Create layout with sidebar windows embedded in dock windows |
1066 elif self.__layoutType == "Sidebars": | 1146 elif self.__layoutType == "Sidebars": |
1067 logging.debug("Creating sidebars...") | 1147 logging.getLogger(__name__).debug("Creating sidebars...") |
1068 self.__createSidebarsLayout() | 1148 self.__createSidebarsLayout() |
1069 | 1149 |
1070 else: | 1150 else: |
1071 raise ValueError("Wrong layout type given ({0})".format(self.__layoutType)) | 1151 raise ValueError("Wrong layout type given ({0})".format(self.__layoutType)) |
1072 logging.debug("Created Layout") | 1152 logging.getLogger(__name__).debug("Created Layout") |
1073 | 1153 |
1074 def __createToolboxesLayout(self): | 1154 def __createToolboxesLayout(self): |
1075 """ | 1155 """ |
1076 Private method to create the Toolboxes layout. | 1156 Private method to create the Toolboxes layout. |
1077 """ | 1157 """ |
1078 from eric7.EricWidgets.EricToolBox import ( | 1158 from eric7.EricWidgets.EricToolBox import ( |
1079 EricHorizontalToolBox, | 1159 EricHorizontalToolBox, |
1080 EricVerticalToolBox, | 1160 EricVerticalToolBox, |
1081 ) | 1161 ) |
1082 | 1162 |
1083 logging.debug("Creating Toolboxes Layout...") | 1163 logging.getLogger(__name__).debug("Creating Toolboxes Layout...") |
1084 | 1164 |
1085 # Create the left toolbox | 1165 # Create the left toolbox |
1086 self.lToolboxDock = self.__createDockWindow("lToolboxDock") | 1166 self.lToolboxDock = self.__createDockWindow("lToolboxDock") |
1087 self.lToolbox = EricVerticalToolBox(self.lToolboxDock) | 1167 self.lToolbox = EricVerticalToolBox(self.lToolboxDock) |
1088 self.__setupDockWindow( | 1168 self.__setupDockWindow( |
1206 self.tr("Virtual Environments"), | 1286 self.tr("Virtual Environments"), |
1207 ) | 1287 ) |
1208 | 1288 |
1209 if self.pipWidget: | 1289 if self.pipWidget: |
1210 self.rToolbox.addItem( | 1290 self.rToolbox.addItem( |
1211 self.pipWidget, EricPixmapCache.getIcon("pypi"), self.tr("PyPI") | 1291 self.pipWidget, |
1292 EricPixmapCache.getIcon("pypi"), | |
1293 self.tr("PyPI Package Management"), | |
1212 ) | 1294 ) |
1213 | 1295 |
1214 if self.condaWidget: | 1296 if self.condaWidget: |
1215 self.rToolbox.addItem( | 1297 self.rToolbox.addItem( |
1216 self.condaWidget, EricPixmapCache.getIcon("miniconda"), self.tr("Conda") | 1298 self.condaWidget, EricPixmapCache.getIcon("miniconda"), self.tr("Conda") |
1270 """ | 1352 """ |
1271 Private method to create the Sidebars layout. | 1353 Private method to create the Sidebars layout. |
1272 """ | 1354 """ |
1273 from eric7.EricWidgets.EricSideBar import EricSideBar, EricSideBarSide | 1355 from eric7.EricWidgets.EricSideBar import EricSideBar, EricSideBarSide |
1274 | 1356 |
1275 logging.debug("Creating Sidebars Layout...") | 1357 logging.getLogger(__name__).debug("Creating Sidebars Layout...") |
1276 | 1358 |
1277 # Create the left sidebar | 1359 # Create the left sidebar |
1278 self.leftSidebar = EricSideBar( | 1360 self.leftSidebar = EricSideBar( |
1279 EricSideBarSide.WEST, Preferences.getUI("IconBarSize") | 1361 EricSideBarSide.WEST, Preferences.getUI("IconBarSize") |
1280 ) | 1362 ) |
1402 self.tr("Virtual Environments"), | 1484 self.tr("Virtual Environments"), |
1403 ) | 1485 ) |
1404 | 1486 |
1405 if self.pipWidget: | 1487 if self.pipWidget: |
1406 sidebar.addTab( | 1488 sidebar.addTab( |
1407 self.pipWidget, EricPixmapCache.getIcon("sbPyPI96"), self.tr("PyPI") | 1489 self.pipWidget, |
1490 EricPixmapCache.getIcon("sbPyPI96"), | |
1491 self.tr("PyPI Package Management"), | |
1408 ) | 1492 ) |
1409 | 1493 |
1410 if self.condaWidget: | 1494 if self.condaWidget: |
1411 sidebar.addTab( | 1495 sidebar.addTab( |
1412 self.condaWidget, | 1496 self.condaWidget, |
1469 else: | 1553 else: |
1470 self.rightSidebar.setCurrentIndex(0) | 1554 self.rightSidebar.setCurrentIndex(0) |
1471 self.bottomSidebar.setCurrentIndex(0) | 1555 self.bottomSidebar.setCurrentIndex(0) |
1472 | 1556 |
1473 # create the central widget | 1557 # create the central widget |
1474 logging.debug("Creating central widget...") | 1558 logging.getLogger(__name__).debug("Creating central widget...") |
1475 cw = self.centralWidget() # save the current central widget | 1559 cw = self.centralWidget() # save the current central widget |
1476 self.horizontalSplitter = QSplitter(Qt.Orientation.Horizontal) | 1560 self.horizontalSplitter = QSplitter(Qt.Orientation.Horizontal) |
1477 self.horizontalSplitter.setChildrenCollapsible(False) | 1561 self.horizontalSplitter.setChildrenCollapsible(False) |
1478 self.verticalSplitter = QSplitter(Qt.Orientation.Vertical) | 1562 self.verticalSplitter = QSplitter(Qt.Orientation.Vertical) |
1479 self.verticalSplitter.setChildrenCollapsible(False) | 1563 self.verticalSplitter.setChildrenCollapsible(False) |
2458 self.actions.append(self.codeDocumentationViewerActivateAct) | 2542 self.actions.append(self.codeDocumentationViewerActivateAct) |
2459 self.addAction(self.codeDocumentationViewerActivateAct) | 2543 self.addAction(self.codeDocumentationViewerActivateAct) |
2460 | 2544 |
2461 if self.pipWidget is not None: | 2545 if self.pipWidget is not None: |
2462 self.pipWidgetActivateAct = EricAction( | 2546 self.pipWidgetActivateAct = EricAction( |
2463 self.tr("PyPI"), | 2547 self.tr("PyPI Package Management"), |
2464 self.tr("PyPI"), | 2548 self.tr("PyPI Package Management"), |
2465 QKeySequence(self.tr("Ctrl+Alt+Shift+P")), | 2549 QKeySequence(self.tr("Ctrl+Alt+Shift+P")), |
2466 0, | 2550 0, |
2467 self, | 2551 self, |
2468 "pip_widget_activate", | 2552 "pip_widget_activate", |
2469 ) | 2553 ) |
2470 self.pipWidgetActivateAct.setStatusTip( | 2554 self.pipWidgetActivateAct.setStatusTip( |
2471 self.tr("Switch the input focus to the PyPI window.") | 2555 self.tr("Switch the input focus to the PyPI Package Management window.") |
2472 ) | 2556 ) |
2473 self.pipWidgetActivateAct.setWhatsThis( | 2557 self.pipWidgetActivateAct.setWhatsThis( |
2474 self.tr( | 2558 self.tr( |
2475 """<b>PyPI</b>""" | 2559 """<b>PyPI</b>""" |
2476 """<p>This switches the input focus to the PyPI window.</p>""" | 2560 """<p>This switches the input focus to the PyPI window.</p>""" |
3602 self.project.initActions() | 3686 self.project.initActions() |
3603 | 3687 |
3604 # initialize multi project actions | 3688 # initialize multi project actions |
3605 self.multiProject.initActions() | 3689 self.multiProject.initActions() |
3606 | 3690 |
3691 # initialize eric-ide server actions | |
3692 self.__ericServerInterface.initActions() | |
3693 | |
3607 def __initQtDocActions(self): | 3694 def __initQtDocActions(self): |
3608 """ | 3695 """ |
3609 Private slot to initialize the action to show the Qt documentation. | 3696 Private slot to initialize the action to show the Qt documentation. |
3610 """ | 3697 """ |
3611 self.qt5DocAct = EricAction( | 3698 self.qt5DocAct = EricAction( |
3809 mb = self.menuBar() | 3896 mb = self.menuBar() |
3810 if ( | 3897 if ( |
3811 OSUtilities.isLinuxPlatform() or OSUtilities.isFreeBsdPlatform() | 3898 OSUtilities.isLinuxPlatform() or OSUtilities.isFreeBsdPlatform() |
3812 ) and not Preferences.getUI("UseNativeMenuBar"): | 3899 ) and not Preferences.getUI("UseNativeMenuBar"): |
3813 mb.setNativeMenuBar(False) | 3900 mb.setNativeMenuBar(False) |
3901 | |
3902 ############################################################## | |
3903 ## Remote Server menu | |
3904 ############################################################## | |
3905 | |
3906 self.__menus["server"] = self.__ericServerInterface.initMenu() | |
3814 | 3907 |
3815 ############################################################## | 3908 ############################################################## |
3816 ## File menu | 3909 ## File menu |
3817 ############################################################## | 3910 ############################################################## |
3818 | 3911 |
3825 self.__menus["file"].addAction(self.restartAct) | 3918 self.__menus["file"].addAction(self.restartAct) |
3826 self.__menus["file"].addAction(self.exitAct) | 3919 self.__menus["file"].addAction(self.exitAct) |
3827 act = self.__menus["file"].actions()[0] | 3920 act = self.__menus["file"].actions()[0] |
3828 sep = self.__menus["file"].insertSeparator(act) | 3921 sep = self.__menus["file"].insertSeparator(act) |
3829 self.__menus["file"].insertAction(sep, self.newWindowAct) | 3922 self.__menus["file"].insertAction(sep, self.newWindowAct) |
3923 self.__menus["file"].insertSeparator(sep) | |
3924 self.__menus["file"].insertMenu(sep, self.__menus["server"]) | |
3925 self.__menus["file"].insertSeparator(sep) | |
3830 self.__menus["file"].aboutToShow.connect(self.__showFileMenu) | 3926 self.__menus["file"].aboutToShow.connect(self.__showFileMenu) |
3831 | 3927 |
3832 ############################################################## | 3928 ############################################################## |
3833 ## Edit menu | 3929 ## Edit menu |
3834 ############################################################## | 3930 ############################################################## |
4123 spellingtb = self.viewmanager.initSpellingToolbar(self.toolbarManager) | 4219 spellingtb = self.viewmanager.initSpellingToolbar(self.toolbarManager) |
4124 settingstb = QToolBar(self.tr("Settings"), self) | 4220 settingstb = QToolBar(self.tr("Settings"), self) |
4125 helptb = QToolBar(self.tr("Help"), self) | 4221 helptb = QToolBar(self.tr("Help"), self) |
4126 profilestb = QToolBar(self.tr("Profiles"), self) | 4222 profilestb = QToolBar(self.tr("Profiles"), self) |
4127 pluginstb = QToolBar(self.tr("Plugins"), self) | 4223 pluginstb = QToolBar(self.tr("Plugins"), self) |
4224 servertb = self.__ericServerInterface.initToolbar(self.toolbarManager) | |
4128 | 4225 |
4129 toolstb.setObjectName("ToolsToolbar") | 4226 toolstb.setObjectName("ToolsToolbar") |
4130 testingtb.setObjectName("UnittestToolbar") | 4227 testingtb.setObjectName("UnittestToolbar") |
4131 settingstb.setObjectName("SettingsToolbar") | 4228 settingstb.setObjectName("SettingsToolbar") |
4132 helptb.setObjectName("HelpToolbar") | 4229 helptb.setObjectName("HelpToolbar") |
4226 pluginstb.addAction(self.pluginRepoAct) | 4323 pluginstb.addAction(self.pluginRepoAct) |
4227 self.toolbarManager.addToolBar(pluginstb, pluginstb.windowTitle()) | 4324 self.toolbarManager.addToolBar(pluginstb, pluginstb.windowTitle()) |
4228 | 4325 |
4229 # add the various toolbars | 4326 # add the various toolbars |
4230 self.addToolBar(filetb) | 4327 self.addToolBar(filetb) |
4328 self.addToolBar(servertb) | |
4231 self.addToolBar(edittb) | 4329 self.addToolBar(edittb) |
4232 self.addToolBar(searchtb) | 4330 self.addToolBar(searchtb) |
4233 self.addToolBar(viewtb) | 4331 self.addToolBar(viewtb) |
4234 self.addToolBar(starttb) | 4332 self.addToolBar(starttb) |
4235 self.addToolBar(debugtb) | 4333 self.addToolBar(debugtb) |
4276 multiprojecttb, | 4374 multiprojecttb, |
4277 "", | 4375 "", |
4278 ] | 4376 ] |
4279 self.__toolbars["spelling"] = [spellingtb.windowTitle(), spellingtb, ""] | 4377 self.__toolbars["spelling"] = [spellingtb.windowTitle(), spellingtb, ""] |
4280 self.__toolbars["vcs"] = [vcstb.windowTitle(), vcstb, "vcs"] | 4378 self.__toolbars["vcs"] = [vcstb.windowTitle(), vcstb, "vcs"] |
4379 self.__toolbars["server"] = [servertb.windowTitle(), servertb, ""] | |
4281 | 4380 |
4282 def __initDebugToolbarsLayout(self): | 4381 def __initDebugToolbarsLayout(self): |
4283 """ | 4382 """ |
4284 Private slot to initialize the toolbars layout for the debug profile. | 4383 Private slot to initialize the toolbars layout for the debug profile. |
4285 """ | 4384 """ |
8364 ) | 8463 ) |
8365 ): | 8464 ): |
8366 # daily, weekly, monthly | 8465 # daily, weekly, monthly |
8367 return | 8466 return |
8368 | 8467 |
8369 versionTuple = Globals.versionToTuple(VersionOnly) | 8468 versionTuple = EricUtilities.versionToTuple(VersionOnly) |
8370 availableVersions = self.pipInterface.getPackageVersions("eric-ide") | 8469 availableVersions = self.pipInterface.getPackageVersions("eric-ide") |
8371 newerVersionsTuple = [ | 8470 newerVersionsTuple = [ |
8372 Globals.versionToTuple(v) | 8471 EricUtilities.versionToTuple(v) |
8373 for v in availableVersions | 8472 for v in availableVersions |
8374 if Globals.versionToTuple(v) > versionTuple | 8473 if EricUtilities.versionToTuple(v) > versionTuple |
8375 ] | 8474 ] |
8376 updateAvailable = bool(newerVersionsTuple) | 8475 updateAvailable = bool(newerVersionsTuple) |
8377 if updateAvailable: | 8476 if updateAvailable: |
8378 yes = EricMessageBox.yesNo( | 8477 yes = EricMessageBox.yesNo( |
8379 self, | 8478 self, |
8478 return True | 8577 return True |
8479 else: | 8578 else: |
8480 vers = VersionOnly.split("snapshot-")[1] | 8579 vers = VersionOnly.split("snapshot-")[1] |
8481 return vers > snapshot | 8580 return vers > snapshot |
8482 | 8581 |
8483 versionTuple = Globals.versionToTuple(VersionOnly) | 8582 versionTuple = EricUtilities.versionToTuple(VersionOnly) |
8484 if isinstance(required, str): | 8583 if isinstance(required, str): |
8485 required = Globals.versionToTuple(required) | 8584 required = EricUtilities.versionToTuple(required) |
8486 try: | 8585 try: |
8487 res = versionTuple > required | 8586 res = versionTuple > required |
8488 except TypeError: | 8587 except TypeError: |
8489 # some mismatching types, assume newer | 8588 # some mismatching types, assume newer |
8490 res = True | 8589 res = True |
8654 self.rToolboxDock.show() | 8753 self.rToolboxDock.show() |
8655 self.rToolbox.setCurrentWidget(self.__virtualenvManagerWidget) | 8754 self.rToolbox.setCurrentWidget(self.__virtualenvManagerWidget) |
8656 elif self.__layoutType == "Sidebars": | 8755 elif self.__layoutType == "Sidebars": |
8657 self.__activateLeftRightSidebarWidget(self.__virtualenvManagerWidget) | 8756 self.__activateLeftRightSidebarWidget(self.__virtualenvManagerWidget) |
8658 self.__virtualenvManagerWidget.setFocus(Qt.FocusReason.ActiveWindowFocusReason) | 8757 self.__virtualenvManagerWidget.setFocus(Qt.FocusReason.ActiveWindowFocusReason) |
8758 | |
8759 ############################################################ | |
8760 ## Interface to the eric-ide server interface | |
8761 ############################################################ | |
8762 | |
8763 def isEricServerConnected(self): | |
8764 """ | |
8765 Public method to check, if a connection to an eric-ide server has been | |
8766 established. | |
8767 | |
8768 @return flag indicating the interface connection state | |
8769 @rtype bool | |
8770 """ | |
8771 # simply delegated to the eric-ide server interface object | |
8772 return self.__ericServerInterface.isServerConnected() |