mirror of
https://github.com/pdxlocations/contact.git
synced 2026-03-28 17:12:35 +01:00
Add terminal resize dialog for minimum row requirement
This commit is contained in:
@@ -33,6 +33,8 @@ from contact.ui.splash import draw_splash
|
||||
from contact.utilities.arg_parser import setup_parser
|
||||
from contact.utilities.db_handler import init_nodedb, load_messages_from_db
|
||||
from contact.utilities.input_handlers import get_list_input
|
||||
from contact.utilities.i18n import t
|
||||
from contact.ui.dialog import dialog
|
||||
from contact.utilities.interfaces import initialize_interface
|
||||
from contact.utilities.utils import get_channels, get_nodeNum, get_node_list
|
||||
from contact.utilities.singleton import ui_state, interface_state, app_state
|
||||
@@ -85,6 +87,7 @@ def main(stdscr: curses.window) -> None:
|
||||
output_capture = io.StringIO()
|
||||
try:
|
||||
setup_colors()
|
||||
ensure_min_rows(stdscr)
|
||||
draw_splash(stdscr)
|
||||
|
||||
args = setup_parser().parse_args()
|
||||
@@ -120,6 +123,24 @@ def main(stdscr: curses.window) -> None:
|
||||
raise
|
||||
|
||||
|
||||
def ensure_min_rows(stdscr: curses.window, min_rows: int = 11) -> None:
|
||||
while True:
|
||||
rows, _ = stdscr.getmaxyx()
|
||||
if rows >= min_rows:
|
||||
return
|
||||
dialog(
|
||||
t("ui.dialog.resize_title", default="Resize Terminal"),
|
||||
t(
|
||||
"ui.dialog.resize_body",
|
||||
default="Please resize the terminal to at least {rows} rows.",
|
||||
rows=min_rows,
|
||||
),
|
||||
)
|
||||
curses.update_lines_cols()
|
||||
stdscr.clear()
|
||||
stdscr.refresh()
|
||||
|
||||
|
||||
def start() -> None:
|
||||
"""Entry point for the application."""
|
||||
|
||||
|
||||
@@ -86,6 +86,8 @@ confirm.remove_favorite, "Remove {name} from Favorites?", ""
|
||||
confirm.set_ignored, "Set {name} as Ignored?", ""
|
||||
confirm.remove_ignored, "Remove {name} from Ignored?", ""
|
||||
confirm.region_unset, "Your region is UNSET. Set it now?", ""
|
||||
dialog.resize_title, "Resize Terminal", ""
|
||||
dialog.resize_body, "Please resize the terminal to at least {rows} rows.", ""
|
||||
|
||||
[User Settings]
|
||||
user, "User"
|
||||
|
||||
@@ -86,6 +86,8 @@ confirm.remove_favorite, "Удалить {name} из избранного?", ""
|
||||
confirm.set_ignored, "Игнорировать {name}?", ""
|
||||
confirm.remove_ignored, "Убрать {name} из игнорируемых?", ""
|
||||
confirm.region_unset, "Ваш регион НЕ ЗАДАН. Установить сейчас?", ""
|
||||
dialog.resize_title, "Увеличьте окно", ""
|
||||
dialog.resize_body, "Пожалуйста, увеличьте окно до {rows} строк.", ""
|
||||
|
||||
[User Settings]
|
||||
user, "Пользователь"
|
||||
|
||||
@@ -8,6 +8,8 @@ import traceback
|
||||
import contact.ui.default_config as config
|
||||
from contact.utilities.input_handlers import get_list_input
|
||||
from contact.utilities.i18n import t
|
||||
from contact.ui.dialog import dialog
|
||||
from contact.utilities.i18n import t
|
||||
from contact.ui.colors import setup_colors
|
||||
from contact.ui.splash import draw_splash
|
||||
from contact.ui.control_ui import set_region, settings_menu
|
||||
@@ -20,6 +22,7 @@ def main(stdscr: curses.window) -> None:
|
||||
try:
|
||||
with contextlib.redirect_stdout(output_capture), contextlib.redirect_stderr(output_capture):
|
||||
setup_colors()
|
||||
ensure_min_rows(stdscr)
|
||||
draw_splash(stdscr)
|
||||
curses.curs_set(0)
|
||||
stdscr.keypad(True)
|
||||
@@ -50,6 +53,24 @@ def main(stdscr: curses.window) -> None:
|
||||
raise
|
||||
|
||||
|
||||
def ensure_min_rows(stdscr: curses.window, min_rows: int = 11) -> None:
|
||||
while True:
|
||||
rows, _ = stdscr.getmaxyx()
|
||||
if rows >= min_rows:
|
||||
return
|
||||
dialog(
|
||||
t("ui.dialog.resize_title", default="Resize Terminal"),
|
||||
t(
|
||||
"ui.dialog.resize_body",
|
||||
default="Please resize the terminal to at least {rows} rows.",
|
||||
rows=min_rows,
|
||||
),
|
||||
)
|
||||
curses.update_lines_cols()
|
||||
stdscr.clear()
|
||||
stdscr.refresh()
|
||||
|
||||
|
||||
logging.basicConfig( # Run `tail -f client.log` in another terminal to view live
|
||||
filename=config.log_file_path,
|
||||
level=logging.WARNING, # DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
||||
|
||||
Reference in New Issue
Block a user