94 self.__editorAct.triggered[()].connect(self.__editorSyntaxCheck) |
94 self.__editorAct.triggered[()].connect(self.__editorSyntaxCheck) |
95 |
95 |
96 e5App().getObject("Project").showMenu.connect(self.__projectShowMenu) |
96 e5App().getObject("Project").showMenu.connect(self.__projectShowMenu) |
97 e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\ |
97 e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\ |
98 .showMenu.connect(self.__projectBrowserShowMenu) |
98 .showMenu.connect(self.__projectBrowserShowMenu) |
99 e5App().getObject("ViewManager").editorOpenedEd.connect(self.__editorOpened) |
99 e5App().getObject("ViewManager").editorOpenedEd.connect( |
100 e5App().getObject("ViewManager").editorClosedEd.connect(self.__editorClosed) |
100 self.__editorOpened) |
|
101 e5App().getObject("ViewManager").editorClosedEd.connect( |
|
102 self.__editorClosed) |
101 |
103 |
102 for editor in e5App().getObject("ViewManager").getOpenEditors(): |
104 for editor in e5App().getObject("ViewManager").getOpenEditors(): |
103 self.__editorOpened(editor) |
105 self.__editorOpened(editor) |
104 |
106 |
105 return None, True |
107 return None, True |
109 Public method to deactivate this plugin. |
111 Public method to deactivate this plugin. |
110 """ |
112 """ |
111 e5App().getObject("Project").showMenu.disconnect(self.__projectShowMenu) |
113 e5App().getObject("Project").showMenu.disconnect(self.__projectShowMenu) |
112 e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\ |
114 e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\ |
113 .showMenu.disconnect(self.__projectBrowserShowMenu) |
115 .showMenu.disconnect(self.__projectBrowserShowMenu) |
114 e5App().getObject("ViewManager").editorOpenedEd.disconnect(self.__editorOpened) |
116 e5App().getObject("ViewManager").editorOpenedEd.disconnect( |
115 e5App().getObject("ViewManager").editorClosedEd.disconnect(self.__editorClosed) |
117 self.__editorOpened) |
|
118 e5App().getObject("ViewManager").editorClosedEd.disconnect( |
|
119 self.__editorClosed) |
116 |
120 |
117 menu = e5App().getObject("Project").getMenu("Checks") |
121 menu = e5App().getObject("Project").getMenu("Checks") |
118 if menu: |
122 if menu: |
119 menu.removeAction(self.__projectAct) |
123 menu.removeAction(self.__projectAct) |
120 |
124 |
121 if self.__projectBrowserMenu: |
125 if self.__projectBrowserMenu: |
122 if self.__projectBrowserAct: |
126 if self.__projectBrowserAct: |
123 self.__projectBrowserMenu.removeAction(self.__projectBrowserAct) |
127 self.__projectBrowserMenu.removeAction( |
|
128 self.__projectBrowserAct) |
124 |
129 |
125 for editor in self.__editors: |
130 for editor in self.__editors: |
126 editor.showMenu.disconnect(self.__editorShowMenu) |
131 editor.showMenu.disconnect(self.__editorShowMenu) |
127 menu = editor.getMenu("Checks") |
132 menu = editor.getMenu("Checks") |
128 if menu is not None: |
133 if menu is not None: |
154 if menuName == "Checks" and \ |
159 if menuName == "Checks" and \ |
155 e5App().getObject("Project").getProjectLanguage() in \ |
160 e5App().getObject("Project").getProjectLanguage() in \ |
156 ["Python3", "Python2", "Python"]: |
161 ["Python3", "Python2", "Python"]: |
157 self.__projectBrowserMenu = menu |
162 self.__projectBrowserMenu = menu |
158 if self.__projectBrowserAct is None: |
163 if self.__projectBrowserAct is None: |
159 self.__projectBrowserAct = E5Action(self.trUtf8('Check Syntax'), |
164 self.__projectBrowserAct = E5Action( |
160 self.trUtf8('&Syntax...'), 0, 0, |
165 self.trUtf8('Check Syntax'), |
161 self, "") |
166 self.trUtf8('&Syntax...'), 0, 0, |
|
167 self, "") |
162 self.__projectBrowserAct.setWhatsThis(self.trUtf8( |
168 self.__projectBrowserAct.setWhatsThis(self.trUtf8( |
163 """<b>Check Syntax...</b>""" |
169 """<b>Check Syntax...</b>""" |
164 """<p>This checks Python files for syntax errors.</p>""" |
170 """<p>This checks Python files for syntax errors.</p>""" |
165 )) |
171 )) |
166 self.__projectBrowserAct.triggered[()].connect( |
172 self.__projectBrowserAct.triggered[()].connect( |
175 project = e5App().getObject("Project") |
181 project = e5App().getObject("Project") |
176 project.saveAllScripts() |
182 project.saveAllScripts() |
177 ppath = project.getProjectPath() |
183 ppath = project.getProjectPath() |
178 files = [os.path.join(ppath, file) \ |
184 files = [os.path.join(ppath, file) \ |
179 for file in project.pdata["SOURCES"] \ |
185 for file in project.pdata["SOURCES"] \ |
180 if file.endswith(tuple(Preferences.getPython("Python3Extensions")) + |
186 if file.endswith( |
181 tuple(Preferences.getPython("PythonExtensions")))] |
187 tuple(Preferences.getPython("Python3Extensions")) + |
182 |
188 tuple(Preferences.getPython("PythonExtensions")))] |
183 from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import SyntaxCheckerDialog |
189 |
|
190 from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import \ |
|
191 SyntaxCheckerDialog |
184 self.__projectSyntaxCheckerDialog = SyntaxCheckerDialog() |
192 self.__projectSyntaxCheckerDialog = SyntaxCheckerDialog() |
185 self.__projectSyntaxCheckerDialog.show() |
193 self.__projectSyntaxCheckerDialog.show() |
186 self.__projectSyntaxCheckerDialog.prepare(files, project) |
194 self.__projectSyntaxCheckerDialog.prepare(files, project) |
187 |
195 |
188 def __projectBrowserSyntaxCheck(self): |
196 def __projectBrowserSyntaxCheck(self): |
189 """ |
197 """ |
190 Private method to handle the syntax check context menu action of the project |
198 Private method to handle the syntax check context menu action of the |
191 sources browser. |
199 project sources browser. |
192 """ |
200 """ |
193 browser = e5App().getObject("ProjectBrowser").getProjectBrowser("sources") |
201 browser = e5App().getObject("ProjectBrowser").getProjectBrowser( |
|
202 "sources") |
194 itm = browser.model().item(browser.currentIndex()) |
203 itm = browser.model().item(browser.currentIndex()) |
195 try: |
204 try: |
196 fn = itm.fileName() |
205 fn = itm.fileName() |
197 except AttributeError: |
206 except AttributeError: |
198 fn = itm.dirName() |
207 fn = itm.dirName() |
199 |
208 |
200 from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import SyntaxCheckerDialog |
209 from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import \ |
|
210 SyntaxCheckerDialog |
201 self.__projectBrowserSyntaxCheckerDialog = SyntaxCheckerDialog() |
211 self.__projectBrowserSyntaxCheckerDialog = SyntaxCheckerDialog() |
202 self.__projectBrowserSyntaxCheckerDialog.show() |
212 self.__projectBrowserSyntaxCheckerDialog.show() |
203 self.__projectBrowserSyntaxCheckerDialog.start(fn) |
213 self.__projectBrowserSyntaxCheckerDialog.start(fn) |
204 |
214 |
205 def __editorOpened(self, editor): |
215 def __editorOpened(self, editor): |
235 @param editor reference to the editor |
245 @param editor reference to the editor |
236 """ |
246 """ |
237 if menuName == "Checks": |
247 if menuName == "Checks": |
238 if not self.__editorAct in menu.actions(): |
248 if not self.__editorAct in menu.actions(): |
239 menu.addAction(self.__editorAct) |
249 menu.addAction(self.__editorAct) |
240 self.__editorAct.setEnabled(editor.isPy3File() or editor.isPy2File()) |
250 self.__editorAct.setEnabled( |
|
251 editor.isPy3File() or editor.isPy2File()) |
241 |
252 |
242 def __editorSyntaxCheck(self): |
253 def __editorSyntaxCheck(self): |
243 """ |
254 """ |
244 Private slot to handle the syntax check context menu action of the editors. |
255 Private slot to handle the syntax check context menu action of the |
|
256 editors. |
245 """ |
257 """ |
246 editor = e5App().getObject("ViewManager").activeWindow() |
258 editor = e5App().getObject("ViewManager").activeWindow() |
247 if editor is not None: |
259 if editor is not None: |
248 from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import \ |
260 from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import \ |
249 SyntaxCheckerDialog |
261 SyntaxCheckerDialog |