Added the Adafruit Feather nRF52840 to the list of known NRF52 boards and changed the list of known CircuitPython boards to be more explicit with respect to Adafruit boards (i.e. VID 0x239A).
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1
|
# -*- coding: utf-8 -*- |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2
|
|
11090
|
3
|
# Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4
|
# |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7
|
Module implementing the standalone MicroPython window. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10
|
import contextlib |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12
|
from PyQt6.QtCore import QSize, Qt, QUrl, pyqtSignal, pyqtSlot |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13
|
from PyQt6.QtGui import QDesktopServices |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14
|
from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkProxyFactory |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15
|
from PyQt6.QtWidgets import QDialog, QSplitter, QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17
|
from eric7 import Preferences |
10928
46651e194fbe
Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
18
|
from eric7.EricCore import EricPreferences |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19
|
from eric7.EricNetwork.EricNetworkProxyFactory import ( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20
|
EricNetworkProxyFactory, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21
|
proxyAuthenticationRequired, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23
|
from eric7.EricWidgets import EricMessageBox |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24
|
from eric7.EricWidgets.EricApplication import ericApp |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25
|
from eric7.EricWidgets.EricMainWindow import EricMainWindow |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26
|
from eric7.EricWidgets.EricSideBar import EricSideBar, EricSideBarSide |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27
|
from eric7.MicroPython.MicroPythonWidget import MicroPythonWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28
|
from eric7.PipInterface.Pip import Pip |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29
|
from eric7.QScintilla.MiniEditor import MiniEditor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30
|
from eric7.SystemUtilities import FileSystemUtilities |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32
|
try: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33
|
from eric7.EricNetwork.EricSslErrorHandler import ( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34
|
EricSslErrorHandler, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35
|
EricSslErrorState, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38
|
SSL_AVAILABLE = True |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39
|
except ImportError: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40
|
SSL_AVAILABLE = False |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43
|
class MicroPythonWindow(EricMainWindow): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45
|
Class implementing the standalone MicroPython window. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46
|
|
10523
|
47
|
@signal editorCountChanged(count) emitted whenever the count of open editors |
|
48
|
changed |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49
|
@signal preferencesChanged() emitted after the preferences were changed |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51
|
|
10523
|
52
|
editorCountChanged = pyqtSignal(int) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53
|
preferencesChanged = pyqtSignal() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55
|
def __init__(self, parent=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57
|
Constructor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59
|
@param parent reference to the parent widget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62
|
super().__init__(parent) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64
|
self.__pip = Pip(self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66
|
# create the window layout |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67
|
self.__mpyWidget = MicroPythonWidget(parent=self, forMPyWindow=True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68
|
self.__mpyWidget.aboutToDisconnect.connect(self.__deviceDisconnect) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70
|
self.__bottomSidebar = EricSideBar( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71
|
EricSideBarSide.SOUTH, Preferences.getUI("IconBarSize") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73
|
self.__bottomSidebar.setIconBarColor(Preferences.getUI("IconBarColor")) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75
|
self.__verticalSplitter = QSplitter(Qt.Orientation.Vertical) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76
|
self.__verticalSplitter.setChildrenCollapsible(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77
|
self.__verticalSplitter.addWidget(self.__mpyWidget) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78
|
self.__verticalSplitter.addWidget(self.__bottomSidebar) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79
|
self.setCentralWidget(self.__verticalSplitter) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81
|
self.setWindowTitle(self.tr("MicroPython / CircuitPython Devices")) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83
|
g = Preferences.getGeometry("MPyWindowGeometry") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84
|
if g.isEmpty(): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85
|
s = QSize(800, 1000) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86
|
self.resize(s) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88
|
self.restoreGeometry(g) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89
|
self.__verticalSplitter.setSizes( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90
|
Preferences.getMicroPython("MPyWindowSplitterSizes") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93
|
# register the objects |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94
|
ericApp().registerObject("UserInterface", self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95
|
ericApp().registerObject("ViewManager", self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96
|
ericApp().registerObject("Pip", self.__pip) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97
|
ericApp().registerObject("MicroPython", self.__mpyWidget) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99
|
# attributes to manage the open editors |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100
|
self.__editors = [] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101
|
self.__activeEditor = None |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103
|
ericApp().focusChanged.connect(self.__appFocusChanged) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105
|
# network related setup |
10960
8b23bcae1f81
Fixed an issue in the MicroPython window class preventing the standalone MPy application to start.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
106
|
if EricPreferences.getNetworkProxy("UseSystemProxy"): |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107
|
QNetworkProxyFactory.setUseSystemConfiguration(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109
|
self.__proxyFactory = EricNetworkProxyFactory() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110
|
QNetworkProxyFactory.setApplicationProxyFactory(self.__proxyFactory) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111
|
QNetworkProxyFactory.setUseSystemConfiguration(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113
|
self.__networkManager = QNetworkAccessManager(self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114
|
self.__networkManager.proxyAuthenticationRequired.connect( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115
|
proxyAuthenticationRequired |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117
|
if SSL_AVAILABLE: |
10928
46651e194fbe
Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
118
|
self.__sslErrorHandler = EricSslErrorHandler( |
46651e194fbe
Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
119
|
Preferences.getSettings(), self |
46651e194fbe
Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
120
|
) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121
|
self.__networkManager.sslErrors.connect(self.__sslErrors) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122
|
self.__replies = [] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124
|
self.__bottomSidebar.setVisible(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126
|
def closeEvent(self, evt): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128
|
Protected event handler for the close event. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130
|
@param evt reference to the close event |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131
|
<br />This event is simply accepted after the history has been |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132
|
saved and all window references have been deleted. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133
|
@type QCloseEvent |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135
|
Preferences.setGeometry("MPyWindowGeometry", self.saveGeometry()) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136
|
Preferences.setMicroPython( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137
|
"MPyWindowSplitterSizes", self.__verticalSplitter.sizes() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140
|
for editor in self.__editors[:]: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141
|
with contextlib.suppress(RuntimeError): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142
|
editor.close() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144
|
evt.accept() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146
|
def __sslErrors(self, reply, errors): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148
|
Private slot to handle SSL errors. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150
|
@param reply reference to the reply object |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151
|
@type QNetworkReply |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152
|
@param errors list of SSL errors |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153
|
@type list of QSslError |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155
|
ignored = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156
|
if ignored == EricSslErrorState.NOT_IGNORED: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157
|
self.__downloadCancelled = True |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159
|
####################################################################### |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160
|
## Methods below implement user interface methods needed by the |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161
|
## MicroPython widget. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162
|
####################################################################### |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164
|
def addSideWidget( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165
|
self, |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
166
|
_side, |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167
|
widget, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168
|
icon, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169
|
label, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170
|
): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172
|
Public method to add a widget to the sides. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173
|
|
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
174
|
@param _side side to add the widget to (unused) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175
|
@type UserInterfaceSide |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176
|
@param widget reference to the widget to add |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178
|
@param icon icon to be used |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179
|
@type QIcon |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180
|
@param label label text to be shown |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183
|
self.__bottomSidebar.addTab(widget, icon, label) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184
|
self.__bottomSidebar.setVisible(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186
|
def showSideWidget(self, widget): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188
|
Public method to show a specific widget placed in the side widgets. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190
|
@param widget reference to the widget to be shown |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193
|
index = self.__bottomSidebar.indexOf(widget) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194
|
if index != -1: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195
|
self.__bottomSidebar.show() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196
|
self.__bottomSidebar.setCurrentIndex(index) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197
|
self.__bottomSidebar.raise_() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199
|
def removeSideWidget(self, widget): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201
|
Public method to remove a widget added using addSideWidget(). |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203
|
@param widget reference to the widget to remove |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206
|
index = self.__bottomSidebar.indexOf(widget) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207
|
if index != -1: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208
|
self.__bottomSidebar.removeTab(index) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210
|
self.__bottomSidebar.setVisible(self.__bottomSidebar.count() > 0) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212
|
def networkAccessManager(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214
|
Public method to get a reference to the network access manager object. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216
|
@return reference to the network access manager object |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217
|
@rtype QNetworkAccessManager |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219
|
return self.__networkManager |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221
|
def launchHelpViewer(self, url): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223
|
Public slot to start the help viewer/web browser. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225
|
@param url URL to be opened |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226
|
@type str or QUrl |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228
|
started = QDesktopServices.openUrl(QUrl(url)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229
|
if not started: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230
|
EricMessageBox.critical( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231
|
self, self.tr("Open Browser"), self.tr("Could not start a web browser") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234
|
@pyqtSlot() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235
|
@pyqtSlot(str) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236
|
def showPreferences(self, pageName=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238
|
Public slot to set the preferences. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240
|
@param pageName name of the configuration page to show |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243
|
from eric7.Preferences.ConfigurationDialog import ( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244
|
ConfigurationDialog, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245
|
ConfigurationMode, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248
|
dlg = ConfigurationDialog( |
11006
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
249
|
parent=self, |
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
250
|
name="Configuration", |
a671918232f3
Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
251
|
modal=True, |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252
|
fromEric=True, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253
|
displayMode=ConfigurationMode.MICROPYTHONMODE, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255
|
dlg.show() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256
|
if pageName is not None: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257
|
dlg.showConfigurationPageByName(pageName) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259
|
dlg.showConfigurationPageByName("empty") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260
|
dlg.exec() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261
|
if dlg.result() == QDialog.DialogCode.Accepted: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262
|
dlg.setPreferences() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263
|
Preferences.syncPreferences() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264
|
self.__preferencesChanged() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266
|
@pyqtSlot() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267
|
def __preferencesChanged(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269
|
Private slot to handle a change of the preferences. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271
|
self.__bottomSidebar.setIconBarColor(Preferences.getUI("IconBarColor")) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272
|
self.__bottomSidebar.setIconBarSize(Preferences.getUI("IconBarSize")) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273
|
|
10928
46651e194fbe
Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
274
|
if EricPreferences.getNetworkProxy("UseSystemProxy"): |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275
|
QNetworkProxyFactory.setUseSystemConfiguration(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277
|
self.__proxyFactory = EricNetworkProxyFactory() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278
|
QNetworkProxyFactory.setApplicationProxyFactory(self.__proxyFactory) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279
|
QNetworkProxyFactory.setUseSystemConfiguration(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281
|
self.preferencesChanged.emit() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283
|
####################################################################### |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284
|
## Methods below implement view manager methods needed by the |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285
|
## MicroPython widget. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286
|
####################################################################### |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288
|
def activeWindow(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290
|
Public method to get a reference to the active editor. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292
|
@return reference to the active editor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293
|
@rtype MiniEditor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295
|
return self.__activeEditor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297
|
def getEditor(self, fn): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299
|
Public method to return the editor displaying the given file. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301
|
@param fn filename to look for |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304
|
for editor in self.__editors: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305
|
if editor.getFileName() == fn: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306
|
editor.raise_() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307
|
break |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309
|
editor = MiniEditor(filename=fn, parent=self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310
|
editor.closing.connect(lambda: self.__editorClosing(editor)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311
|
editor.show() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313
|
self.__editors.append(editor) |
10523
|
314
|
self.editorCountChanged.emit(len(self.__editors)) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316
|
def newEditorWithText(self, text, language="", fileName=""): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318
|
Public method to generate a new editor with a given text and associated file |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319
|
name. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321
|
@param text text for the editor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323
|
@param language source language (defaults to "") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324
|
@type str (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325
|
@param fileName associated file name (defaults to "") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326
|
@type str (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328
|
editor = MiniEditor(filename=fileName, parent=self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329
|
editor.closing.connect(lambda: self.__editorClosing(editor)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330
|
editor.setText(text, filetype=language) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331
|
editor.setLanguage(fileName) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332
|
editor.show() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334
|
self.__editors.append(editor) |
10523
|
335
|
self.editorCountChanged.emit(len(self.__editors)) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337
|
def __editorClosing(self, editor): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339
|
Private method called, when an editor is closing. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341
|
@param editor reference to the closing editor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342
|
@type MiniEditor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344
|
with contextlib.suppress(ValueError): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345
|
self.__editors.remove(editor) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346
|
del editor |
10523
|
347
|
self.editorCountChanged.emit(len(self.__editors)) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349
|
if self.__editors: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350
|
# make the last one (i.e. most recently opened one) the active editor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351
|
self.__activeEditor = self.__editors[-1] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353
|
self.__activeEditor = None |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354
|
|
10523
|
355
|
def getOpenEditorsCount(self): |
|
356
|
""" |
|
357
|
Public method to get the number of open editors. |
|
358
|
|
|
359
|
@return number of open editors |
|
360
|
@rtype int |
|
361
|
""" |
|
362
|
return len(self.__editors) |
|
363
|
|
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364
|
@pyqtSlot(QWidget, QWidget) |
10690
fab36645aa7d
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
365
|
def __appFocusChanged(self, _old, now): |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367
|
Private slot to track the application focus. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368
|
|
10690
fab36645aa7d
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
diff
changeset
|
369
|
@param _old reference to the widget loosing focus (unused) |
10518
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371
|
@param now reference to the widget gaining focus |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372
|
@type QWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374
|
if now is None: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375
|
return |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377
|
for editor in self.__editors: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378
|
if now in editor.findChildren(QWidget): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379
|
self.__activeEditor = editor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380
|
break |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382
|
@pyqtSlot() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383
|
def __deviceDisconnect(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385
|
Private slot handling the device being disconnected. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387
|
This closes all editors directly connected to the device about to |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388
|
be disconnected. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390
|
for editor in self.__editors[:]: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391
|
if FileSystemUtilities.isDeviceFileName(editor.getFileName()): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392
|
editor.close() |