src/eric7/WebBrowser/WebBrowserJavaScriptConsole.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
15 15
16 class WebBrowserJavaScriptConsole(QTextEdit): 16 class WebBrowserJavaScriptConsole(QTextEdit):
17 """ 17 """
18 Class implementing a JavaScript console widget. 18 Class implementing a JavaScript console widget.
19 """ 19 """
20
20 def __init__(self, parent=None): 21 def __init__(self, parent=None):
21 """ 22 """
22 Constructor 23 Constructor
23 24
24 @param parent reference to the parent widget (QWidget) 25 @param parent reference to the parent widget (QWidget)
25 """ 26 """
26 super().__init__(parent) 27 super().__init__(parent)
27 self.setAcceptRichText(False) 28 self.setAcceptRichText(False)
28 self.setLineWrapMode(QTextEdit.LineWrapMode.NoWrap) 29 self.setLineWrapMode(QTextEdit.LineWrapMode.NoWrap)
29 self.setReadOnly(True) 30 self.setReadOnly(True)
30 31
31 # create the context menu 32 # create the context menu
32 self.__menu = QMenu(self) 33 self.__menu = QMenu(self)
33 self.__menu.addAction(self.tr('Clear'), self.clear) 34 self.__menu.addAction(self.tr("Clear"), self.clear)
34 self.__menu.addAction(self.tr('Copy'), self.copy) 35 self.__menu.addAction(self.tr("Copy"), self.copy)
35 self.__menu.addSeparator() 36 self.__menu.addSeparator()
36 self.__menu.addAction(self.tr('Select All'), self.selectAll) 37 self.__menu.addAction(self.tr("Select All"), self.selectAll)
37 38
38 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) 39 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
39 self.customContextMenuRequested.connect(self.__handleShowContextMenu) 40 self.customContextMenuRequested.connect(self.__handleShowContextMenu)
40 41
41 self.__levelStrings = { 42 self.__levelStrings = {
42 QWebEnginePage.JavaScriptConsoleMessageLevel.InfoMessageLevel: 43 QWebEnginePage.JavaScriptConsoleMessageLevel.InfoMessageLevel: self.tr(
43 self.tr("Info"), 44 "Info"
44 QWebEnginePage.JavaScriptConsoleMessageLevel.WarningMessageLevel: 45 ),
45 self.tr("Warning"), 46 QWebEnginePage.JavaScriptConsoleMessageLevel.WarningMessageLevel: self.tr(
46 QWebEnginePage.JavaScriptConsoleMessageLevel.ErrorMessageLevel: 47 "Warning"
47 self.tr("Error"), 48 ),
49 QWebEnginePage.JavaScriptConsoleMessageLevel.ErrorMessageLevel: self.tr(
50 "Error"
51 ),
48 } 52 }
49 53
50 def __handleShowContextMenu(self, coord): 54 def __handleShowContextMenu(self, coord):
51 """ 55 """
52 Private slot to show the context menu. 56 Private slot to show the context menu.
53 57
54 @param coord the position of the mouse pointer (QPoint) 58 @param coord the position of the mouse pointer (QPoint)
55 """ 59 """
56 coord = self.mapToGlobal(coord) 60 coord = self.mapToGlobal(coord)
57 self.__menu.popup(coord) 61 self.__menu.popup(coord)
58 62
59 def __appendText(self, txt): 63 def __appendText(self, txt):
60 """ 64 """
61 Private method to append text to the end. 65 Private method to append text to the end.
62 66
63 @param txt text to insert (string) 67 @param txt text to insert (string)
64 """ 68 """
65 tc = self.textCursor() 69 tc = self.textCursor()
66 tc.movePosition(QTextCursor.MoveOperation.End) 70 tc.movePosition(QTextCursor.MoveOperation.End)
67 self.setTextCursor(tc) 71 self.setTextCursor(tc)
68 self.insertPlainText(txt) 72 self.insertPlainText(txt)
69 self.ensureCursorVisible() 73 self.ensureCursorVisible()
70 74
71 def keyPressEvent(self, evt): 75 def keyPressEvent(self, evt):
72 """ 76 """
73 Protected method handling key press events. 77 Protected method handling key press events.
74 78
75 @param evt key press event (QKeyEvent) 79 @param evt key press event (QKeyEvent)
76 """ 80 """
77 if evt.modifiers() == Qt.KeyboardModifier.ControlModifier: 81 if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
78 if evt.key() == Qt.Key.Key_C: 82 if evt.key() == Qt.Key.Key_C:
79 self.copy() 83 self.copy()
81 return 85 return
82 elif evt.key() == Qt.Key.Key_A: 86 elif evt.key() == Qt.Key.Key_A:
83 self.selectAll() 87 self.selectAll()
84 evt.accept() 88 evt.accept()
85 return 89 return
86 90
87 def javaScriptConsoleMessage(self, level, message, lineNumber, sourceId): 91 def javaScriptConsoleMessage(self, level, message, lineNumber, sourceId):
88 """ 92 """
89 Public method to show a console message. 93 Public method to show a console message.
90 94
91 @param level severity 95 @param level severity
92 @type QWebEnginePage.JavaScriptConsoleMessageLevel 96 @type QWebEnginePage.JavaScriptConsoleMessageLevel
93 @param message message to be shown 97 @param message message to be shown
94 @type str 98 @type str
95 @param lineNumber line number of an error 99 @param lineNumber line number of an error
96 @type int 100 @type int
97 @param sourceId source URL causing the error 101 @param sourceId source URL causing the error
98 @type str 102 @type str
99 """ 103 """
100 txt = self.tr("[{0}] {1}").format( 104 txt = self.tr("[{0}] {1}").format(self.__levelStrings[level], message)
101 self.__levelStrings[level], message)
102 self.__appendText(txt) 105 self.__appendText(txt)
103 106
104 if lineNumber: 107 if lineNumber:
105 self.__appendText(self.tr(" at line {0}\n").format(lineNumber)) 108 self.__appendText(self.tr(" at line {0}\n").format(lineNumber))
106 else: 109 else:
107 self.__appendText("\n") 110 self.__appendText("\n")
108 111
109 if sourceId: 112 if sourceId:
110 self.__appendText(self.tr("URL: {0}\n").format(sourceId)) 113 self.__appendText(self.tr("URL: {0}\n").format(sourceId))

eric ide

mercurial