Corrected the usage of the MiniEditor class. eric7

Fri, 21 Mar 2025 16:29:08 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 21 Mar 2025 16:29:08 +0100
branch
eric7
changeset 11181
52e30cc024aa
parent 11180
b00fee34ea40
child 11182
0c808c18f4fc

Corrected the usage of the MiniEditor class.

src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.Testing.TestingWidget.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.WebBrowser.WebBrowserWindow.html file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonWindow.py file | annotate | diff | comparison | revisions
src/eric7/Testing/TestingWidget.py file | annotate | diff | comparison | revisions
src/eric7/UI/UserInterface.py file | annotate | diff | comparison | revisions
src/eric7/WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Fri Mar 21 16:29:08 2025 +0100
@@ -17728,6 +17728,7 @@
       <keyword name="TestingWidget.__coverageData" id="TestingWidget.__coverageData" ref="eric7.Testing.TestingWidget.html#TestingWidget.__coverageData" />
       <keyword name="TestingWidget.__determineInterpreter" id="TestingWidget.__determineInterpreter" ref="eric7.Testing.TestingWidget.html#TestingWidget.__determineInterpreter" />
       <keyword name="TestingWidget.__discoverTests" id="TestingWidget.__discoverTests" ref="eric7.Testing.TestingWidget.html#TestingWidget.__discoverTests" />
+      <keyword name="TestingWidget.__editorClosing" id="TestingWidget.__editorClosing" ref="eric7.Testing.TestingWidget.html#TestingWidget.__editorClosing" />
       <keyword name="TestingWidget.__findDiscoveryItem" id="TestingWidget.__findDiscoveryItem" ref="eric7.Testing.TestingWidget.html#TestingWidget.__findDiscoveryItem" />
       <keyword name="TestingWidget.__insertDiscovery" id="TestingWidget.__insertDiscovery" ref="eric7.Testing.TestingWidget.html#TestingWidget.__insertDiscovery" />
       <keyword name="TestingWidget.__insertHistory" id="TestingWidget.__insertHistory" ref="eric7.Testing.TestingWidget.html#TestingWidget.__insertHistory" />
@@ -19715,6 +19716,7 @@
       <keyword name="WebBrowserWindow.__cut" id="WebBrowserWindow.__cut" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__cut" />
       <keyword name="WebBrowserWindow.__del__" id="WebBrowserWindow.__del__" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__del__" />
       <keyword name="WebBrowserWindow.__docsInstalled" id="WebBrowserWindow.__docsInstalled" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__docsInstalled" />
+      <keyword name="WebBrowserWindow.__editorClosing" id="WebBrowserWindow.__editorClosing" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__editorClosing" />
       <keyword name="WebBrowserWindow.__exportShortcuts" id="WebBrowserWindow.__exportShortcuts" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__exportShortcuts" />
       <keyword name="WebBrowserWindow.__feedsManagerClosed" id="WebBrowserWindow.__feedsManagerClosed" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__feedsManagerClosed" />
       <keyword name="WebBrowserWindow.__filterQtHelpDocumentation" id="WebBrowserWindow.__filterQtHelpDocumentation" ref="eric7.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.__filterQtHelpDocumentation" />
--- a/src/eric7/Documentation/Source/eric7.Testing.TestingWidget.html	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/Documentation/Source/eric7.Testing.TestingWidget.html	Fri Mar 21 16:29:08 2025 +0100
@@ -99,6 +99,10 @@
 <td>Private slot to discover tests but don't execute them.</td>
 </tr>
 <tr>
+<td><a href="#TestingWidget.__editorClosing">__editorClosing</a></td>
+<td>Private method called, when an editor is closing.</td>
+</tr>
+<tr>
 <td><a href="#TestingWidget.__findDiscoveryItem">__findDiscoveryItem</a></td>
 <td>Private method to find an item given the module path.</td>
 </tr>
@@ -419,6 +423,20 @@
         Private slot to discover tests but don't execute them.
 </p>
 
+<a NAME="TestingWidget.__editorClosing" ID="TestingWidget.__editorClosing"></a>
+<h4>TestingWidget.__editorClosing</h4>
+<b>__editorClosing</b>(<i>editor</i>)
+<p>
+        Private method called, when an editor is closing.
+</p>
+
+<dl>
+
+<dt><i>editor</i> (MiniEditor)</dt>
+<dd>
+reference to the closing editor
+</dd>
+</dl>
 <a NAME="TestingWidget.__findDiscoveryItem" ID="TestingWidget.__findDiscoveryItem"></a>
 <h4>TestingWidget.__findDiscoveryItem</h4>
 <b>__findDiscoveryItem</b>(<i>modulePath</i>)
--- a/src/eric7/Documentation/Source/eric7.WebBrowser.WebBrowserWindow.html	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/Documentation/Source/eric7.WebBrowser.WebBrowserWindow.html	Fri Mar 21 16:29:08 2025 +0100
@@ -339,6 +339,10 @@
 <td>Private slot handling the end of documentation installation.</td>
 </tr>
 <tr>
+<td><a href="#WebBrowserWindow.__editorClosing">__editorClosing</a></td>
+<td>Private method called, when an editor is closing.</td>
+</tr>
+<tr>
 <td><a href="#WebBrowserWindow.__exportShortcuts">__exportShortcuts</a></td>
 <td>Private slot to export the keyboard shortcuts.</td>
 </tr>
@@ -1880,6 +1884,20 @@
 flag indicating that documents were installed (unused)
 </dd>
 </dl>
+<a NAME="WebBrowserWindow.__editorClosing" ID="WebBrowserWindow.__editorClosing"></a>
+<h4>WebBrowserWindow.__editorClosing</h4>
+<b>__editorClosing</b>(<i>editor</i>)
+<p>
+        Private method called, when an editor is closing.
+</p>
+
+<dl>
+
+<dt><i>editor</i> (MiniEditor)</dt>
+<dd>
+reference to the closing editor
+</dd>
+</dl>
 <a NAME="WebBrowserWindow.__exportShortcuts" ID="WebBrowserWindow.__exportShortcuts"></a>
 <h4>WebBrowserWindow.__exportShortcuts</h4>
 <b>__exportShortcuts</b>(<i></i>)
--- a/src/eric7/MicroPython/MicroPythonWindow.py	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/MicroPython/MicroPythonWindow.py	Fri Mar 21 16:29:08 2025 +0100
@@ -306,7 +306,7 @@
                 editor.raise_()
                 break
         else:
-            editor = MiniEditor(filename=fn, parent=self)
+            editor = MiniEditor(filename=fn)
             editor.closing.connect(lambda: self.__editorClosing(editor))
             editor.show()
 
@@ -325,7 +325,7 @@
         @param fileName associated file name (defaults to "")
         @type str (optional)
         """
-        editor = MiniEditor(filename=fileName, parent=self)
+        editor = MiniEditor(filename=fileName)
         editor.closing.connect(lambda: self.__editorClosing(editor))
         editor.setText(text, filetype=language)
         editor.setLanguage(fileName)
--- a/src/eric7/Testing/TestingWidget.py	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/Testing/TestingWidget.py	Fri Mar 21 16:29:08 2025 +0100
@@ -1364,12 +1364,24 @@
         """
         from eric7.QScintilla.MiniEditor import MiniEditor
 
-        editor = MiniEditor(filename, "Python3", self)
+        editor = MiniEditor(filename, "Python3")
+        editor.closing.connect(lambda: self.__editorClosing(editor))
         editor.gotoLine(linenumber)
         editor.show()
 
         self.__editors.append(editor)
 
+    def __editorClosing(self, editor):
+        """
+        Private method called, when an editor is closing.
+
+        @param editor reference to the closing editor
+        @type MiniEditor
+        """
+        with contextlib.suppress(ValueError):
+            self.__editors.remove(editor)
+            del editor
+
     def closeEvent(self, event):
         """
         Protected method to handle the close event.
@@ -1377,12 +1389,12 @@
         @param event close event
         @type QCloseEvent
         """
-        event.accept()
-
         for editor in self.__editors:
             with contextlib.suppress(RuntimeError):
                 editor.close()
 
+        event.accept()
+
     @pyqtSlot(str)
     def on_statusFilterComboBox_currentTextChanged(self, status):
         """
--- a/src/eric7/UI/UserInterface.py	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/UI/UserInterface.py	Fri Mar 21 16:29:08 2025 +0100
@@ -4860,7 +4860,7 @@
         """
         from eric7.QScintilla.MiniEditor import MiniEditor
 
-        editor = MiniEditor(parent=self)
+        editor = MiniEditor()
         editor.show()
 
     def addEricActions(self, actions, actionType):
--- a/src/eric7/WebBrowser/WebBrowserWindow.py	Fri Mar 21 16:27:43 2025 +0100
+++ b/src/eric7/WebBrowser/WebBrowserWindow.py	Fri Mar 21 16:29:08 2025 +0100
@@ -352,6 +352,8 @@
 
         self.__initWebEngineSettings()
 
+        self.__editors = []
+
         # initialize some of our class objects
         self.passwordManager()
         self.historyManager()
@@ -3263,6 +3265,10 @@
 
         self.__isClosing = True
 
+        for editor in self.__editors[:]:
+            with contextlib.suppress(RuntimeError):
+                editor.close()
+
         if (
             not WebBrowserWindow._performingShutdown
             and len(WebBrowserWindow.BrowserWindows) == 1
@@ -4346,11 +4352,25 @@
         """
         from eric7.QScintilla.MiniEditor import MiniEditor
 
-        editor = MiniEditor(parent=self)
+        editor = MiniEditor()
+        editor.closing.connect(lambda: self.__editorClosing(editor))
         editor.setText(src, "Html")
         editor.setLanguage("dummy.html")
         editor.show()
 
+        self.__editors.append(editor)
+
+    def __editorClosing(self, editor):
+        """
+        Private method called, when an editor is closing.
+
+        @param editor reference to the closing editor
+        @type MiniEditor
+        """
+        with contextlib.suppress(ValueError):
+            self.__editors.remove(editor)
+            del editor
+
     @pyqtSlot()
     def __toggleJavaScriptConsole(self):
         """

eric ide

mercurial