Krita Source Code Documentation
Loading...
Searching...
No Matches
debugcontroller.py
Go to the documentation of this file.
1
"""
2
SPDX-FileCopyrightText: 2017 Eliakin Costa <eliakim170@gmail.com>
3
4
SPDX-License-Identifier: GPL-2.0-or-later
5
"""
6
from
.debugger_scripter
import
debugger
7
import
asyncio
8
from
builtins
import
i18n
9
10
class
DebugController
(object):
11
12
def
__init__
(self, scripter):
13
self.
_debugger
=
None
14
self.
_cmd
=
None
15
self.
scripter
= scripter
16
17
def
start
(self, document):
18
self.
setCmd
(compile(document.data, document.filePath,
"exec"
))
19
self.
_debugger
= debugger.Debugger(self.
scripter
, self.
_cmd
)
20
self.
_debugger
.debugprocess.start()
21
loop = asyncio.get_event_loop()
22
loop.run_until_complete(self.
_debugger
.
start
())
23
self.
updateUIDebugger
()
24
25
def
step
(self):
26
loop = asyncio.get_event_loop()
27
loop.run_until_complete(self.
_debugger
.
step
())
28
self.
scripter
.uicontroller.setStepped(
True
)
29
self.
updateUIDebugger
()
30
31
def
stop
(self):
32
loop = asyncio.get_event_loop()
33
loop.run_until_complete(self.
_debugger
.
stop
())
34
self.
updateUIDebugger
()
35
self.
_debugger
=
None
36
37
def
setCmd
(self, cmd):
38
self.
_cmd
= cmd
39
40
@property
41
def
isActive
(self):
42
try
:
43
if
self.
_debugger
:
44
return
self.
_debugger
.debugprocess.is_alive()
45
return
False
46
except
Exception:
47
return
False
48
49
@property
50
def
currentLine
(self):
51
try
:
52
if
self.
_debugger
:
53
return
int(self.
debuggerData
[
'code'
][
'lineNumber'
])
54
except
Exception:
55
return
0
56
57
def
updateUIDebugger
(self):
58
widget = self.
scripter
.uicontroller.findTabWidget(i18n(
'Debugger'
))
59
exception = self.
_debuggerException
()
60
61
if
exception:
62
self.
scripter
.uicontroller.showException(exception)
63
if
not
self.
isActive
or
self.
_quitDebugger
():
64
widget.disableToolbar(
True
)
65
66
self.
scripter
.uicontroller.repaintDebugArea()
67
widget.updateWidget()
68
69
@property
70
def
debuggerData
(self):
71
try
:
72
if
self.
_debugger
:
73
return
self.
_debugger
.application_data
74
except
Exception:
75
return
76
77
def
_quitDebugger
(self):
78
try
:
79
return
self.
debuggerData
[
'quit'
]
80
except
Exception:
81
return
False
82
83
def
_debuggerException
(self):
84
try
:
85
return
self.
debuggerData
[
'exception'
]
86
except
Exception:
87
return
False
scripter.debugcontroller.DebugController
Definition
debugcontroller.py:10
scripter.debugcontroller.DebugController.currentLine
currentLine(self)
Definition
debugcontroller.py:50
scripter.debugcontroller.DebugController.isActive
isActive(self)
Definition
debugcontroller.py:41
scripter.debugcontroller.DebugController.stop
stop(self)
Definition
debugcontroller.py:31
scripter.debugcontroller.DebugController._debugger
_debugger
Definition
debugcontroller.py:13
scripter.debugcontroller.DebugController.start
start(self, document)
Definition
debugcontroller.py:17
scripter.debugcontroller.DebugController.__init__
__init__(self, scripter)
Definition
debugcontroller.py:12
scripter.debugcontroller.DebugController._quitDebugger
_quitDebugger(self)
Definition
debugcontroller.py:77
scripter.debugcontroller.DebugController.setCmd
setCmd(self, cmd)
Definition
debugcontroller.py:37
scripter.debugcontroller.DebugController.debuggerData
debuggerData(self)
Definition
debugcontroller.py:70
scripter.debugcontroller.DebugController.updateUIDebugger
updateUIDebugger(self)
Definition
debugcontroller.py:57
scripter.debugcontroller.DebugController._cmd
_cmd
Definition
debugcontroller.py:14
scripter.debugcontroller.DebugController.step
step(self)
Definition
debugcontroller.py:25
scripter.debugcontroller.DebugController.scripter
scripter
Definition
debugcontroller.py:15
scripter.debugcontroller.DebugController._debuggerException
_debuggerException(self)
Definition
debugcontroller.py:83
plugins
python
scripter
debugcontroller.py
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52