src/eric7/UI/UserInterface.py

branch
eric7
changeset 10811
5eb3106ed162
parent 10810
0a75e2c5b8e8
child 10813
77d4d1878228
--- a/src/eric7/UI/UserInterface.py	Tue Jul 02 11:13:21 2024 +0200
+++ b/src/eric7/UI/UserInterface.py	Tue Jul 02 14:39:13 2024 +0200
@@ -179,6 +179,27 @@
         self.buffer += str(s)
         self.__nWrite(self.__bufferedWrite())
 
+    def isatty(self):
+        """
+        Public method to indicate a tty.
+
+        Note: This always reports 'False'.
+
+        @return flag indicating a tty
+        @rtype bool
+        """
+        return False
+
+    @property
+    def encoding(self):
+        """
+        Public method to report the used encoding.
+
+        @return used encoding
+        @rtype str
+        """
+        return Preferences.getSystem("IOEncoding")
+
 
 class UserInterfaceSide(enum.Enum):
     """
@@ -316,6 +337,17 @@
         splash.showMessage(self.tr("Initializing Basic Services..."))
         logging.getLogger(__name__).debug("Initializing Basic Services...")
 
+        # Generate the redirection helpers
+        self.stdout = Redirector(False, self)
+        self.stdout.appendStdout.connect(self.appendToStdout)
+        self.stderr = Redirector(True, self)
+        self.stderr.appendStderr.connect(self.appendToStderr)
+        # Redirect sys.stdout and/or sys.stderr if those are None
+        if sys.stdout is None:
+            sys.stdout = self.stdout
+        if sys.stderr is None:
+            sys.stderr = self.stderr
+
         # create the remote server interface
         logging.getLogger(__name__).debug("Creating 'eric-ide' Server Interface...")
         self.__ericServerInterface = EricServerInterface(self)
@@ -407,10 +439,6 @@
         self.debugViewer.setDebugger(self.debuggerUI)
         self.shell.setDebuggerUI(self.debuggerUI)
 
-        # Generate the redirection helpers
-        self.stdout = Redirector(False, self)
-        self.stderr = Redirector(True, self)
-
         # set a few dialog members for non-modal dialogs created on demand
         self.programsDialog = None
         self.shortcutsDialog = None
@@ -512,9 +540,6 @@
         self.__debugServer.clientProcessStderr.connect(self.appendToStderr)
         self.__debugServer.appendStdout.connect(self.appendToStdout)
 
-        self.stdout.appendStdout.connect(self.appendToStdout)
-        self.stderr.appendStderr.connect(self.appendToStderr)
-
         self.preferencesChanged.connect(self.viewmanager.preferencesChanged)
         self.reloadAPIs.connect(self.viewmanager.getAPIsManager().reloadAPIs)
         self.preferencesChanged.connect(self.logViewer.preferencesChanged)
@@ -714,11 +739,6 @@
         self.shutdownCalled = False
         self.inCloseEvent = False
 
-        # now redirect stdout and stderr
-        # TODO: release - reenable redirection
-        ##sys.stdout = self.stdout          # __IGNORE_WARNING_M891__
-        ##sys.stderr = self.stderr          # __IGNORE_WARNING_M891__
-
         # now fire up the single application server
         if Preferences.getUI("SingleApplicationMode"):
             splash.showMessage(self.tr("Initializing Single Application Server..."))

eric ide

mercurial