QScintilla/Shell.py

changeset 4479
fd9ceecf5a65
parent 4366
9445c7cb991f
child 4631
5c1a96925da4
equal deleted inserted replaced
4477:014e27865a07 4479:fd9ceecf5a65
201 if self.passive: 201 if self.passive:
202 self.__getBanner() 202 self.__getBanner()
203 203
204 # Create a little language context menu 204 # Create a little language context menu
205 self.lmenu = QMenu(self.tr('Start')) 205 self.lmenu = QMenu(self.tr('Start'))
206 self.clientLanguages = self.dbs.getSupportedLanguages(shellOnly=True) 206 self.lmenu.aboutToShow.connect(self.__showLanguageMenu)
207 self.clientLanguages.sort()
208 for language in self.clientLanguages:
209 act = self.lmenu.addAction(language)
210 act.setData(language)
211 self.lmenu.triggered.connect(self.__startDebugClient) 207 self.lmenu.triggered.connect(self.__startDebugClient)
212 208
213 # Create the history context menu 209 # Create the history context menu
214 self.hmenu = QMenu(self.tr('History')) 210 self.hmenu = QMenu(self.tr('History'))
215 self.hmenu.addAction(self.tr('Select entry'), self.__selectHistory) 211 self.hmenu.addAction(self.tr('Select entry'), self.__selectHistory)
280 QsciScintilla.SCI_LINEENDEXTEND: self.extendSelectionToEOL, 276 QsciScintilla.SCI_LINEENDEXTEND: self.extendSelectionToEOL,
281 } 277 }
282 278
283 self.grabGesture(Qt.PinchGesture) 279 self.grabGesture(Qt.PinchGesture)
284 280
281 def __showLanguageMenu(self):
282 """
283 Private slot to prepare the language submenu.
284 """
285 self.lmenu.clear()
286 clientLanguages = self.dbs.getSupportedLanguages(shellOnly=True)
287 for language in sorted(clientLanguages):
288 act = self.lmenu.addAction(language)
289 act.setData(language)
290
285 def __resizeLinenoMargin(self): 291 def __resizeLinenoMargin(self):
286 """ 292 """
287 Private slot to resize the line numbers margin. 293 Private slot to resize the line numbers margin.
288 """ 294 """
289 linenoMargin = Preferences.getShell("LinenoMargin") 295 linenoMargin = Preferences.getShell("LinenoMargin")
1369 if not self.passive: 1375 if not self.passive:
1370 cmdList = cmd.split(None, 1) 1376 cmdList = cmd.split(None, 1)
1371 if len(cmdList) < 2: 1377 if len(cmdList) < 2:
1372 self.dbs.startClient(False) # same as reset 1378 self.dbs.startClient(False) # same as reset
1373 else: 1379 else:
1380 clientLanguages = self.dbs.getSupportedLanguages(
1381 shellOnly=True)
1374 language = cmdList[1] 1382 language = cmdList[1]
1375 if language not in self.clientLanguages: 1383 if language not in clientLanguages:
1376 language = cmdList[1].capitalize() 1384 language = cmdList[1].capitalize()
1377 if language not in self.clientLanguages: 1385 if language not in clientLanguages:
1378 language = "" 1386 language = ""
1379 if language: 1387 if language:
1380 self.dbs.startClient(False, language) 1388 self.dbs.startClient(False, language)
1381 else: 1389 else:
1382 # language not supported or typo 1390 # language not supported or typo
1386 .format(cmdList[1])) 1394 .format(cmdList[1]))
1387 self.__clientStatement(False) 1395 self.__clientStatement(False)
1388 return 1396 return
1389 cmd = '' 1397 cmd = ''
1390 elif cmd == 'languages': 1398 elif cmd == 'languages':
1391 s = '{0}\n'.format(', '.join(self.clientLanguages)) 1399 s = '{0}\n'.format(', '.join(sorted(
1400 self.dbs.getSupportedLanguages(shellOnly=True))))
1392 self.__write(s) 1401 self.__write(s)
1393 self.__clientStatement(False) 1402 self.__clientStatement(False)
1394 return 1403 return
1395 elif cmd == 'clear': 1404 elif cmd == 'clear':
1396 # Display the banner. 1405 # Display the banner.
1567 else: 1576 else:
1568 self.dbs.clientProcessStdout.disconnect(self.__writeStdOut) 1577 self.dbs.clientProcessStdout.disconnect(self.__writeStdOut)
1569 self.dbs.clientProcessStderr.disconnect(self.__writeStdErr) 1578 self.dbs.clientProcessStderr.disconnect(self.__writeStdErr)
1570 self.__showStdOutErr = showStdOutErr 1579 self.__showStdOutErr = showStdOutErr
1571 1580
1572 # recreate the languages menu
1573 self.lmenu.clear()
1574 self.clientLanguages = self.dbs.getSupportedLanguages(shellOnly=True)
1575 self.clientLanguages.sort()
1576 for language in self.clientLanguages:
1577 act = self.lmenu.addAction(language)
1578 act.setData(language)
1579
1580 def __showCompletions(self, completions, text): 1581 def __showCompletions(self, completions, text):
1581 """ 1582 """
1582 Private method to display the possible completions. 1583 Private method to display the possible completions.
1583 1584
1584 @param completions list of possible completions (list of strings) 1585 @param completions list of possible completions (list of strings)

eric ide

mercurial