Updated copyright for 2025.
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() |