9481:0b936ff1bbb9 | 9482:a2bc06a54d9d |
---|---|
16 import os | 16 import os |
17 import pathlib | 17 import pathlib |
18 import shutil | 18 import shutil |
19 import sys | 19 import sys |
20 | 20 |
21 from PyQt6 import sip | |
21 from PyQt6.Qsci import QSCINTILLA_VERSION_STR | 22 from PyQt6.Qsci import QSCINTILLA_VERSION_STR |
22 from PyQt6.QtCore import ( | 23 from PyQt6.QtCore import ( |
23 PYQT_VERSION_STR, | 24 PYQT_VERSION_STR, |
24 QDate, | 25 QDate, |
25 QFile, | 26 QFile, |
51 QVBoxLayout, | 52 QVBoxLayout, |
52 QWhatsThis, | 53 QWhatsThis, |
53 QWidget, | 54 QWidget, |
54 ) | 55 ) |
55 | 56 |
56 from eric7 import Globals, Preferences, Utilities | 57 from eric7 import Globals, Preferences, Testing, Utilities |
58 from eric7.CondaInterface.Conda import Conda | |
59 from eric7.Debugger.DebugServer import DebugServer | |
60 from eric7.Debugger.DebugUI import DebugUI | |
57 from eric7.EricGui import EricPixmapCache | 61 from eric7.EricGui import EricPixmapCache |
58 from eric7.EricGui.EricAction import EricAction, createActionGroup | 62 from eric7.EricGui.EricAction import EricAction, createActionGroup |
59 from eric7.EricNetwork.EricNetworkIcon import EricNetworkIcon | 63 from eric7.EricNetwork.EricNetworkIcon import EricNetworkIcon |
60 from eric7.EricNetwork.EricNetworkProxyFactory import ( | 64 from eric7.EricNetwork.EricNetworkProxyFactory import ( |
61 EricNetworkProxyFactory, | 65 EricNetworkProxyFactory, |
66 from eric7.EricWidgets.EricClickableLabel import EricClickableLabel | 70 from eric7.EricWidgets.EricClickableLabel import EricClickableLabel |
67 from eric7.EricWidgets.EricMainWindow import EricMainWindow | 71 from eric7.EricWidgets.EricMainWindow import EricMainWindow |
68 from eric7.EricWidgets.EricSingleApplication import EricSingleApplicationServer | 72 from eric7.EricWidgets.EricSingleApplication import EricSingleApplicationServer |
69 from eric7.EricWidgets.EricToolBarManager import EricToolBarManager | 73 from eric7.EricWidgets.EricToolBarManager import EricToolBarManager |
70 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget | 74 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
75 from eric7.EricXML.SessionReader import SessionReader | |
76 from eric7.EricXML.TasksReader import TasksReader | |
71 from eric7.Globals import getConfig | 77 from eric7.Globals import getConfig |
78 from eric7.MultiProject.MultiProject import MultiProject | |
79 from eric7.PipInterface.Pip import Pip | |
80 from eric7.PluginManager.PluginManager import PluginManager | |
81 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryDownloadCleanup | |
82 from eric7.Preferences import Shortcuts | |
83 from eric7.Project.Project import Project | |
84 from eric7.QScintilla.SpellChecker import SpellChecker | |
72 from eric7.Sessions.SessionFile import SessionFile | 85 from eric7.Sessions.SessionFile import SessionFile |
73 from eric7.Tasks.TasksFile import TasksFile | 86 from eric7.Tasks.TasksFile import TasksFile |
87 from eric7.Testing.TestingWidget import clearSavedHistories | |
88 from eric7.Utilities.BackgroundService import BackgroundService | |
89 from eric7.VirtualEnv.VirtualenvManager import VirtualenvManager | |
74 | 90 |
75 from . import Config | 91 from . import Config |
76 from .Info import BugAddress, FeatureAddress, Program, Version, VersionOnly | 92 from .Info import BugAddress, FeatureAddress, Program, Version, VersionOnly |
77 from .NotificationWidget import NotificationTypes | 93 from .NotificationWidget import NotificationTypes |
78 | 94 |
279 | 295 |
280 splash.showMessage(self.tr("Initializing Basic Services...")) | 296 splash.showMessage(self.tr("Initializing Basic Services...")) |
281 | 297 |
282 # Generate the conda interface | 298 # Generate the conda interface |
283 logging.debug("Creating Conda Interface...") | 299 logging.debug("Creating Conda Interface...") |
284 from eric7.CondaInterface.Conda import Conda | |
285 | |
286 self.condaInterface = Conda(self) | 300 self.condaInterface = Conda(self) |
287 ericApp().registerObject("Conda", self.condaInterface) | 301 ericApp().registerObject("Conda", self.condaInterface) |
288 | 302 |
289 # Generate the pip interface | 303 # Generate the pip interface |
290 logging.debug("Creating Pip Interface...") | 304 logging.debug("Creating Pip Interface...") |
291 from eric7.PipInterface.Pip import Pip | |
292 | |
293 self.pipInterface = Pip(self) | 305 self.pipInterface = Pip(self) |
294 ericApp().registerObject("Pip", self.pipInterface) | 306 ericApp().registerObject("Pip", self.pipInterface) |
295 | 307 |
296 # Generate the virtual environment manager | 308 # Generate the virtual environment manager |
297 logging.debug("Creating Virtual Environments Manager...") | 309 logging.debug("Creating Virtual Environments Manager...") |
298 from eric7.VirtualEnv.VirtualenvManager import VirtualenvManager | |
299 | |
300 self.virtualenvManager = VirtualenvManager(self) | 310 self.virtualenvManager = VirtualenvManager(self) |
301 # register it early because it is needed very soon | 311 # register it early because it is needed very soon |
302 ericApp().registerObject("VirtualEnvManager", self.virtualenvManager) | 312 ericApp().registerObject("VirtualEnvManager", self.virtualenvManager) |
303 | 313 |
304 # Generate an empty project object and multi project object | 314 # Generate an empty project object and multi project object |
305 logging.debug("Creating Project Manager...") | 315 logging.debug("Creating Project Manager...") |
306 from eric7.Project.Project import Project | |
307 | |
308 self.project = Project(self) | 316 self.project = Project(self) |
309 ericApp().registerObject("Project", self.project) | 317 ericApp().registerObject("Project", self.project) |
310 | 318 |
311 from eric7.MultiProject.MultiProject import MultiProject | |
312 | |
313 logging.debug("Creating Multi-Project Manager...") | 319 logging.debug("Creating Multi-Project Manager...") |
314 self.multiProject = MultiProject(self.project, self) | 320 self.multiProject = MultiProject(self.project, self) |
315 | 321 |
316 # Generate the debug server object | 322 # Generate the debug server object |
317 logging.debug("Creating Debug Server...") | 323 logging.debug("Creating Debug Server...") |
318 from eric7.Debugger.DebugServer import DebugServer | |
319 | |
320 self.__debugServer = DebugServer( | 324 self.__debugServer = DebugServer( |
321 self.__originalPathString, project=self.project, parent=self | 325 self.__originalPathString, project=self.project, parent=self |
322 ) | 326 ) |
323 | 327 |
324 # Create the background service object | 328 # Create the background service object |
325 from eric7.Utilities.BackgroundService import BackgroundService | |
326 | |
327 self.backgroundService = BackgroundService(self) | 329 self.backgroundService = BackgroundService(self) |
328 | 330 |
329 splash.showMessage(self.tr("Initializing Plugin Manager...")) | 331 splash.showMessage(self.tr("Initializing Plugin Manager...")) |
330 | 332 |
331 # Initialize the Plugin Manager (Plugins are initialized later | 333 # Initialize the Plugin Manager (Plugins are initialized later |
332 from eric7.PluginManager.PluginManager import PluginManager | |
333 | |
334 self.pluginManager = PluginManager( | 334 self.pluginManager = PluginManager( |
335 self, self.__disabledPlugins, develPlugin=plugin | 335 self, self.__disabledPlugins, develPlugin=plugin |
336 ) | 336 ) |
337 | 337 |
338 splash.showMessage(self.tr("Generating Main User Interface...")) | 338 splash.showMessage(self.tr("Generating Main User Interface...")) |
340 self.__webBrowserProcess = None | 340 self.__webBrowserProcess = None |
341 self.__webBrowserClient = None | 341 self.__webBrowserClient = None |
342 self.__webBrowserSAName = QUuid.createUuid().toString()[1:-1] | 342 self.__webBrowserSAName = QUuid.createUuid().toString()[1:-1] |
343 | 343 |
344 # set spellchecker defaults | 344 # set spellchecker defaults |
345 from eric7.QScintilla.SpellChecker import SpellChecker | |
346 | |
347 SpellChecker.setDefaultLanguage( | 345 SpellChecker.setDefaultLanguage( |
348 Preferences.getEditor("SpellCheckingDefaultLanguage") | 346 Preferences.getEditor("SpellCheckingDefaultLanguage") |
349 ) | 347 ) |
350 | 348 |
351 with contextlib.suppress(ImportError, AttributeError): | 349 with contextlib.suppress(ImportError, AttributeError): |
352 from eric7.EricWidgets.EricSpellCheckedTextEdit import SpellCheckMixin | 350 from eric7.EricWidgets.EricSpellCheckedTextEdit import ( # __IGNORE_WARNING__ |
351 SpellCheckMixin, | |
352 ) | |
353 | 353 |
354 pwl = SpellChecker.getUserDictionaryPath(isException=False) | 354 pwl = SpellChecker.getUserDictionaryPath(isException=False) |
355 pel = SpellChecker.getUserDictionaryPath(isException=True) | 355 pel = SpellChecker.getUserDictionaryPath(isException=True) |
356 SpellCheckMixin.setDefaultLanguage( | 356 SpellCheckMixin.setDefaultLanguage( |
357 Preferences.getEditor("SpellCheckingDefaultLanguage"), pwl, pel | 357 Preferences.getEditor("SpellCheckingDefaultLanguage"), pwl, pel |
366 self.__currentRightWidget = None | 366 self.__currentRightWidget = None |
367 self.__currentBottomWidget = None | 367 self.__currentBottomWidget = None |
368 | 368 |
369 # Generate the debugger part of the ui | 369 # Generate the debugger part of the ui |
370 logging.debug("Creating Debugger UI...") | 370 logging.debug("Creating Debugger UI...") |
371 from eric7.Debugger.DebugUI import DebugUI | |
372 | |
373 self.debuggerUI = DebugUI( | 371 self.debuggerUI = DebugUI( |
374 self, self.viewmanager, self.__debugServer, self.debugViewer, self.project | 372 self, self.viewmanager, self.__debugServer, self.debugViewer, self.project |
375 ) | 373 ) |
376 self.debugViewer.setDebugger(self.debuggerUI) | 374 self.debugViewer.setDebugger(self.debuggerUI) |
377 self.shell.setDebuggerUI(self.debuggerUI) | 375 self.shell.setDebuggerUI(self.debuggerUI) |
744 self.pluginManager.activatePlugins() | 742 self.pluginManager.activatePlugins() |
745 splash.showMessage(self.tr("Generating Plugins Toolbars...")) | 743 splash.showMessage(self.tr("Generating Plugins Toolbars...")) |
746 self.pluginManager.initPluginToolbars(self.toolbarManager) | 744 self.pluginManager.initPluginToolbars(self.toolbarManager) |
747 if Preferences.getPluginManager("StartupCleanup"): | 745 if Preferences.getPluginManager("StartupCleanup"): |
748 splash.showMessage(self.tr("Cleaning Plugins Download Area...")) | 746 splash.showMessage(self.tr("Cleaning Plugins Download Area...")) |
749 from eric7.PluginManager.PluginRepositoryDialog import ( | |
750 PluginRepositoryDownloadCleanup, | |
751 ) | |
752 | |
753 PluginRepositoryDownloadCleanup(quiet=True) | 747 PluginRepositoryDownloadCleanup(quiet=True) |
754 | 748 |
755 # now read the keyboard shortcuts for all the actions | 749 # now read the keyboard shortcuts for all the actions |
756 from eric7.Preferences import Shortcuts | |
757 | |
758 Shortcuts.readShortcuts() | 750 Shortcuts.readShortcuts() |
759 | 751 |
760 # restore toolbar manager state | 752 # restore toolbar manager state |
761 splash.showMessage(self.tr("Restoring Toolbarmanager...")) | 753 splash.showMessage(self.tr("Restoring Toolbarmanager...")) |
762 self.toolbarManager.restoreState(Preferences.getUI("ToolbarManagerState")) | 754 self.toolbarManager.restoreState(Preferences.getUI("ToolbarManagerState")) |
833 | 825 |
834 def __createObjects(self): | 826 def __createObjects(self): |
835 """ | 827 """ |
836 Private method to create the various application objects. | 828 Private method to create the various application objects. |
837 """ | 829 """ |
830 from eric7 import ViewManager | |
831 from eric7.Debugger.DebugViewer import DebugViewer | |
832 from eric7.JediInterface.AssistantJedi import AssistantJedi | |
833 from eric7.MultiProject.MultiProjectBrowser import MultiProjectBrowser | |
834 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryWidget | |
835 from eric7.Project.ProjectBrowser import ProjectBrowser | |
836 from eric7.QScintilla.Shell import ShellAssembly | |
837 from eric7.Tasks.TaskViewer import TaskViewer | |
838 from eric7.VCS.StatusWidget import StatusWidget | |
839 from eric7.VirtualEnv.VirtualenvManagerWidgets import VirtualenvManagerWidget | |
840 | |
841 from .LogView import LogViewer | |
842 from .Previewer import Previewer | |
843 from .PythonAstViewer import PythonAstViewer | |
844 from .PythonDisViewer import PythonDisViewer | |
845 | |
838 # Create the view manager depending on the configuration setting | 846 # Create the view manager depending on the configuration setting |
839 logging.debug("Creating Viewmanager...") | 847 logging.debug("Creating Viewmanager...") |
840 from eric7 import ViewManager | |
841 | |
842 self.viewmanager = ViewManager.factory( | 848 self.viewmanager = ViewManager.factory( |
843 self, self, self.__debugServer, self.pluginManager | 849 self, self, self.__debugServer, self.pluginManager |
844 ) | 850 ) |
845 | 851 |
846 # Create previewer | 852 # Create previewer |
847 logging.debug("Creating Previewer...") | 853 logging.debug("Creating Previewer...") |
848 from .Previewer import Previewer | |
849 | |
850 self.__previewer = Previewer(self.viewmanager) | 854 self.__previewer = Previewer(self.viewmanager) |
851 | 855 |
852 # Create AST viewer | 856 # Create AST viewer |
853 logging.debug("Creating Python AST Viewer") | 857 logging.debug("Creating Python AST Viewer") |
854 from .PythonAstViewer import PythonAstViewer | |
855 | |
856 self.__astViewer = PythonAstViewer(self.viewmanager) | 858 self.__astViewer = PythonAstViewer(self.viewmanager) |
857 | 859 |
858 # Create DIS viewer | 860 # Create DIS viewer |
859 logging.debug("Creating Python Disassembly Viewer") | 861 logging.debug("Creating Python Disassembly Viewer") |
860 from .PythonDisViewer import PythonDisViewer | |
861 | |
862 self.__disViewer = PythonDisViewer(self.viewmanager) | 862 self.__disViewer = PythonDisViewer(self.viewmanager) |
863 | 863 |
864 # Create the project browser | 864 # Create the project browser |
865 logging.debug("Creating Project Browser...") | 865 logging.debug("Creating Project Browser...") |
866 from eric7.Project.ProjectBrowser import ProjectBrowser | |
867 | |
868 self.projectBrowser = ProjectBrowser(self.project) | 866 self.projectBrowser = ProjectBrowser(self.project) |
869 | 867 |
870 # Create the multi project browser | 868 # Create the multi project browser |
871 logging.debug("Creating Multiproject Browser...") | 869 logging.debug("Creating Multiproject Browser...") |
872 from eric7.MultiProject.MultiProjectBrowser import MultiProjectBrowser | |
873 | |
874 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject, self.project) | 870 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject, self.project) |
875 | 871 |
876 # Create the task viewer part of the user interface | 872 # Create the task viewer part of the user interface |
877 logging.debug("Creating Task Viewer...") | 873 logging.debug("Creating Task Viewer...") |
878 from eric7.Tasks.TaskViewer import TaskViewer | |
879 | |
880 self.taskViewer = TaskViewer(None, self.project) | 874 self.taskViewer = TaskViewer(None, self.project) |
881 | 875 |
882 # Create the log viewer part of the user interface | 876 # Create the log viewer part of the user interface |
883 logging.debug("Creating Log Viewer...") | 877 logging.debug("Creating Log Viewer...") |
884 from .LogView import LogViewer | |
885 | |
886 self.logViewer = LogViewer(self) | 878 self.logViewer = LogViewer(self) |
887 | 879 |
888 # Create the debug viewer | 880 # Create the debug viewer |
889 logging.debug("Creating Debug Viewer...") | 881 logging.debug("Creating Debug Viewer...") |
890 from eric7.Debugger.DebugViewer import DebugViewer | |
891 | |
892 self.debugViewer = DebugViewer(self.__debugServer) | 882 self.debugViewer = DebugViewer(self.__debugServer) |
893 | 883 |
894 # Create the shell | 884 # Create the shell |
895 logging.debug("Creating Shell...") | 885 logging.debug("Creating Shell...") |
896 from eric7.QScintilla.Shell import ShellAssembly | |
897 | |
898 self.shellAssembly = ShellAssembly( | 886 self.shellAssembly = ShellAssembly( |
899 self.__debugServer, self.viewmanager, self.project, True | 887 self.__debugServer, self.viewmanager, self.project, True |
900 ) | 888 ) |
901 self.shell = self.shellAssembly.shell() | 889 self.shell = self.shellAssembly.shell() |
902 | 890 |
903 if Preferences.getUI("ShowTemplateViewer"): | 891 if Preferences.getUI("ShowTemplateViewer"): |
904 # Create the template viewer part of the user interface | 892 # Create the template viewer part of the user interface |
905 logging.debug("Creating Template Viewer...") | 893 logging.debug("Creating Template Viewer...") |
906 from eric7.Templates.TemplateViewer import TemplateViewer | 894 from eric7.Templates.TemplateViewer import ( # __IGNORE_WARNING_I101__ |
895 TemplateViewer, | |
896 ) | |
907 | 897 |
908 self.templateViewer = TemplateViewer(None, self.viewmanager) | 898 self.templateViewer = TemplateViewer(None, self.viewmanager) |
909 else: | 899 else: |
910 logging.debug("Template Viewer disabled") | 900 logging.debug("Template Viewer disabled") |
911 self.templateViewer = None | 901 self.templateViewer = None |
912 | 902 |
913 if Preferences.getUI("ShowFileBrowser"): | 903 if Preferences.getUI("ShowFileBrowser"): |
914 # Create the file browser | 904 # Create the file browser |
915 logging.debug("Creating File Browser...") | 905 logging.debug("Creating File Browser...") |
916 from .Browser import Browser | 906 from .Browser import Browser # __IGNORE_WARNING_I101__ |
917 | 907 |
918 self.browser = Browser() | 908 self.browser = Browser() |
919 else: | 909 else: |
920 logging.debug("File Browser disabled") | 910 logging.debug("File Browser disabled") |
921 self.browser = None | 911 self.browser = None |
922 | 912 |
923 if Preferences.getUI("ShowSymbolsViewer"): | 913 if Preferences.getUI("ShowSymbolsViewer"): |
924 # Create the symbols viewer | 914 # Create the symbols viewer |
925 logging.debug("Creating Symbols Viewer...") | 915 logging.debug("Creating Symbols Viewer...") |
926 from .SymbolsWidget import SymbolsWidget | 916 from .SymbolsWidget import SymbolsWidget # __IGNORE_WARNING_I101__ |
927 | 917 |
928 self.symbolsViewer = SymbolsWidget() | 918 self.symbolsViewer = SymbolsWidget() |
929 else: | 919 else: |
930 logging.debug("Symbols Viewer disabled") | 920 logging.debug("Symbols Viewer disabled") |
931 self.symbolsViewer = None | 921 self.symbolsViewer = None |
932 | 922 |
933 if Preferences.getUI("ShowCodeDocumentationViewer"): | 923 if Preferences.getUI("ShowCodeDocumentationViewer"): |
934 # Create the code documentation viewer | 924 # Create the code documentation viewer |
935 logging.debug("Creating Code Documentation Viewer...") | 925 logging.debug("Creating Code Documentation Viewer...") |
936 from .CodeDocumentationViewer import CodeDocumentationViewer | 926 from .CodeDocumentationViewer import ( # __IGNORE_WARNING_I101__ |
927 CodeDocumentationViewer, | |
928 ) | |
937 | 929 |
938 self.codeDocumentationViewer = CodeDocumentationViewer(self) | 930 self.codeDocumentationViewer = CodeDocumentationViewer(self) |
939 else: | 931 else: |
940 logging.debug("Code Documentation Viewer disabled") | 932 logging.debug("Code Documentation Viewer disabled") |
941 self.codeDocumentationViewer = None | 933 self.codeDocumentationViewer = None |
942 | 934 |
943 if Preferences.getUI("ShowPyPIPackageManager"): | 935 if Preferences.getUI("ShowPyPIPackageManager"): |
944 # Create the PyPI package manager | 936 # Create the PyPI package manager |
945 logging.debug("Creating PyPI Package Manager...") | 937 logging.debug("Creating PyPI Package Manager...") |
946 from eric7.PipInterface.PipPackagesWidget import PipPackagesWidget | 938 from eric7.PipInterface.PipPackagesWidget import ( # __IGNORE_WARNING__ |
939 PipPackagesWidget, | |
940 ) | |
947 | 941 |
948 self.pipWidget = PipPackagesWidget(self.pipInterface) | 942 self.pipWidget = PipPackagesWidget(self.pipInterface) |
949 else: | 943 else: |
950 logging.debug("PyPI Package Manager disabled") | 944 logging.debug("PyPI Package Manager disabled") |
951 self.pipWidget = None | 945 self.pipWidget = None |
952 | 946 |
953 if Preferences.getUI("ShowCondaPackageManager"): | 947 if Preferences.getUI("ShowCondaPackageManager"): |
954 # Create the conda package manager | 948 # Create the conda package manager |
955 logging.debug("Creating Conda Package Manager...") | 949 logging.debug("Creating Conda Package Manager...") |
956 from eric7.CondaInterface.CondaPackagesWidget import CondaPackagesWidget | 950 from eric7.CondaInterface.CondaPackagesWidget import ( # __IGNORE_WARNING__ |
951 CondaPackagesWidget, | |
952 ) | |
957 | 953 |
958 self.condaWidget = CondaPackagesWidget(self.condaInterface) | 954 self.condaWidget = CondaPackagesWidget(self.condaInterface) |
959 else: | 955 else: |
960 logging.debug("Conda Package Manager disabled") | 956 logging.debug("Conda Package Manager disabled") |
961 self.condaWidget = None | 957 self.condaWidget = None |
962 | 958 |
963 if Preferences.getUI("ShowCooperation"): | 959 if Preferences.getUI("ShowCooperation"): |
964 # Create the chat part of the user interface | 960 # Create the chat part of the user interface |
965 logging.debug("Creating Chat Widget...") | 961 logging.debug("Creating Chat Widget...") |
966 from eric7.Cooperation.ChatWidget import ChatWidget | 962 from eric7.Cooperation.ChatWidget import ( # __IGNORE_WARNING_I101__ |
963 ChatWidget, | |
964 ) | |
967 | 965 |
968 self.cooperation = ChatWidget(self) | 966 self.cooperation = ChatWidget(self) |
969 else: | 967 else: |
970 logging.debug("Chat Widget disabled") | 968 logging.debug("Chat Widget disabled") |
971 self.cooperation = None | 969 self.cooperation = None |
972 | 970 |
973 if Preferences.getUI("ShowIrc"): | 971 if Preferences.getUI("ShowIrc"): |
974 # Create the IRC part of the user interface | 972 # Create the IRC part of the user interface |
975 logging.debug("Creating IRC Widget...") | 973 logging.debug("Creating IRC Widget...") |
976 from eric7.Network.IRC.IrcWidget import IrcWidget | 974 from eric7.Network.IRC.IrcWidget import IrcWidget # __IGNORE_WARNING_I101__ |
977 | 975 |
978 self.irc = IrcWidget(self) | 976 self.irc = IrcWidget(self) |
979 else: | 977 else: |
980 logging.debug("IRC Widget disabled") | 978 logging.debug("IRC Widget disabled") |
981 self.irc = None | 979 self.irc = None |
982 | 980 |
983 if Preferences.getUI("ShowMicroPython"): | 981 if Preferences.getUI("ShowMicroPython"): |
984 # Create the MicroPython part of the user interface | 982 # Create the MicroPython part of the user interface |
985 logging.debug("Creating MicroPython Widget...") | 983 logging.debug("Creating MicroPython Widget...") |
986 from eric7.MicroPython.MicroPythonWidget import MicroPythonWidget | 984 from eric7.MicroPython.MicroPythonWidget import ( # __IGNORE_WARNING_I101__ |
985 MicroPythonWidget, | |
986 ) | |
987 | 987 |
988 self.microPythonWidget = MicroPythonWidget(self) | 988 self.microPythonWidget = MicroPythonWidget(self) |
989 else: | 989 else: |
990 logging.debug("MicroPython Widget disabled") | 990 logging.debug("MicroPython Widget disabled") |
991 self.microPythonWidget = None | 991 self.microPythonWidget = None |
992 | 992 |
993 if Preferences.getUI("ShowNumbersViewer"): | 993 if Preferences.getUI("ShowNumbersViewer"): |
994 # Create the numbers viewer | 994 # Create the numbers viewer |
995 logging.debug("Creating Numbers Viewer...") | 995 logging.debug("Creating Numbers Viewer...") |
996 from .NumbersWidget import NumbersWidget | 996 from .NumbersWidget import NumbersWidget # __IGNORE_WARNING_I101__ |
997 | 997 |
998 self.numbersViewer = NumbersWidget() | 998 self.numbersViewer = NumbersWidget() |
999 else: | 999 else: |
1000 logging.debug("Numbers Viewer disabled") | 1000 logging.debug("Numbers Viewer disabled") |
1001 self.numbersViewer = None | 1001 self.numbersViewer = None |
1002 | 1002 |
1003 # Create the Jedi Assistant | 1003 # Create the Jedi Assistant |
1004 logging.debug("Creating Jedi Assistant...") | 1004 logging.debug("Creating Jedi Assistant...") |
1005 from eric7.JediInterface.AssistantJedi import AssistantJedi | |
1006 | |
1007 self.jediAssistant = AssistantJedi(self, self.viewmanager, self.project) | 1005 self.jediAssistant = AssistantJedi(self, self.viewmanager, self.project) |
1008 | 1006 |
1009 # Create the plug-ins repository viewer | 1007 # Create the plug-ins repository viewer |
1010 from eric7.PluginManager.PluginRepositoryDialog import PluginRepositoryWidget | |
1011 | |
1012 self.pluginRepositoryViewer = PluginRepositoryWidget( | 1008 self.pluginRepositoryViewer = PluginRepositoryWidget( |
1013 self.pluginManager, integrated=True, parent=self | 1009 self.pluginManager, integrated=True, parent=self |
1014 ) | 1010 ) |
1015 self.pluginRepositoryViewer.closeAndInstall.connect( | 1011 self.pluginRepositoryViewer.closeAndInstall.connect( |
1016 self.__installDownloadedPlugins | 1012 self.__installDownloadedPlugins |
1017 ) | 1013 ) |
1018 | 1014 |
1019 # Create the virtual environments management widget | 1015 # Create the virtual environments management widget |
1020 from eric7.VirtualEnv.VirtualenvManagerWidgets import VirtualenvManagerWidget | |
1021 | |
1022 self.__virtualenvManagerWidget = VirtualenvManagerWidget( | 1016 self.__virtualenvManagerWidget = VirtualenvManagerWidget( |
1023 self.virtualenvManager, self | 1017 self.virtualenvManager, self |
1024 ) | 1018 ) |
1025 | 1019 |
1026 self.__findFileDialog = None | 1020 self.__findFileDialog = None |
1027 self.__replaceFileDialog = None | 1021 self.__replaceFileDialog = None |
1028 if Preferences.getUI("ShowFindFileWidget"): | 1022 if Preferences.getUI("ShowFindFileWidget"): |
1029 # Create the find in files widget | 1023 # Create the find in files widget |
1030 from .FindFileWidget import FindFileWidget | 1024 from .FindFileWidget import FindFileWidget # __IGNORE_WARNING_I101__ |
1031 | 1025 |
1032 self.__findFileWidget = FindFileWidget(self.project, self) | 1026 self.__findFileWidget = FindFileWidget(self.project, self) |
1033 self.__findFileWidget.sourceFile.connect(self.viewmanager.openSourceFile) | 1027 self.__findFileWidget.sourceFile.connect(self.viewmanager.openSourceFile) |
1034 self.__findFileWidget.designerFile.connect(self.__designer) | 1028 self.__findFileWidget.designerFile.connect(self.__designer) |
1035 self.__findFileWidget.linguistFile.connect(self.__linguist) | 1029 self.__findFileWidget.linguistFile.connect(self.__linguist) |
1041 self.__findFileWidget = None | 1035 self.__findFileWidget = None |
1042 | 1036 |
1043 self.__findLocationDialog = None | 1037 self.__findLocationDialog = None |
1044 if Preferences.getUI("ShowFindLocationWidget"): | 1038 if Preferences.getUI("ShowFindLocationWidget"): |
1045 # Create the find location (file) widget | 1039 # Create the find location (file) widget |
1046 from .FindLocationWidget import FindLocationWidget | 1040 from .FindLocationWidget import ( # __IGNORE_WARNING_I101__ |
1041 FindLocationWidget, | |
1042 ) | |
1047 | 1043 |
1048 self.__findLocationWidget = FindLocationWidget(self.project, self) | 1044 self.__findLocationWidget = FindLocationWidget(self.project, self) |
1049 self.__findLocationWidget.sourceFile.connect( | 1045 self.__findLocationWidget.sourceFile.connect( |
1050 self.viewmanager.openSourceFile | 1046 self.viewmanager.openSourceFile |
1051 ) | 1047 ) |
1057 self.__findLocationWidget.umlFile.connect(self.__showUml) | 1053 self.__findLocationWidget.umlFile.connect(self.__showUml) |
1058 else: | 1054 else: |
1059 self.__findLocationWidget = None | 1055 self.__findLocationWidget = None |
1060 | 1056 |
1061 # Create the VCS Status widget | 1057 # Create the VCS Status widget |
1062 from eric7.VCS.StatusWidget import StatusWidget | |
1063 | |
1064 self.__vcsStatusWidget = StatusWidget(self.project, self.viewmanager, self) | 1058 self.__vcsStatusWidget = StatusWidget(self.project, self.viewmanager, self) |
1065 | 1059 |
1066 if ( | 1060 if ( |
1067 Preferences.getUI("ShowInternalHelpViewer") | 1061 Preferences.getUI("ShowInternalHelpViewer") |
1068 or Preferences.getHelp("HelpViewerType") == 0 | 1062 or Preferences.getHelp("HelpViewerType") == 0 |
1069 ): | 1063 ): |
1070 # Create the embedded help viewer | 1064 # Create the embedded help viewer |
1071 logging.debug("Creating Internal Help Viewer...") | 1065 logging.debug("Creating Internal Help Viewer...") |
1072 from eric7.HelpViewer.HelpViewerWidget import HelpViewerWidget | 1066 from eric7.HelpViewer.HelpViewerWidget import ( # __IGNORE_WARNING_I101__ |
1067 HelpViewerWidget, | |
1068 ) | |
1073 | 1069 |
1074 self.__helpViewerWidget = HelpViewerWidget(self) | 1070 self.__helpViewerWidget = HelpViewerWidget(self) |
1075 else: | 1071 else: |
1076 logging.debug("Internal Help Viewer disabled...") | 1072 logging.debug("Internal Help Viewer disabled...") |
1077 self.__helpViewerWidget = None | 1073 self.__helpViewerWidget = None |
4357 | 4353 |
4358 def __initStatusbar(self): | 4354 def __initStatusbar(self): |
4359 """ | 4355 """ |
4360 Private slot to set up the status bar. | 4356 Private slot to set up the status bar. |
4361 """ | 4357 """ |
4358 from eric7.VCS.StatusMonitorLed import StatusMonitorLedWidget | |
4359 | |
4362 self.__statusBar = self.statusBar() | 4360 self.__statusBar = self.statusBar() |
4363 self.__statusBar.setSizeGripEnabled(True) | 4361 self.__statusBar.setSizeGripEnabled(True) |
4364 | 4362 |
4365 self.sbLanguage = EricClickableLabel(self.__statusBar) | 4363 self.sbLanguage = EricClickableLabel(self.__statusBar) |
4366 self.__statusBar.addPermanentWidget(self.sbLanguage) | 4364 self.__statusBar.addPermanentWidget(self.sbLanguage) |
4437 self.sbEncoding, | 4435 self.sbEncoding, |
4438 self.sbLanguage, | 4436 self.sbLanguage, |
4439 self.sbEol, | 4437 self.sbEol, |
4440 self.sbZoom, | 4438 self.sbZoom, |
4441 ) | 4439 ) |
4442 | |
4443 from eric7.VCS.StatusMonitorLed import StatusMonitorLedWidget | |
4444 | 4440 |
4445 self.sbVcsMonitorLed = StatusMonitorLedWidget(self.project, self.__statusBar) | 4441 self.sbVcsMonitorLed = StatusMonitorLedWidget(self.project, self.__statusBar) |
4446 self.__statusBar.addPermanentWidget(self.sbVcsMonitorLed) | 4442 self.__statusBar.addPermanentWidget(self.sbVcsMonitorLed) |
4447 | 4443 |
4448 self.networkIcon = EricNetworkIcon(self.__statusBar) | 4444 self.networkIcon = EricNetworkIcon(self.__statusBar) |
4597 Private slot to handle the Versions dialog. | 4593 Private slot to handle the Versions dialog. |
4598 """ | 4594 """ |
4599 from .VersionsDialog import VersionsDialog | 4595 from .VersionsDialog import VersionsDialog |
4600 | 4596 |
4601 try: | 4597 try: |
4602 try: | |
4603 from PyQt6 import sip | |
4604 except ImportError: | |
4605 import sip | |
4606 sip_version_str = sip.SIP_VERSION_STR | 4598 sip_version_str = sip.SIP_VERSION_STR |
4607 except (ImportError, AttributeError): | 4599 except AttributeError: |
4608 sip_version_str = "sip version not available" | 4600 sip_version_str = "sip version not available" |
4609 | 4601 |
4610 sizeStr = "64-Bit" if sys.maxsize > 2**32 else "32-Bit" | 4602 sizeStr = "64-Bit" if sys.maxsize > 2**32 else "32-Bit" |
4611 | 4603 |
4612 versionText = self.tr("""<h2>Version Numbers</h2>""" """<table>""") | 4604 versionText = self.tr("""<h2>Version Numbers</h2>""" """<table>""") |
4624 # PyQt versions | 4616 # PyQt versions |
4625 versionText += ("""<tr><td><b>PyQt6</b></td><td>{0}</td></tr>""").format( | 4617 versionText += ("""<tr><td><b>PyQt6</b></td><td>{0}</td></tr>""").format( |
4626 PYQT_VERSION_STR | 4618 PYQT_VERSION_STR |
4627 ) | 4619 ) |
4628 with contextlib.suppress(ImportError, AttributeError): | 4620 with contextlib.suppress(ImportError, AttributeError): |
4629 from PyQt6 import QtCharts | 4621 from PyQt6 import QtCharts # __IGNORE_WARNING_I10__ |
4630 | 4622 |
4631 versionText += ( | 4623 versionText += ( |
4632 """<tr><td><b>PyQt6-Charts</b></td><td>{0}</td></tr>""" | 4624 """<tr><td><b>PyQt6-Charts</b></td><td>{0}</td></tr>""" |
4633 ).format(QtCharts.PYQT_CHART_VERSION_STR) | 4625 ).format(QtCharts.PYQT_CHART_VERSION_STR) |
4634 with contextlib.suppress(ImportError, AttributeError): | 4626 with contextlib.suppress(ImportError, AttributeError): |
4635 from PyQt6 import QtWebEngineCore | 4627 from PyQt6 import QtWebEngineCore # __IGNORE_WARNING_I10__ |
4636 | 4628 |
4637 versionText += ( | 4629 versionText += ( |
4638 """<tr><td><b>PyQt6-WebEngine</b></td><td>{0}</td></tr>""" | 4630 """<tr><td><b>PyQt6-WebEngine</b></td><td>{0}</td></tr>""" |
4639 ).format(QtWebEngineCore.PYQT_WEBENGINE_VERSION_STR) | 4631 ).format(QtWebEngineCore.PYQT_WEBENGINE_VERSION_STR) |
4640 versionText += ( | 4632 versionText += ( |
4644 sip_version_str | 4636 sip_version_str |
4645 ) | 4637 ) |
4646 | 4638 |
4647 # webengine (chromium) version | 4639 # webengine (chromium) version |
4648 with contextlib.suppress(ImportError): | 4640 with contextlib.suppress(ImportError): |
4649 from eric7.WebBrowser.Tools import WebBrowserTools | 4641 from eric7.WebBrowser.Tools import ( # __IGNORE_WARNING_I101__ |
4642 WebBrowserTools, | |
4643 ) | |
4650 | 4644 |
4651 ( | 4645 ( |
4652 chromiumVersion, | 4646 chromiumVersion, |
4653 chromiumSecurityVersion, | 4647 chromiumSecurityVersion, |
4654 ) = WebBrowserTools.getWebEngineVersions()[0:2] | 4648 ) = WebBrowserTools.getWebEngineVersions()[0:2] |
4722 ), | 4716 ), |
4723 ) | 4717 ) |
4724 self.showPreferences("emailPage") | 4718 self.showPreferences("emailPage") |
4725 return | 4719 return |
4726 | 4720 |
4727 from .EmailDialog import EmailDialog | 4721 from .EmailDialog import EmailDialog # __IGNORE_WARNING_I101__ |
4728 | 4722 |
4729 self.dlg = EmailDialog(mode=mode) | 4723 self.dlg = EmailDialog(mode=mode) |
4730 if attachFile is not None: | 4724 if attachFile is not None: |
4731 self.dlg.attachFile(attachFile, deleteAttachFile) | 4725 self.dlg.attachFile(attachFile, deleteAttachFile) |
4732 self.dlg.show() | 4726 self.dlg.show() |
4765 def checkForErrorLog(self): | 4759 def checkForErrorLog(self): |
4766 """ | 4760 """ |
4767 Public method to check for the presence of an error log and ask the | 4761 Public method to check for the presence of an error log and ask the |
4768 user, what to do with it. | 4762 user, what to do with it. |
4769 """ | 4763 """ |
4764 from .ErrorLogDialog import ErrorLogDialog | |
4765 | |
4770 if Preferences.getUI("CheckErrorLog"): | 4766 if Preferences.getUI("CheckErrorLog"): |
4771 logFile = os.path.join(Utilities.getConfigDir(), self.ErrorLogFileName) | 4767 logFile = os.path.join(Utilities.getConfigDir(), self.ErrorLogFileName) |
4772 if os.path.exists(logFile): | 4768 if os.path.exists(logFile): |
4773 from .ErrorLogDialog import ErrorLogDialog | |
4774 | |
4775 dlg = ErrorLogDialog(logFile, False, self) | 4769 dlg = ErrorLogDialog(logFile, False, self) |
4776 dlg.exec() | 4770 dlg.exec() |
4777 | 4771 |
4778 def __hasErrorLog(self): | 4772 def __hasErrorLog(self): |
4779 """ | 4773 """ |
4786 | 4780 |
4787 def __showErrorLog(self): | 4781 def __showErrorLog(self): |
4788 """ | 4782 """ |
4789 Private slot to show the most recent error log message. | 4783 Private slot to show the most recent error log message. |
4790 """ | 4784 """ |
4785 from .ErrorLogDialog import ErrorLogDialog | |
4786 | |
4791 logFile = os.path.join(Utilities.getConfigDir(), self.ErrorLogFileName) | 4787 logFile = os.path.join(Utilities.getConfigDir(), self.ErrorLogFileName) |
4792 if os.path.exists(logFile): | 4788 if os.path.exists(logFile): |
4793 from .ErrorLogDialog import ErrorLogDialog | |
4794 | |
4795 dlg = ErrorLogDialog(logFile, True, self) | 4789 dlg = ErrorLogDialog(logFile, True, self) |
4796 dlg.show() | 4790 dlg.show() |
4797 | 4791 |
4798 def __showInstallInfo(self): | 4792 def __showInstallInfo(self): |
4799 """ | 4793 """ |
4808 | 4802 |
4809 def __compareFiles(self): | 4803 def __compareFiles(self): |
4810 """ | 4804 """ |
4811 Private slot to handle the Compare Files dialog. | 4805 Private slot to handle the Compare Files dialog. |
4812 """ | 4806 """ |
4807 from .DiffDialog import DiffDialog | |
4808 | |
4813 aw = self.viewmanager.activeWindow() | 4809 aw = self.viewmanager.activeWindow() |
4814 fn = aw and aw.getFileName() or None | 4810 fn = aw and aw.getFileName() or None |
4815 if self.diffDlg is None: | 4811 if self.diffDlg is None: |
4816 from .DiffDialog import DiffDialog | |
4817 | |
4818 self.diffDlg = DiffDialog() | 4812 self.diffDlg = DiffDialog() |
4819 self.diffDlg.show(fn) | 4813 self.diffDlg.show(fn) |
4820 | 4814 |
4821 def __compareFilesSbs(self): | 4815 def __compareFilesSbs(self): |
4822 """ | 4816 """ |
4823 Private slot to handle the Compare Files dialog. | 4817 Private slot to handle the Compare Files dialog. |
4824 """ | 4818 """ |
4819 from .CompareDialog import CompareDialog | |
4820 | |
4825 aw = self.viewmanager.activeWindow() | 4821 aw = self.viewmanager.activeWindow() |
4826 fn = aw and aw.getFileName() or None | 4822 fn = aw and aw.getFileName() or None |
4827 if self.compareDlg is None: | 4823 if self.compareDlg is None: |
4828 from .CompareDialog import CompareDialog | |
4829 | |
4830 self.compareDlg = CompareDialog() | 4824 self.compareDlg = CompareDialog() |
4831 self.compareDlg.show(fn) | 4825 self.compareDlg.show(fn) |
4832 | 4826 |
4833 def __openMiniEditor(self): | 4827 def __openMiniEditor(self): |
4834 """ | 4828 """ |
5959 | 5953 |
5960 def __createTestingDialog(self): | 5954 def __createTestingDialog(self): |
5961 """ | 5955 """ |
5962 Private slot to generate the testing dialog on demand. | 5956 Private slot to generate the testing dialog on demand. |
5963 """ | 5957 """ |
5958 from eric7.Testing.TestingWidget import TestingWidget | |
5959 | |
5964 if self.__testingWidget is None: | 5960 if self.__testingWidget is None: |
5965 from eric7.Testing.TestingWidget import TestingWidget | |
5966 | |
5967 self.__testingWidget = TestingWidget() | 5961 self.__testingWidget = TestingWidget() |
5968 self.__testingWidget.testFile.connect(self.viewmanager.setFileLine) | 5962 self.__testingWidget.testFile.connect(self.viewmanager.setFileLine) |
5969 self.__testingWidget.testRunStopped.connect(self.__testingStopped) | 5963 self.__testingWidget.testRunStopped.connect(self.__testingStopped) |
5970 | 5964 |
5971 def __testingStopped(self): | 5965 def __testingStopped(self): |
7156 """ | 7150 """ |
7157 Public slot to set the preferences. | 7151 Public slot to set the preferences. |
7158 | 7152 |
7159 @param pageName name of the configuration page to show (string) | 7153 @param pageName name of the configuration page to show (string) |
7160 """ | 7154 """ |
7155 from eric7.Preferences.ConfigurationDialog import ConfigurationDialog | |
7156 | |
7161 if self.__configurationDialog is None: | 7157 if self.__configurationDialog is None: |
7162 # only one invocation at a time is allowed | 7158 # only one invocation at a time is allowed |
7163 from eric7.Preferences.ConfigurationDialog import ConfigurationDialog | |
7164 | |
7165 self.__configurationDialog = ConfigurationDialog( | 7159 self.__configurationDialog = ConfigurationDialog( |
7166 self, | 7160 self, |
7167 "Configuration", | 7161 "Configuration", |
7168 expandedEntries=self.__expandedConfigurationEntries, | 7162 expandedEntries=self.__expandedConfigurationEntries, |
7169 ) | 7163 ) |
7235 @pyqtSlot() | 7229 @pyqtSlot() |
7236 def __preferencesChanged(self): | 7230 def __preferencesChanged(self): |
7237 """ | 7231 """ |
7238 Private slot to handle a change of the preferences. | 7232 Private slot to handle a change of the preferences. |
7239 """ | 7233 """ |
7234 from eric7.HexEdit.HexEditMainWindow import HexEditMainWindow | |
7235 | |
7240 self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) | 7236 self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) |
7241 | 7237 |
7242 if Preferences.getUI("SingleApplicationMode"): | 7238 if Preferences.getUI("SingleApplicationMode"): |
7243 if self.SAServer is None: | 7239 if self.SAServer is None: |
7244 self.SAServer = EricSingleApplicationServer() | 7240 self.SAServer = EricSingleApplicationServer() |
7271 else: | 7267 else: |
7272 self.__setWindowCaption(editor="") | 7268 self.__setWindowCaption(editor="") |
7273 | 7269 |
7274 self.performVersionCheck() | 7270 self.performVersionCheck() |
7275 | 7271 |
7276 from eric7.QScintilla.SpellChecker import SpellChecker | |
7277 | |
7278 SpellChecker.setDefaultLanguage( | 7272 SpellChecker.setDefaultLanguage( |
7279 Preferences.getEditor("SpellCheckingDefaultLanguage") | 7273 Preferences.getEditor("SpellCheckingDefaultLanguage") |
7280 ) | 7274 ) |
7281 | 7275 |
7282 with contextlib.suppress(ImportError, AttributeError): | 7276 with contextlib.suppress(ImportError, AttributeError): |
7283 from eric7.EricWidgets.EricSpellCheckedTextEdit import SpellCheckMixin | 7277 from eric7.EricWidgets.EricSpellCheckedTextEdit import ( # __IGNORE_WARNING__ |
7278 SpellCheckMixin, | |
7279 ) | |
7284 | 7280 |
7285 pwl = SpellChecker.getUserDictionaryPath(isException=False) | 7281 pwl = SpellChecker.getUserDictionaryPath(isException=False) |
7286 pel = SpellChecker.getUserDictionaryPath(isException=True) | 7282 pel = SpellChecker.getUserDictionaryPath(isException=True) |
7287 SpellCheckMixin.setDefaultLanguage( | 7283 SpellCheckMixin.setDefaultLanguage( |
7288 Preferences.getEditor("SpellCheckingDefaultLanguage"), pwl, pel | 7284 Preferences.getEditor("SpellCheckingDefaultLanguage"), pwl, pel |
7293 else: | 7289 else: |
7294 self.__proxyFactory = EricNetworkProxyFactory() | 7290 self.__proxyFactory = EricNetworkProxyFactory() |
7295 QNetworkProxyFactory.setApplicationProxyFactory(self.__proxyFactory) | 7291 QNetworkProxyFactory.setApplicationProxyFactory(self.__proxyFactory) |
7296 QNetworkProxyFactory.setUseSystemConfiguration(False) | 7292 QNetworkProxyFactory.setUseSystemConfiguration(False) |
7297 | 7293 |
7298 from eric7.HexEdit.HexEditMainWindow import HexEditMainWindow | |
7299 | |
7300 for hexEditor in HexEditMainWindow.windows: | 7294 for hexEditor in HexEditMainWindow.windows: |
7301 hexEditor.preferencesChanged() | 7295 hexEditor.preferencesChanged() |
7302 | 7296 |
7303 # set the keyboard input interval | 7297 # set the keyboard input interval |
7304 interval = Preferences.getUI("KeyboardInputInterval") | 7298 interval = Preferences.getUI("KeyboardInputInterval") |
7326 | 7320 |
7327 self.masterPasswordChanged.emit(oldPassword, newPassword) | 7321 self.masterPasswordChanged.emit(oldPassword, newPassword) |
7328 Preferences.convertPasswords(oldPassword, newPassword) | 7322 Preferences.convertPasswords(oldPassword, newPassword) |
7329 variant = Globals.getWebBrowserSupport() | 7323 variant = Globals.getWebBrowserSupport() |
7330 if variant == "QtWebEngine": | 7324 if variant == "QtWebEngine": |
7331 from eric7.WebBrowser.Passwords.PasswordManager import PasswordManager | 7325 from eric7.WebBrowser.Passwords.PasswordManager import ( # __IGNORE_WARNING__ |
7326 PasswordManager, | |
7327 ) | |
7332 | 7328 |
7333 pwManager = PasswordManager() | 7329 pwManager = PasswordManager() |
7334 pwManager.masterPasswordChanged(oldPassword, newPassword) | 7330 pwManager.masterPasswordChanged(oldPassword, newPassword) |
7335 Utilities.crypto.changeRememberedMaster(newPassword) | 7331 Utilities.crypto.changeRememberedMaster(newPassword) |
7336 | 7332 |
7343 def __showExternalTools(self): | 7339 def __showExternalTools(self): |
7344 """ | 7340 """ |
7345 Private slot to display a dialog show a list of external tools used | 7341 Private slot to display a dialog show a list of external tools used |
7346 by eric. | 7342 by eric. |
7347 """ | 7343 """ |
7344 from eric7.Preferences.ProgramsDialog import ProgramsDialog | |
7345 | |
7348 if self.programsDialog is None: | 7346 if self.programsDialog is None: |
7349 from eric7.Preferences.ProgramsDialog import ProgramsDialog | |
7350 | |
7351 self.programsDialog = ProgramsDialog(self) | 7347 self.programsDialog = ProgramsDialog(self) |
7352 self.programsDialog.show() | 7348 self.programsDialog.show() |
7353 | 7349 |
7354 def __configViewProfiles(self): | 7350 def __configViewProfiles(self): |
7355 """ | 7351 """ |
7382 | 7378 |
7383 def __configShortcuts(self): | 7379 def __configShortcuts(self): |
7384 """ | 7380 """ |
7385 Private slot to configure the keyboard shortcuts. | 7381 Private slot to configure the keyboard shortcuts. |
7386 """ | 7382 """ |
7383 from eric7.Preferences.ShortcutsDialog import ShortcutsDialog | |
7384 | |
7387 if self.shortcutsDialog is None: | 7385 if self.shortcutsDialog is None: |
7388 from eric7.Preferences.ShortcutsDialog import ShortcutsDialog | |
7389 | |
7390 self.shortcutsDialog = ShortcutsDialog(self) | 7386 self.shortcutsDialog = ShortcutsDialog(self) |
7391 self.shortcutsDialog.populate() | 7387 self.shortcutsDialog.populate() |
7392 self.shortcutsDialog.show() | 7388 self.shortcutsDialog.show() |
7393 | 7389 |
7394 def __exportShortcuts(self): | 7390 def __exportShortcuts(self): |
7425 if fpath.exists() | 7421 if fpath.exists() |
7426 else True | 7422 else True |
7427 ) | 7423 ) |
7428 | 7424 |
7429 if ok: | 7425 if ok: |
7430 from eric7.Preferences import Shortcuts | |
7431 | |
7432 Shortcuts.exportShortcuts(str(fpath)) | 7426 Shortcuts.exportShortcuts(str(fpath)) |
7433 | 7427 |
7434 def __importShortcuts(self): | 7428 def __importShortcuts(self): |
7435 """ | 7429 """ |
7436 Private slot to import the keyboard shortcuts. | 7430 Private slot to import the keyboard shortcuts. |
7443 "Keyboard Shortcuts File (*.ekj);;" "XML Keyboard shortcut file (*.e4k)" | 7437 "Keyboard Shortcuts File (*.ekj);;" "XML Keyboard shortcut file (*.e4k)" |
7444 ), | 7438 ), |
7445 ) | 7439 ) |
7446 | 7440 |
7447 if fn: | 7441 if fn: |
7448 from eric7.Preferences import Shortcuts | |
7449 | |
7450 Shortcuts.importShortcuts(fn) | 7442 Shortcuts.importShortcuts(fn) |
7451 | 7443 |
7452 def __showCertificatesDialog(self): | 7444 def __showCertificatesDialog(self): |
7453 """ | 7445 """ |
7454 Private slot to show the certificates management dialog. | 7446 Private slot to show the certificates management dialog. |
7496 # clear the shell histories | 7488 # clear the shell histories |
7497 self.shell.clearAllHistories() | 7489 self.shell.clearAllHistories() |
7498 if testing: | 7490 if testing: |
7499 # clear the unit test histories | 7491 # clear the unit test histories |
7500 if self.__testingWidget is None: | 7492 if self.__testingWidget is None: |
7501 from eric7.Testing.TestingWidget import clearSavedHistories | |
7502 | |
7503 clearSavedHistories() | 7493 clearSavedHistories() |
7504 else: | 7494 else: |
7505 self.__testingWidget.clearRecent() | 7495 self.__testingWidget.clearRecent() |
7506 if vcs: | 7496 if vcs: |
7507 # clear the VCS related histories | 7497 # clear the VCS related histories |
7572 | 7562 |
7573 @param fn filename of the opened editor (string) | 7563 @param fn filename of the opened editor (string) |
7574 """ | 7564 """ |
7575 self.wizardsMenuAct.setEnabled(len(self.__menus["wizards"].actions()) > 0) | 7565 self.wizardsMenuAct.setEnabled(len(self.__menus["wizards"].actions()) > 0) |
7576 | 7566 |
7577 if fn and str(fn) != "None": | 7567 if ( |
7578 from eric7 import Testing | 7568 fn |
7579 | 7569 and str(fn) != "None" |
7580 if Testing.isLanguageSupported( | 7570 and Testing.isLanguageSupported( |
7581 self.viewmanager.getOpenEditor(fn).getFileType() | 7571 self.viewmanager.getOpenEditor(fn).getFileType() |
7582 ): | 7572 ) |
7583 self.testScriptAct.setEnabled(True) | 7573 ): |
7584 self.__testingEditorOpen = True | 7574 self.testScriptAct.setEnabled(True) |
7575 self.__testingEditorOpen = True | |
7585 | 7576 |
7586 def __checkActions(self, editor): | 7577 def __checkActions(self, editor): |
7587 """ | 7578 """ |
7588 Private slot to check some actions for their enable/disable status. | 7579 Private slot to check some actions for their enable/disable status. |
7589 | 7580 |
7590 @param editor editor window | 7581 @param editor editor window |
7591 """ | 7582 """ |
7592 fn = editor.getFileName() if editor else None | 7583 fn = editor.getFileName() if editor else None |
7593 | 7584 |
7594 if fn: | 7585 if fn and Testing.isLanguageSupported(editor.getFileType()): |
7595 from eric7 import Testing | 7586 self.testScriptAct.setEnabled(True) |
7596 | 7587 self.__testingEditorOpen = True |
7597 if Testing.isLanguageSupported(editor.getFileType()): | 7588 return |
7598 self.testScriptAct.setEnabled(True) | |
7599 self.__testingEditorOpen = True | |
7600 return | |
7601 | 7589 |
7602 self.testScriptAct.setEnabled(False) | 7590 self.testScriptAct.setEnabled(False) |
7603 | 7591 |
7604 def __writeTasks(self): | 7592 def __writeTasks(self): |
7605 """ | 7593 """ |
7620 # try old style XML file second | 7608 # try old style XML file second |
7621 fn = os.path.join(Utilities.getConfigDir(), "eric7tasks.e6t") | 7609 fn = os.path.join(Utilities.getConfigDir(), "eric7tasks.e6t") |
7622 if os.path.exists(fn): | 7610 if os.path.exists(fn): |
7623 f = QFile(fn) | 7611 f = QFile(fn) |
7624 if f.open(QIODevice.OpenModeFlag.ReadOnly): | 7612 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
7625 from eric7.EricXML.TasksReader import TasksReader | |
7626 | |
7627 reader = TasksReader(f, viewer=self.taskViewer) | 7613 reader = TasksReader(f, viewer=self.taskViewer) |
7628 reader.readXML() | 7614 reader.readXML() |
7629 f.close() | 7615 f.close() |
7630 else: | 7616 else: |
7631 EricMessageBox.critical( | 7617 EricMessageBox.critical( |
7690 self.__readingSession = False | 7676 self.__readingSession = False |
7691 else: | 7677 else: |
7692 # old XML based format | 7678 # old XML based format |
7693 f = QFile(fn) | 7679 f = QFile(fn) |
7694 if f.open(QIODevice.OpenModeFlag.ReadOnly): | 7680 if f.open(QIODevice.OpenModeFlag.ReadOnly): |
7695 from eric7.EricXML.SessionReader import SessionReader | |
7696 | |
7697 self.__readingSession = True | 7681 self.__readingSession = True |
7698 reader = SessionReader(f, True) | 7682 reader = SessionReader(f, True) |
7699 reader.readXML() | 7683 reader.readXML() |
7700 self.__readingSession = False | 7684 self.__readingSession = False |
7701 f.close() | 7685 f.close() |
7804 | 7788 |
7805 def showFindFileByNameDialog(self): | 7789 def showFindFileByNameDialog(self): |
7806 """ | 7790 """ |
7807 Public slot to show the Find File by Name dialog. | 7791 Public slot to show the Find File by Name dialog. |
7808 """ | 7792 """ |
7793 from .FindFileNameDialog import FindFileNameDialog | |
7794 | |
7809 if self.findFileNameDialog is None: | 7795 if self.findFileNameDialog is None: |
7810 from .FindFileNameDialog import FindFileNameDialog | |
7811 | |
7812 self.findFileNameDialog = FindFileNameDialog(self.project) | 7796 self.findFileNameDialog = FindFileNameDialog(self.project) |
7813 self.findFileNameDialog.sourceFile.connect(self.viewmanager.openSourceFile) | 7797 self.findFileNameDialog.sourceFile.connect(self.viewmanager.openSourceFile) |
7814 self.findFileNameDialog.designerFile.connect(self.__designer) | 7798 self.findFileNameDialog.designerFile.connect(self.__designer) |
7815 self.findFileNameDialog.show() | 7799 self.findFileNameDialog.show() |
7816 self.findFileNameDialog.raise_() | 7800 self.findFileNameDialog.raise_() |
7826 @type str (optional) | 7810 @type str (optional) |
7827 @param openFiles flag indicating to operate on open files only | 7811 @param openFiles flag indicating to operate on open files only |
7828 (defaults to False) | 7812 (defaults to False) |
7829 @type bool (optional) | 7813 @type bool (optional) |
7830 """ | 7814 """ |
7815 from .FindFileWidget import FindFileDialog | |
7816 | |
7831 if Preferences.getUI("ShowFindFileWidget"): | 7817 if Preferences.getUI("ShowFindFileWidget"): |
7832 # embedded tool | 7818 # embedded tool |
7833 self.__activateFindFileWidget() | 7819 self.__activateFindFileWidget() |
7834 self.__findFileWidget.activate( | 7820 self.__findFileWidget.activate( |
7835 replaceMode=False, txt=txt, searchDir=searchDir, openFiles=openFiles | 7821 replaceMode=False, txt=txt, searchDir=searchDir, openFiles=openFiles |
7836 ) | 7822 ) |
7837 else: | 7823 else: |
7838 # external dialog | 7824 # external dialog |
7839 if self.__findFileDialog is None: | 7825 if self.__findFileDialog is None: |
7840 from .FindFileWidget import FindFileDialog | |
7841 | |
7842 self.__findFileDialog = FindFileDialog(self.project, self) | 7826 self.__findFileDialog = FindFileDialog(self.project, self) |
7843 self.__findFileDialog.sourceFile.connect( | 7827 self.__findFileDialog.sourceFile.connect( |
7844 self.viewmanager.openSourceFile | 7828 self.viewmanager.openSourceFile |
7845 ) | 7829 ) |
7846 self.__findFileDialog.designerFile.connect(self.__designer) | 7830 self.__findFileDialog.designerFile.connect(self.__designer) |
7863 @type str (optional) | 7847 @type str (optional) |
7864 @param openFiles flag indicating to operate on open files only | 7848 @param openFiles flag indicating to operate on open files only |
7865 (defaults to False) | 7849 (defaults to False) |
7866 @type bool (optional) | 7850 @type bool (optional) |
7867 """ | 7851 """ |
7852 from .FindFileWidget import FindFileDialog | |
7853 | |
7868 if Preferences.getUI("ShowFindFileWidget"): | 7854 if Preferences.getUI("ShowFindFileWidget"): |
7869 # embedded tool | 7855 # embedded tool |
7870 self.__activateFindFileWidget() | 7856 self.__activateFindFileWidget() |
7871 self.__findFileWidget.activate( | 7857 self.__findFileWidget.activate( |
7872 replaceMode=True, txt=txt, searchDir=searchDir, openFiles=openFiles | 7858 replaceMode=True, txt=txt, searchDir=searchDir, openFiles=openFiles |
7873 ) | 7859 ) |
7874 else: | 7860 else: |
7875 # external dialog | 7861 # external dialog |
7876 if self.__replaceFileDialog is None: | 7862 if self.__replaceFileDialog is None: |
7877 from .FindFileWidget import FindFileDialog | |
7878 | |
7879 self.__replaceFileDialog = FindFileDialog(self.project, self) | 7863 self.__replaceFileDialog = FindFileDialog(self.project, self) |
7880 self.__replaceFileDialog.sourceFile.connect( | 7864 self.__replaceFileDialog.sourceFile.connect( |
7881 self.viewmanager.openSourceFile | 7865 self.viewmanager.openSourceFile |
7882 ) | 7866 ) |
7883 self.__replaceFileDialog.designerFile.connect(self.__designer) | 7867 self.__replaceFileDialog.designerFile.connect(self.__designer) |
7906 | 7890 |
7907 def showFindLocationWidget(self): | 7891 def showFindLocationWidget(self): |
7908 """ | 7892 """ |
7909 Public method to show the Find File widget. | 7893 Public method to show the Find File widget. |
7910 """ | 7894 """ |
7895 from .FindLocationWidget import FindLocationDialog | |
7896 | |
7911 if Preferences.getUI("ShowFindLocationWidget"): | 7897 if Preferences.getUI("ShowFindLocationWidget"): |
7912 # embedded tool | 7898 # embedded tool |
7913 self.__activateFindLocationWidget() | 7899 self.__activateFindLocationWidget() |
7914 else: | 7900 else: |
7915 # external dialog | 7901 # external dialog |
7916 if self.__findLocationDialog is None: | 7902 if self.__findLocationDialog is None: |
7917 from .FindLocationWidget import FindLocationDialog | |
7918 | |
7919 self.__findLocationDialog = FindLocationDialog(self.project, self) | 7903 self.__findLocationDialog = FindLocationDialog(self.project, self) |
7920 self.__findLocationDialog.sourceFile.connect( | 7904 self.__findLocationDialog.sourceFile.connect( |
7921 self.viewmanager.openSourceFile | 7905 self.viewmanager.openSourceFile |
7922 ) | 7906 ) |
7923 self.__findLocationDialog.designerFile.connect(self.__designer) | 7907 self.__findLocationDialog.designerFile.connect(self.__designer) |
8526 @type NotificationTypes | 8510 @type NotificationTypes |
8527 @param timeout time in seconds the notification should be shown | 8511 @param timeout time in seconds the notification should be shown |
8528 (None = use configured timeout, 0 = indefinitely) | 8512 (None = use configured timeout, 0 = indefinitely) |
8529 @type int | 8513 @type int |
8530 """ | 8514 """ |
8515 from .NotificationWidget import NotificationWidget | |
8516 | |
8531 if self.__notification is None: | 8517 if self.__notification is None: |
8532 from .NotificationWidget import NotificationWidget | |
8533 | |
8534 self.__notification = NotificationWidget(parent=self) | 8518 self.__notification = NotificationWidget(parent=self) |
8535 if timeout is None: | 8519 if timeout is None: |
8536 timeout = Preferences.getUI("NotificationTimeout") | 8520 timeout = Preferences.getUI("NotificationTimeout") |
8537 self.__notification.showNotification( | 8521 self.__notification.showNotification( |
8538 icon, heading, text, kind=kind, timeout=timeout | 8522 icon, heading, text, kind=kind, timeout=timeout |