Fix crashes when connecting to room fails
This commit is contained in:
parent
50e5b594ad
commit
6942777c1e
1 changed files with 6 additions and 5 deletions
|
|
@ -3,7 +3,7 @@ from typing import Any, Optional
|
||||||
import urwid
|
import urwid
|
||||||
|
|
||||||
from ..attributed_text_widget import ATWidget
|
from ..attributed_text_widget import ATWidget
|
||||||
from ..markup import Attributes
|
from ..markup import Attributes, AT
|
||||||
from .edit_widgets import EditWidget
|
from .edit_widgets import EditWidget
|
||||||
from .room_widget import RoomWidget
|
from .room_widget import RoomWidget
|
||||||
|
|
||||||
|
|
@ -51,12 +51,13 @@ class ChooseRoomWidget(urwid.WidgetWrap):
|
||||||
def could_not_connect(self, roomname: str) -> None:
|
def could_not_connect(self, roomname: str) -> None:
|
||||||
text = AT("Could not connect to ", attributes=self._error_attrs)
|
text = AT("Could not connect to ", attributes=self._error_attrs)
|
||||||
text += AT("&" + roomname, attributes=self._error_room_attrs)
|
text += AT("&" + roomname, attributes=self._error_room_attrs)
|
||||||
text += AT(".", attributes=self._error_attrs)
|
text += AT(".\n", attributes=self._error_attrs)
|
||||||
|
|
||||||
self.set_error(ATWidget(text, align=urwid.CENTER))
|
self.set_error(ATWidget(text, align=urwid.CENTER))
|
||||||
|
|
||||||
def invalid_room_name(self, reason: str) -> None:
|
def invalid_room_name(self, reason: str) -> None:
|
||||||
text = AT(f"Invalid room name: {reason}", attributes=self._error_attrs)
|
text = AT(f"Invalid room name: {reason}\n",
|
||||||
|
attributes=self._error_attrs)
|
||||||
self.set_error(ATWidget(text, align=urwid.CENTER))
|
self.set_error(ATWidget(text, align=urwid.CENTER))
|
||||||
|
|
||||||
class SingleRoomApplication(urwid.WidgetWrap):
|
class SingleRoomApplication(urwid.WidgetWrap):
|
||||||
|
|
@ -81,7 +82,7 @@ class SingleRoomApplication(urwid.WidgetWrap):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def switch_to_choose(self) -> None:
|
def switch_to_choose(self) -> None:
|
||||||
self.choose_room.could_not_connect(self.choose_room.edit.edit_text)
|
self.choose_room.could_not_connect(self.choose_room.edit.text)
|
||||||
self._w = self.choose_room
|
self._w = self.choose_room
|
||||||
|
|
||||||
def keypress(self, size: Any, key: str) -> Optional[str]:
|
def keypress(self, size: Any, key: str) -> Optional[str]:
|
||||||
|
|
@ -97,8 +98,8 @@ class SingleRoomApplication(urwid.WidgetWrap):
|
||||||
if roomname:
|
if roomname:
|
||||||
room = RoomWidget(roomname)
|
room = RoomWidget(roomname)
|
||||||
urwid.connect_signal(room, "close", self.switch_to_choose)
|
urwid.connect_signal(room, "close", self.switch_to_choose)
|
||||||
room.connect()
|
|
||||||
self._w = room
|
self._w = room
|
||||||
|
room.connect()
|
||||||
else:
|
else:
|
||||||
self.choose_room.invalid_room_name("too short")
|
self.choose_room.invalid_room_name("too short")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue