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() |
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) |