PluginPrintRemover.py

Tue, 10 Dec 2024 15:49:04 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:49:04 +0100
branch
eric7
changeset 70
40e98b382639
parent 69
ed8361e82ca1
permissions
-rw-r--r--

Updated copyright for 2025.

0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
70
40e98b382639 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 69
diff changeset
3 # Copyright (c) 2013 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Print Remover plug-in.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
54
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
10 import contextlib
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
65
4f299e33476a Resorted imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
13 from PyQt6.QtCore import QCoreApplication, QObject, QTranslator, pyqtSlot
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
14 from PyQt6.QtGui import QAction
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
15 from PyQt6.QtWidgets import QMenu
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
63
273252fd0d99 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
17 from eric7 import Preferences
273252fd0d99 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
18 from eric7.EricWidgets.EricApplication import ericApp
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 # Start-Of-Header
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 name = "Print Remover Plug-in"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 autoactivate = True
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 deactivateable = True
63
273252fd0d99 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
25 version = "10.1.0"
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 className = "PrintRemoverPlugin"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 packageName = "PrintRemover"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 shortDescription = "Remove print() like debug statements."
51
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
29 longDescription = (
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
30 """This plug-in implements a tool to remove lines starting with"""
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
31 """ a configurable string. This is mostly used to remove print()"""
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
32 """ like debug statements. The match is done after stripping all"""
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
33 """ whitespace from the beginning of a line. Lines containing the"""
4
7577ef96b755 Corrected a typo.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
34 """ string '__NO_REMOVE__' are preserved."""
51
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
35 )
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 needsRestart = False
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 pyqtApi = 2
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 # End-Of-Header
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 error = ""
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 printRemoverPluginObject = None
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
43
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
69
ed8361e82ca1 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
45 def createPrintRemoverPage(configDlg): # noqa: U100
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 Module function to create the Print Remover configuration page.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
48
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @param configDlg reference to the configuration dialog
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
50 @type ConfigurationWidget
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @return reference to the configuration page
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
52 @rtype PrintRemoverPage
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
69
ed8361e82ca1 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
54 from PrintRemover.ConfigurationPage.PrintRemoverPage import PrintRemoverPage
ed8361e82ca1 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
55
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 global printRemoverPluginObject
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
57
51
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
58 return PrintRemoverPage(printRemoverPluginObject)
a18bc7af1151 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
59
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 def getConfigData():
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 Module function returning data as required by the configuration dialog.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
64
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @return dictionary containing the relevant data
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
66 @rtype dict
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
68 usesDarkPalette = ericApp().usesDarkPalette()
54
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
69 iconSuffix = "dark" if usesDarkPalette else "light"
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
70
44
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
71 return {
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
72 "printRemoverPage": [
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
73 QCoreApplication.translate("PrintRemoverPlugin", "Print Remover"),
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
74 os.path.join(
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
75 "PrintRemover", "icons", "printRemover-{0}".format(iconSuffix)
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
76 ),
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
77 createPrintRemoverPage,
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
78 None,
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
79 None,
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
80 ],
44
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
81 }
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def prepareUninstall():
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Module function to prepare for an uninstallation.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Preferences.Prefs.settings.remove(PrintRemoverPlugin.PreferencesKey)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 class PrintRemoverPlugin(QObject):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 Class implementing the Print Remover plugin.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
95
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 PreferencesKey = "PrintRemover"
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
97
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 def __init__(self, ui):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 Constructor
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
101
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
102 @param ui reference to the user interface object
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
103 @type UserInterface
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
54
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
105 super().__init__(ui)
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.__ui = ui
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
107
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.__defaults = {
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
109 "StartswithStrings": ["print(", "print ", "console.log"],
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 }
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
111
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.__translator = None
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.__loadTranslator()
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
114
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
115 self.__initMenu()
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
116
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
117 self.__editors = {}
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
118 self.__mainActions = []
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
119
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 def activate(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 Public method to activate this plugin.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
123
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
124 @return tuple of None and activation statu
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
125 @rtype tuple of (None, bool)
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 global error
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
128 error = "" # clear previous error
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
129
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 global printRemoverPluginObject
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 printRemoverPluginObject = self
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
132
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.__ui.showMenu.connect(self.__populateMenu)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
134
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
135 menu = self.__ui.getMenu("plugin_tools")
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
136 if menu is not None:
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
137 if not menu.isEmpty():
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
138 act = menu.addSeparator()
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
139 self.__mainActions.append(act)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
140 act = menu.addMenu(self.__menu)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
141 self.__mainActions.append(act)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
142
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
143 ericApp().getObject("ViewManager").editorOpenedEd.connect(self.__editorOpened)
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
144 ericApp().getObject("ViewManager").editorClosedEd.connect(self.__editorClosed)
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
145
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
146 for editor in ericApp().getObject("ViewManager").getOpenEditors():
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
147 self.__editorOpened(editor)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
148
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return None, True
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
150
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 def deactivate(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 Public method to deactivate this plugin.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 self.__ui.showMenu.disconnect(self.__populateMenu)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
156
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
157 menu = self.__ui.getMenu("plugin_tools")
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
158 if menu is not None:
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
159 for act in self.__mainActions:
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
160 menu.removeAction(act)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
161 self.__mainActions = []
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
162
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
163 ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
164 self.__editorOpened
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
165 )
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
166 ericApp().getObject("ViewManager").editorClosedEd.disconnect(
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
167 self.__editorClosed
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
168 )
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
169
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
170 for editor, acts in self.__editors.items():
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
171 editor.showMenu.disconnect(self.__editorShowMenu)
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
172 menu = editor.getMenu("Tools")
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
173 if menu is not None:
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
174 for act in acts:
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
175 menu.removeAction(act)
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
176 self.__editors = {}
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
177
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 def __loadTranslator(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 Private method to load the translation file.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 if self.__ui is not None:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 loc = self.__ui.getLocale()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 if loc and loc != "C":
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 locale_dir = os.path.join(
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
186 os.path.dirname(__file__), "PrintRemover", "i18n"
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
187 )
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 translation = "printremover_{0}".format(loc)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 translator = QTranslator(None)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 loaded = translator.load(translation, locale_dir)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 if loaded:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 self.__translator = translator
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
193 ericApp().installTranslator(self.__translator)
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 else:
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
195 print(
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
196 "Warning: translation file '{0}' could not be"
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
197 " loaded.".format(translation)
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
198 )
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 print("Using default.")
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
200
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 def getPreferences(self, key):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 Public method to retrieve the various settings.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
204
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
205 @param key the key of the value to get
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
206 @type str
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
207 @return value of the requested setting
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
208 @rtype Any
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 if key in ["StartswithStrings"]:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 return Preferences.toList(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 Preferences.Prefs.settings.value(
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
213 self.PreferencesKey + "/" + key, self.__defaults[key]
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
214 )
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
215 )
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 else:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 return Preferences.Prefs.settings.value(
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
218 self.PreferencesKey + "/" + key, self.__defaults[key]
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
219 )
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
220
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 def setPreferences(self, key, value):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 Public method to store the various settings.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
224
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
225 @param key key of the setting to be set
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
226 @type str
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
227 @param value value to be set
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
228 @type Any
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 """
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
230 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
231
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
232 def __initMenu(self):
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
233 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
234 Private method to initialize the menu.
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
235 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
236 self.__menu = QMenu("Remove Outputs")
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
237 self.__menu.setEnabled(False)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
238 self.__menu.aboutToShow.connect(self.__showMenu)
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
239 self.__menu.triggered.connect(self.__removeLine)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
240
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 def __populateMenu(self, name, menu):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 Private slot to populate the tools menu with our entries.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
244
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
245 @param name name of the menu
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
246 @type str
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
247 @param menu reference to the menu to be populated
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
248 @type QMenu
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 """
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
250 if name not in ["Tools", "PluginTools"]:
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 return
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
252
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
253 editor = ericApp().getObject("ViewManager").activeWindow()
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
254
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
255 if name == "Tools":
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
256 if not menu.isEmpty():
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
257 menu.addSeparator()
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
258
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
259 act = menu.addMenu(self.__menu)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
260 act.setEnabled(editor is not None)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
261 elif name == "PluginTools" and self.__mainActions:
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
262 self.__mainActions[-1].setEnabled(editor is not None)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
263
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
264 def __editorOpened(self, editor):
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
265 """
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
266 Private slot called, when a new editor was opened.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
267
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
268 @param editor reference to the new editor
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
269 @type Editor
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
270 """
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
271 menu = editor.getMenu("Tools")
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
272 if menu is not None:
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
273 self.__editors[editor] = []
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
274 if not menu.isEmpty():
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
275 act = menu.addSeparator()
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
276 self.__editors[editor].append(act)
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
277 act = menu.addMenu(self.__menu)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
278 self.__menu.setEnabled(True)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
279 self.__editors[editor].append(act)
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
280 editor.showMenu.connect(self.__editorShowMenu)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
281
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
282 def __editorClosed(self, editor):
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
283 """
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
284 Private slot called, when an editor was closed.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
285
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
286 @param editor reference to the editor
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
287 @type Editor
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
288 """
54
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
289 with contextlib.suppress(KeyError):
9
a9366d1cbef5 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
290 del self.__editors[editor]
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
291 if not self.__editors:
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
292 self.__menu.setEnabled(False)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
293
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
294 def __editorShowMenu(self, menuName, menu, editor):
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
295 """
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
296 Private slot called, when the the editor context menu or a submenu is
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
297 about to be shown.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
298
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
299 @param menuName name of the menu to be shown
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
300 @type str
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
301 @param menu reference to the menu
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
302 @type QMenu
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
303 @param editor reference to the editor
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
304 @type Editor
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
305 """
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
306 if menuName == "Tools" and self.__menu.menuAction() not in menu.actions():
54
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
307 # Re-add our menu
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
308 self.__editors[editor] = []
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
309 if not menu.isEmpty():
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
310 act = menu.addSeparator()
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
311 self.__editors[editor].append(act)
54
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
312 act = menu.addMenu(self.__menu)
d061dda35cef Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
313 self.__editors[editor].append(act)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
314
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
315 def __showMenu(self):
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
316 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
317 Private slot to build the menu hierarchy.
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
318 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
319 self.__menu.clear()
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
320 for startString in self.getPreferences("StartswithStrings"):
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
321 if startString == "--Separator--":
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
322 self.__menu.addSeparator()
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
323 else:
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
324 act = self.__menu.addAction(self.tr("Remove '{0}'").format(startString))
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
325 act.setData(startString)
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
326
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
327 @pyqtSlot(QAction)
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
328 def __removeLine(self, act):
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 Private slot to remove lines starting with the selected pattern.
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
331
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
332 @param act reference to the action that was triggered
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
333 @type QAction
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 """
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
335 if act is None:
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 return
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
337
57
8e12947695cb Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 54
diff changeset
338 editor = ericApp().getObject("ViewManager").activeWindow()
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 if editor is None:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 return
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
341
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 pattern = act.data()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 if not pattern:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 return
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
345
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 text = editor.text()
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
347 newText = "".join(
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
348 [
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
349 line
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
350 for line in text.splitlines(True)
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
351 if not line.lstrip().startswith(pattern) or "__NO_REMOVE__" in line
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
352 ]
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
353 )
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 if newText != text:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 editor.beginUndoAction()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 editor.selectAll()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 editor.replaceSelectedText(newText)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 editor.endUndoAction()
42
f97a2aaeb66d Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
359
62
81f446717433 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
360
42
f97a2aaeb66d Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
361 #
69
ed8361e82ca1 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
362 # eflag: noqa = M801, U200

eric ide

mercurial