PluginPrintRemover.py

Wed, 08 Apr 2020 19:33:16 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 08 Apr 2020 19:33:16 +0200
changeset 49
d721d13f5e4e
parent 48
10d34908ad1a
child 51
a18bc7af1151
permissions
-rw-r--r--

Replaced pixmap icons by vector icons.

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
48
10d34908ad1a Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
3 # Copyright (c) 2013 - 2020 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
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals # __IGNORE_WARNING__
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
28
46e76a5913cf Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 25
diff changeset
14 from PyQt5.QtCore import QObject, QTranslator, QCoreApplication
46e76a5913cf Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 25
diff changeset
15 from PyQt5.QtWidgets import QAction, QMenu
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from E5Gui.E5Application import e5App
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 import Preferences
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 # Start-Of-Header
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 name = "Print Remover Plug-in"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 autoactivate = True
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 deactivateable = True
49
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
26 version = "2.2.0"
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 className = "PrintRemoverPlugin"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 packageName = "PrintRemover"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 shortDescription = "Remove print() like debug statements."
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 longDescription = \
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """This plug-in implements a tool to remove lines starting with""" \
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """ a configurable string. This is mostly used to remove print()""" \
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """ like debug statements. The match is done after stripping all""" \
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """ 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
35 """ string '__NO_REMOVE__' are preserved."""
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
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
38 python2Compatible = True
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 # End-Of-Header
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 error = ""
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 printRemoverPluginObject = None
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 def createPrintRemoverPage(configDlg):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Module function to create the Print Remover configuration page.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @param configDlg reference to the configuration dialog
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @return reference to the configuration page
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 global printRemoverPluginObject
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 from PrintRemover.ConfigurationPage.PrintRemoverPage import \
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 PrintRemoverPage
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 page = PrintRemoverPage(printRemoverPluginObject)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 return page
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 def getConfigData():
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 Module function returning data as required by the configuration dialog.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @return dictionary containing the relevant data
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
49
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
66 try:
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
67 usesDarkPalette = e5App().usesDarkPalette()
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
68 except AttributeError:
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
69 from PyQt5.QtGui import QPalette
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
70 palette = e5App().palette()
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
71 lightness = palette.color(QPalette.Window).lightness()
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
72 usesDarkPalette = lightness <= 128
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
73 if usesDarkPalette:
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
74 iconSuffix = "dark"
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
75 else:
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
76 iconSuffix = "light"
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
77
44
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
78 return {
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
79 "printRemoverPage": [
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
80 QCoreApplication.translate("PrintRemoverPlugin",
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
81 "Print Remover"),
49
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
82 os.path.join("PrintRemover", "icons",
d721d13f5e4e Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
83 "printRemover-{0}".format(iconSuffix)),
44
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
84 createPrintRemoverPage, None, None],
fd83cf39e27d Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
85 }
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
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 def prepareUninstall():
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 Module function to prepare for an uninstallation.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 Preferences.Prefs.settings.remove(PrintRemoverPlugin.PreferencesKey)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 class PrintRemoverPlugin(QObject):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 Class implementing the Print Remover plugin.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 PreferencesKey = "PrintRemover"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 def __init__(self, ui):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 Constructor
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 @param ui reference to the user interface object (UI.UserInterface)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 QObject.__init__(self, ui)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.__ui = ui
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.__defaults = {
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 "StartswithStrings": [
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 "print(", "print ", "console.log"],
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 }
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.__translator = None
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.__loadTranslator()
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
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
118 self.__initMenu()
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
119
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
120 self.__editors = {}
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
121 self.__mainActions = []
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 def activate(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 Public method to activate this plugin.
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 @return tuple of None and activation status (boolean)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 global error
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 error = "" # clear previous error
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 global printRemoverPluginObject
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 printRemoverPluginObject = self
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 self.__ui.showMenu.connect(self.__populateMenu)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
137 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
138 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
139 if not menu.isEmpty():
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
140 act = menu.addSeparator()
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)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
142 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
143 self.__mainActions.append(act)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
144
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
145 e5App().getObject("ViewManager").editorOpenedEd.connect(
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
146 self.__editorOpened)
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 e5App().getObject("ViewManager").editorClosedEd.connect(
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
148 self.__editorClosed)
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
149
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
150 for editor in e5App().getObject("ViewManager").getOpenEditors():
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
151 self.__editorOpened(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
152
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 return None, True
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 def deactivate(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 Public method to deactivate this plugin.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.__ui.showMenu.disconnect(self.__populateMenu)
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
160
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
161 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
162 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
163 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
164 menu.removeAction(act)
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
165 self.__mainActions = []
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
166
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
167 e5App().getObject("ViewManager").editorOpenedEd.disconnect(
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
168 self.__editorOpened)
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
169 e5App().getObject("ViewManager").editorClosedEd.disconnect(
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 self.__editorClosed)
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
171
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 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
173 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
174 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
175 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
176 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
177 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
178 self.__editors = {}
0
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 def __loadTranslator(self):
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 Private method to load the translation file.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 if self.__ui is not None:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 loc = self.__ui.getLocale()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 if loc and loc != "C":
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 locale_dir = os.path.join(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 os.path.dirname(__file__), "PrintRemover", "i18n")
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 translation = "printremover_{0}".format(loc)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 translator = QTranslator(None)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 loaded = translator.load(translation, locale_dir)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 if loaded:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 self.__translator = translator
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 e5App().installTranslator(self.__translator)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 else:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 print("Warning: translation file '{0}' could not be"
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 " loaded.".format(translation))
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 print("Using default.")
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 def getPreferences(self, key):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 Public method to retrieve the various settings.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 @param key the key of the value to get (string)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 @return the requested setting
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 if key in ["StartswithStrings"]:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 return Preferences.toList(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 Preferences.Prefs.settings.value(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 self.PreferencesKey + "/" + key, self.__defaults[key]))
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 else:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 return Preferences.Prefs.settings.value(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 self.PreferencesKey + "/" + key, self.__defaults[key])
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 def setPreferences(self, key, value):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 Public method to store the various settings.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 @param key the key of the setting to be set (string)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 @param value the value to be set
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 Preferences.Prefs.settings.setValue(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 self.PreferencesKey + "/" + key, value)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
225 def __initMenu(self):
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
226 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
227 Private method to initialize the menu.
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
228 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
229 self.__menu = QMenu("Remove Outputs")
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
230 self.__menu.setEnabled(False)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
231 self.__menu.aboutToShow.connect(self.__showMenu)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
232
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 def __populateMenu(self, name, menu):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 Private slot to populate the tools menu with our entries.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 @param name name of the menu (string)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 @param menu reference to the menu to be populated (QMenu)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 """
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
240 if name not in ["Tools", "PluginTools"]:
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 return
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 editor = e5App().getObject("ViewManager").activeWindow()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244
38
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
245 if name == "Tools":
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
246 if not menu.isEmpty():
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
247 menu.addSeparator()
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
248
7641127c1421 Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 36
diff changeset
249 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
250 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
251 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
252 self.__mainActions[-1].setEnabled(editor is not None)
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253
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
254 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
255 """
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
256 Private slot called, when a new editor was opened.
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
257
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
258 @param editor reference to the new editor (QScintilla.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
259 """
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
260 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
261 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
262 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
263 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
264 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
265 self.__editors[editor].append(act)
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
266 act = menu.addMenu(self.__menu)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
267 self.__menu.setEnabled(True)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
268 self.__editors[editor].append(act)
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
269 editor.showMenu.connect(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
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 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
272 """
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 Private slot called, when an editor was closed.
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
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 @param editor reference to the editor (QScintilla.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
276 """
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
277 try:
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
278 del self.__editors[editor]
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
279 if not self.__editors:
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
280 self.__menu.setEnabled(False)
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
281 except KeyError:
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 pass
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
32
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
284 def __editorShowMenu(self, menuName, menu, editor):
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
285 """
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
286 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
287 about to be shown.
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
288
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
289 @param menuName name of the menu to be shown (string)
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
290 @param menu reference to the menu (QMenu)
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
291 @param editor reference to the editor
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
292 """
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
293 if menuName == "Tools":
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
294 if self.__menu.menuAction() not in menu.actions():
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
295 # Re-add our menu
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
296 self.__editors[editor] = []
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
297 if not menu.isEmpty():
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
298 act = menu.addSeparator()
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
299 self.__editors[editor].append(act)
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
300 act = menu.addMenu(self.__menu)
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
301 self.__editors[editor].append(act)
429a8bee8f1f Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
302
21
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
303 def __showMenu(self):
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
304 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
305 Private slot to build the menu hierarchy.
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
306 """
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
307 self.__menu.clear()
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
308 for string in self.getPreferences("StartswithStrings"):
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
309 if string == '--Separator--':
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
310 self.__menu.addSeparator()
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
311 else:
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
312 act = self.__menu.addAction(
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
313 self.tr("Remove '{0}'").format(string),
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
314 self.__removeLine)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
315 act.setData(string)
9288af505740 Enhanced the configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
316
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 def __removeLine(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 Private slot to remove lines starting with the selected pattern.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 act = self.sender()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 if act is None or not isinstance(act, QAction):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 return
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 editor = e5App().getObject("ViewManager").activeWindow()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 if editor is None:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 return
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 pattern = act.data()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 if not pattern:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 return
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 text = editor.text()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 newText = "".join([
14
039f86a49919 Bugfix for keyword argument.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 11
diff changeset
335 line for line in text.splitlines(True)
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 if not line.lstrip().startswith(pattern) or
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 "__NO_REMOVE__" in line
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 ])
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 if newText != text:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 editor.beginUndoAction()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 editor.selectAll()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 editor.replaceSelectedText(newText)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 editor.endUndoAction()
42
f97a2aaeb66d Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
344
f97a2aaeb66d Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
345 #
f97a2aaeb66d Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
346 # eflag: noqa = M801

eric ide

mercurial