Fixed an issue caused by a still existing signal slot connection in EditorAssembly. eric7

Tue, 10 Jan 2023 09:19:32 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Jan 2023 09:19:32 +0100
branch
eric7
changeset 9687
3a240d3f3b8c
parent 9686
2eee7a645cba
child 9688
f3817c476a62

Fixed an issue caused by a still existing signal slot connection in EditorAssembly.

src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
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.QScintilla.EditorAssembly.html file | annotate | diff | comparison | revisions
src/eric7/QScintilla/EditorAssembly.py file | annotate | diff | comparison | revisions
src/eric7/ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
--- a/src/eric7/APIs/Python3/eric7.api	Mon Jan 09 11:22:56 2023 +0100
+++ b/src/eric7/APIs/Python3/eric7.api	Tue Jan 10 09:19:32 2023 +0100
@@ -8294,8 +8294,8 @@
 eric7.QScintilla.Editor.ReferenceItem?7
 eric7.QScintilla.Editor.ReferencesListID?7
 eric7.QScintilla.Editor.TemplateCompletionListID?7
+eric7.QScintilla.EditorAssembly.EditorAssembly.aboutToBeClosed?4()
 eric7.QScintilla.EditorAssembly.EditorAssembly.getEditor?4()
-eric7.QScintilla.EditorAssembly.EditorAssembly.shutdownTimer?4()
 eric7.QScintilla.EditorAssembly.EditorAssembly?1(dbs, fn="", vm=None, filetype="", editor=None, tv=None)
 eric7.QScintilla.EditorButtonsWidget.EditorButtonsWidget.resizeEvent?4(evt)
 eric7.QScintilla.EditorButtonsWidget.EditorButtonsWidget.show?4()
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Mon Jan 09 11:22:56 2023 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Tue Jan 10 09:19:32 2023 +0100
@@ -4602,8 +4602,8 @@
       <keyword name="EditorAssembly.__parseEditor" id="EditorAssembly.__parseEditor" ref="eric7.QScintilla.EditorAssembly.html#EditorAssembly.__parseEditor" />
       <keyword name="EditorAssembly.__preferencesChanged" id="EditorAssembly.__preferencesChanged" ref="eric7.QScintilla.EditorAssembly.html#EditorAssembly.__preferencesChanged" />
       <keyword name="EditorAssembly.__resetParseTimer" id="EditorAssembly.__resetParseTimer" ref="eric7.QScintilla.EditorAssembly.html#EditorAssembly.__resetParseTimer" />
+      <keyword name="EditorAssembly.aboutToBeClosed" id="EditorAssembly.aboutToBeClosed" ref="eric7.QScintilla.EditorAssembly.html#EditorAssembly.aboutToBeClosed" />
       <keyword name="EditorAssembly.getEditor" id="EditorAssembly.getEditor" ref="eric7.QScintilla.EditorAssembly.html#EditorAssembly.getEditor" />
-      <keyword name="EditorAssembly.shutdownTimer" id="EditorAssembly.shutdownTimer" ref="eric7.QScintilla.EditorAssembly.html#EditorAssembly.shutdownTimer" />
       <keyword name="EditorAutoCompletionJediPage" id="EditorAutoCompletionJediPage" ref="eric7.Preferences.ConfigurationPages.EditorAutoCompletionJediPage.html#EditorAutoCompletionJediPage" />
       <keyword name="EditorAutoCompletionJediPage (Constructor)" id="EditorAutoCompletionJediPage (Constructor)" ref="eric7.Preferences.ConfigurationPages.EditorAutoCompletionJediPage.html#EditorAutoCompletionJediPage.__init__" />
       <keyword name="EditorAutoCompletionJediPage (Module)" id="EditorAutoCompletionJediPage (Module)" ref="eric7.Preferences.ConfigurationPages.EditorAutoCompletionJediPage.html" />
--- a/src/eric7/Documentation/Source/eric7.QScintilla.EditorAssembly.html	Mon Jan 09 11:22:56 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.QScintilla.EditorAssembly.html	Tue Jan 10 09:19:32 2023 +0100
@@ -97,13 +97,13 @@
 <td>Private slot to reset the parse timer.</td>
 </tr>
 <tr>
+<td><a href="#EditorAssembly.aboutToBeClosed">aboutToBeClosed</a></td>
+<td>Public method to stop and disconnect the timer and disconnect some signals.</td>
+</tr>
+<tr>
 <td><a href="#EditorAssembly.getEditor">getEditor</a></td>
 <td>Public method to get the reference to the editor widget.</td>
 </tr>
-<tr>
-<td><a href="#EditorAssembly.shutdownTimer">shutdownTimer</a></td>
-<td>Public method to stop and disconnect the timer.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -254,6 +254,13 @@
 <p>
         Private slot to reset the parse timer.
 </p>
+<a NAME="EditorAssembly.aboutToBeClosed" ID="EditorAssembly.aboutToBeClosed"></a>
+<h4>EditorAssembly.aboutToBeClosed</h4>
+<b>aboutToBeClosed</b>(<i></i>)
+
+<p>
+        Public method to stop and disconnect the timer and disconnect some signals.
+</p>
 <a NAME="EditorAssembly.getEditor" ID="EditorAssembly.getEditor"></a>
 <h4>EditorAssembly.getEditor</h4>
 <b>getEditor</b>(<i></i>)
@@ -273,13 +280,6 @@
 Editor
 </dd>
 </dl>
-<a NAME="EditorAssembly.shutdownTimer" ID="EditorAssembly.shutdownTimer"></a>
-<h4>EditorAssembly.shutdownTimer</h4>
-<b>shutdownTimer</b>(<i></i>)
-
-<p>
-        Public method to stop and disconnect the timer.
-</p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/src/eric7/QScintilla/EditorAssembly.py	Mon Jan 09 11:22:56 2023 +0100
+++ b/src/eric7/QScintilla/EditorAssembly.py	Tue Jan 10 09:19:32 2023 +0100
@@ -79,7 +79,7 @@
 
         self.__module = None
 
-        self.__shutdownTimerCalled = False
+        self.__aboutToBeClosedCalled = False
         self.__parseTimer = QTimer(self)
         self.__parseTimer.setSingleShot(True)
         self.__parseTimer.setInterval(5 * 1000)
@@ -98,15 +98,17 @@
             self.__preferencesChanged
         )
 
-    def shutdownTimer(self):
+    def aboutToBeClosed(self):
         """
-        Public method to stop and disconnect the timer.
+        Public method to stop and disconnect the timer and disconnect some signals.
         """
         self.__parseTimer.stop()
-        if not self.__shutdownTimerCalled:
+        if not self.__aboutToBeClosedCalled:
             self.__editor.textChanged.disconnect(self.__resetParseTimer)
             self.__editor.refreshed.disconnect(self.__resetParseTimer)
-            self.__shutdownTimerCalled = True
+            ericApp().getObject("UserInterface").preferencesChanged.disconnect()
+
+            self.__aboutToBeClosedCalled = True
 
     def getEditor(self):
         """
--- a/src/eric7/ViewManager/ViewManager.py	Mon Jan 09 11:22:56 2023 +0100
+++ b/src/eric7/ViewManager/ViewManager.py	Tue Jan 10 09:19:32 2023 +0100
@@ -5474,7 +5474,7 @@
         fn = editor.getFileName()
 
         # remove the window
-        editor.parent().shutdownTimer()
+        editor.parent().aboutToBeClosed()
         self._removeView(editor)
         self.editors.remove(editor)
 

eric ide

mercurial