QScintilla/Shell.py

changeset 5710
b5809b948010
parent 5709
f81d0eca2c62
child 5711
50b6867ffcd3
equal deleted inserted replaced
5709:f81d0eca2c62 5710:b5809b948010
99 """ 99 """
100 Constructor 100 Constructor
101 101
102 @param dbs reference to the debug server object 102 @param dbs reference to the debug server object
103 @param vm reference to the viewmanager object 103 @param vm reference to the viewmanager object
104 @param parent parent widget (QWidget)
105 @param windowedVariant flag indicating the shell window variant 104 @param windowedVariant flag indicating the shell window variant
106 (boolean) 105 (boolean)
106 @param parent parent widget (QWidget)
107 """ 107 """
108 super(Shell, self).__init__(parent) 108 super(Shell, self).__init__(parent)
109 self.setUtf8(True) 109 self.setUtf8(True)
110 110
111 self.vm = vm 111 self.vm = vm
113 self.__lastSearch = () 113 self.__lastSearch = ()
114 self.__windowed = windowedVariant 114 self.__windowed = windowedVariant
115 115
116 self.linesepRegExp = r"\r\n|\n|\r" 116 self.linesepRegExp = r"\r\n|\n|\r"
117 117
118 # TODO: change this for Shell Window 118 self.passive = ((not self.__windowed) and
119 self.passive = Preferences.getDebugger("PassiveDbgEnabled") 119 Preferences.getDebugger("PassiveDbgEnabled"))
120 if self.passive: 120 if self.passive:
121 self.setWindowTitle(self.tr('Shell - Passive')) 121 self.setWindowTitle(self.tr('Shell - Passive'))
122 else: 122 else:
123 self.setWindowTitle(self.tr('Shell')) 123 self.setWindowTitle(self.tr('Shell'))
124 124
233 sys.ps2 = "... " 233 sys.ps2 = "... "
234 234
235 if self.passive: 235 if self.passive:
236 self.__getBanner() 236 self.__getBanner()
237 237
238 # Create a little language context menu
239 self.lmenu = QMenu(self.tr('Start'))
240 self.lmenu.aboutToShow.connect(self.__showLanguageMenu)
241 self.lmenu.triggered.connect(self.__startDebugClient)
242
243 # Create the history context menu
244 self.hmenu = QMenu(self.tr('History'))
245 self.hmenu.addAction(self.tr('Select entry'), self.__selectHistory)
246 self.hmenu.addAction(self.tr('Show'), self.__showHistory)
247 self.hmenu.addAction(self.tr('Clear'), self.__clearHistory)
248
249 # Create a little context menu
250 self.menu = QMenu(self)
251 self.menu.addAction(self.tr('Cut'), self.cut)
252 self.menu.addAction(self.tr('Copy'), self.copy)
253 self.menu.addAction(self.tr('Paste'), self.paste)
254 self.menu.addMenu(self.hmenu)
255 self.menu.addSeparator()
256 self.menu.addAction(self.tr('Find'), self.__find)
257 self.menu.addSeparator()
258 self.menu.addAction(self.tr('Clear'), self.clear)
259 self.menu.addAction(self.tr('Reset'), self.__reset)
260 self.menu.addAction(
261 self.tr('Reset and Clear'), self.__resetAndClear)
262 self.menu.addSeparator()
263 self.menu.addMenu(self.lmenu)
264 if not self.__windowed: 238 if not self.__windowed:
239 # Create a little language context menu
240 self.lmenu = QMenu(self.tr('Start'))
241 self.lmenu.aboutToShow.connect(self.__showLanguageMenu)
242 self.lmenu.triggered.connect(self.__startDebugClient)
243
244 # Create the history context menu
245 self.hmenu = QMenu(self.tr('History'))
246 self.hmenu.addAction(self.tr('Select entry'), self.selectHistory)
247 self.hmenu.addAction(self.tr('Show'), self.showHistory)
248 self.hmenu.addAction(self.tr('Clear'), self.clearHistory)
249
250 # Create a little context menu
251 self.menu = QMenu(self)
252 self.menu.addAction(self.tr('Cut'), self.cut)
253 self.menu.addAction(self.tr('Copy'), self.copy)
254 self.menu.addAction(self.tr('Paste'), self.paste)
255 self.menu.addMenu(self.hmenu)
256 self.menu.addSeparator()
257 self.menu.addAction(self.tr('Find'), self.__find)
258 self.menu.addSeparator()
259 self.menu.addAction(self.tr('Clear'), self.clear)
260 self.menu.addAction(self.tr('Reset'), self.__reset)
261 self.menu.addAction(
262 self.tr('Reset and Clear'), self.__resetAndClear)
263 self.menu.addSeparator()
264 self.menu.addMenu(self.lmenu)
265 self.menu.addSeparator() 265 self.menu.addSeparator()
266 self.menu.addAction(self.tr("Configure..."), self.__configure) 266 self.menu.addAction(self.tr("Configure..."), self.__configure)
267 267
268 self.__bindLexer() 268 self.__bindLexer()
269 self.__setTextDisplay() 269 self.__setTextDisplay()
605 elif clientType in self.historyLists: 605 elif clientType in self.historyLists:
606 return self.historyLists[clientType] 606 return self.historyLists[clientType]
607 else: 607 else:
608 return [] 608 return []
609 609
610 def __clearHistory(self): 610 def clearHistory(self):
611 """ 611 """
612 Private slot to clear the current history. 612 Public slot to clear the current history.
613 """ 613 """
614 if self.clientType: 614 if self.clientType:
615 self.historyLists[self.clientType] = [] 615 self.historyLists[self.clientType] = []
616 self.history = self.historyLists[self.clientType] 616 self.history = self.historyLists[self.clientType]
617 else: 617 else:
618 self.history = [] 618 self.history = []
619 self.histidx = -1 619 self.histidx = -1
620 620
621 def __selectHistory(self): 621 def selectHistory(self):
622 """ 622 """
623 Private slot to select a history entry to execute. 623 Public slot to select a history entry to execute.
624 """ 624 """
625 cmd, ok = QInputDialog.getItem( 625 cmd, ok = QInputDialog.getItem(
626 self, 626 self,
627 self.tr("Select History"), 627 self.tr("Select History"),
628 self.tr("Select the history entry to execute" 628 self.tr("Select the history entry to execute"
630 self.history, 630 self.history,
631 0, False) 631 0, False)
632 if ok: 632 if ok:
633 self.__insertHistory(cmd) 633 self.__insertHistory(cmd)
634 634
635 def __showHistory(self): 635 def showHistory(self):
636 """ 636 """
637 Private slot to show the shell history dialog. 637 Public slot to show the shell history dialog.
638 """ 638 """
639 from .ShellHistoryDialog import ShellHistoryDialog 639 from .ShellHistoryDialog import ShellHistoryDialog
640 dlg = ShellHistoryDialog(self.history, self.vm, self) 640 dlg = ShellHistoryDialog(self.history, self.vm, self)
641 if dlg.exec_() == QDialog.Accepted: 641 if dlg.exec_() == QDialog.Accepted:
642 self.historyLists[self.clientType] = dlg.getHistory() 642 self.historyLists[self.clientType] = dlg.getHistory()
651 for clientType in Preferences.Prefs.settings.childKeys(): 651 for clientType in Preferences.Prefs.settings.childKeys():
652 self.historyLists[clientType] = [] 652 self.historyLists[clientType] = []
653 self.saveHistory(clientType) 653 self.saveHistory(clientType)
654 Preferences.Prefs.settings.endGroup() 654 Preferences.Prefs.settings.endGroup()
655 655
656 self.__clearHistory() 656 self.clearHistory()
657 657
658 def getClientType(self): 658 def getClientType(self):
659 """ 659 """
660 Public slot to get the clients type. 660 Public slot to get the clients type.
661 661
1568 """ 1568 """
1569 Protected method to show our own context menu. 1569 Protected method to show our own context menu.
1570 1570
1571 @param ev context menu event (QContextMenuEvent) 1571 @param ev context menu event (QContextMenuEvent)
1572 """ 1572 """
1573 self.menu.popup(ev.globalPos()) 1573 if not self.__windowed:
1574 ev.accept() 1574 self.menu.popup(ev.globalPos())
1575 ev.accept()
1575 1576
1576 def clear(self): 1577 def clear(self):
1577 """ 1578 """
1578 Public slot to clear the display. 1579 Public slot to clear the display.
1579 """ 1580 """
1714 """ 1715 """
1715 Protected method to handle the drop event. 1716 Protected method to handle the drop event.
1716 1717
1717 @param event the drop event (QDropEvent) 1718 @param event the drop event (QDropEvent)
1718 """ 1719 """
1719 if event.mimeData().hasUrls(): 1720 if event.mimeData().hasUrls() and not self.__windowed:
1720 for url in event.mimeData().urls(): 1721 for url in event.mimeData().urls():
1721 fname = url.toLocalFile() 1722 fname = url.toLocalFile()
1722 if fname: 1723 if fname:
1723 if not QFileInfo(fname).isDir(): 1724 if not QFileInfo(fname).isDir():
1724 self.vm.openSourceFile(fname) 1725 self.vm.openSourceFile(fname)

eric ide

mercurial