[PATCH 1/2] Improve how we set the default screen height in text mode (#1184378)

Vratislav Podzimek vpodzime at redhat.com
Fri Jun 26 06:55:58 UTC 2015


We can either use given value or try to use the $LINES environment variable or
use the default which should be 24 lines because that's what serial consoles use
(see the bug).

Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 pyanaconda/constants_text.py         |  3 +++
 pyanaconda/ui/tui/simpleline/base.py | 13 +++++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/pyanaconda/constants_text.py b/pyanaconda/constants_text.py
index 750a984..9fb5e03 100644
--- a/pyanaconda/constants_text.py
+++ b/pyanaconda/constants_text.py
@@ -56,3 +56,6 @@ TEXT_NO_BUTTON = Translator(TEXT_NO_STR, TEXT_NO_CHECK)
 # Make the return calls from the UIScreen input() function more clear
 INPUT_PROCESSED = None
 INPUT_DISCARDED = False
+
+# default screen height in number of lines (24 lines is the default for serial consoles)
+DEFAULT_SCREEN_HEIGHT = 24
diff --git a/pyanaconda/ui/tui/simpleline/base.py b/pyanaconda/ui/tui/simpleline/base.py
index 6371b93..3d9b8b1 100644
--- a/pyanaconda/ui/tui/simpleline/base.py
+++ b/pyanaconda/ui/tui/simpleline/base.py
@@ -22,6 +22,7 @@
 __all__ = ["App", "UIScreen", "Widget"]
 
 import sys
+import os
 import Queue
 import getpass
 import threading
@@ -30,6 +31,7 @@ from pyanaconda.threads import threadMgr, AnacondaThread
 from pyanaconda.ui.communication import hubQ
 from pyanaconda import constants, iutil
 from pyanaconda.i18n import _, N_, C_
+from pyanaconda.constants_text import DEFAULT_SCREEN_HEIGHT
 
 RAW_INPUT_LOCK = threading.Lock()
 
@@ -491,17 +493,24 @@ class UIScreen(object):
     # title line of the screen
     title = u"Screen.."
 
-    def __init__(self, app, screen_height = 25):
+    def __init__(self, app, screen_height=0):
         """
         :param app: reference to application main class
         :type app: instance of class App
 
         :param screen_height: height of the screen (useful for printing long widgets)
+                              or 0 to use the default
         :type screen_height: int
         """
 
         self._app = app
-        self._screen_height = screen_height
+
+        if screen_height > 0:
+            self._screen_height = screen_height
+        elif "LINES" in os.environ:
+            self._screen_height = os.environ["LINES"]
+        else:
+            self._screen_height = DEFAULT_SCREEN_HEIGHT
 
         # list that holds the content to be printed out
         self._window = []
-- 
2.1.0



More information about the anaconda-patches mailing list