refactoring: rename libervia.frontends.primitivus to libervia.tui

This commit is contained in:
Goffi 2023-06-02 16:25:25 +02:00
commit ac172ec744
16 changed files with 129 additions and 129 deletions

View file

@ -21,7 +21,7 @@ from libervia.backend.core.i18n import _
from libervia.backend.core import log as logging
log = logging.getLogger(__name__)
from libervia.frontends.primitivus.constants import Const as C
from libervia.tui.constants import Const as C
class ProfileRecord(object):

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2016 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -18,7 +18,7 @@
from libervia.backend.core.i18n import _, D_
from libervia.frontends.primitivus.constants import Const as C
from libervia.tui.constants import Const as C
from libervia.backend.core import log_config
log_config.sat_configure(C.LOG_BACKEND_STANDARD, C)
from libervia.backend.core import log as logging
@ -30,14 +30,14 @@ from urwid_satext import sat_widgets
from libervia.frontends.quick_frontend.quick_app import QuickApp
from libervia.frontends.quick_frontend import quick_utils
from libervia.frontends.quick_frontend import quick_chat
from libervia.frontends.primitivus.profile_manager import ProfileManager
from libervia.frontends.primitivus.contact_list import ContactList
from libervia.frontends.primitivus.chat import Chat
from libervia.frontends.primitivus import xmlui
from libervia.frontends.primitivus.progress import Progress
from libervia.frontends.primitivus.notify import Notify
from libervia.frontends.primitivus.keys import action_key_map as a_key
from libervia.frontends.primitivus import config
from libervia.tui.profile_manager import ProfileManager
from libervia.tui.contact_list import ContactList
from libervia.tui.chat import Chat
from libervia.tui import xmlui
from libervia.tui.progress import Progress
from libervia.tui.notify import Notify
from libervia.tui.keys import action_key_map as a_key
from libervia.tui import config
from libervia.frontends.tools.misc import InputHistory
from libervia.backend.tools.common import dynamic_import
from libervia.frontends.tools import jid
@ -186,8 +186,8 @@ class EditBar(sat_widgets.ModalEdit):
return super(EditBar, self).keypress(size, key)
class PrimitivusTopWidget(sat_widgets.FocusPile):
"""Top most widget used in Primitivus"""
class LiberviaTUITopWidget(sat_widgets.FocusPile):
"""Top most widget used in LiberviaTUI"""
_focus_inversed = True
positions = ('menu', 'body', 'notif_bar', 'edit_bar')
can_hide = ('menu', 'notif_bar')
@ -199,7 +199,7 @@ class PrimitivusTopWidget(sat_widgets.FocusPile):
self._edit_bar = edit_bar
self._hidden = {'notif_bar'}
self._focus_extra = False
super(PrimitivusTopWidget, self).__init__([('pack', self._menu), self._body, ('pack', self._edit_bar)])
super(LiberviaTUITopWidget, self).__init__([('pack', self._menu), self._body, ('pack', self._edit_bar)])
for position in self.positions:
setattr(self,
position,
@ -236,7 +236,7 @@ class PrimitivusTopWidget(sat_widgets.FocusPile):
elif key in ('e', '4'):
focus = 'edit_bar'
else:
return super(PrimitivusTopWidget, self).keypress(size, key)
return super(LiberviaTUITopWidget, self).keypress(size, key)
if focus in self._hidden:
return
@ -244,7 +244,7 @@ class PrimitivusTopWidget(sat_widgets.FocusPile):
self.focus_position = self.get_visible_positions().index(focus)
return
return super(PrimitivusTopWidget, self).keypress(size, key)
return super(LiberviaTUITopWidget, self).keypress(size, key)
def widget_get(self, position):
if not position in self.positions:
@ -278,7 +278,7 @@ class PrimitivusTopWidget(sat_widgets.FocusPile):
self.hide_switch(position)
class PrimitivusApp(QuickApp, InputHistory):
class LiberviaTUIApp(QuickApp, InputHistory):
MB_HANDLER = False
AVATARS_HANDLER = False
@ -379,7 +379,7 @@ class PrimitivusApp(QuickApp, InputHistory):
self._early_popup = popup
else:
self.show_pop_up(popup)
super(PrimitivusApp, self).post_init(self.main_widget)
super(LiberviaTUIApp, self).post_init(self.main_widget)
def keys_to_text(self, keys):
"""Generator return normal text from urwid keys"""
@ -398,7 +398,7 @@ class PrimitivusApp(QuickApp, InputHistory):
## paste detection/handling
if (len(input_) > 1 and # XXX: it may be needed to increase this value if buffer
not isinstance(input_[0], tuple) and # or other things result in several chars at once
not 'window resize' in input_): # (e.g. using Primitivus through ssh). Need some testing
not 'window resize' in input_): # (e.g. using LiberviaTUI through ssh). Need some testing
# and experience to adjust value.
if input_[0] == 'begin paste' and not self._bracketed_paste:
log.info(u"Bracketed paste mode detected")
@ -554,7 +554,7 @@ class PrimitivusApp(QuickApp, InputHistory):
self.editBar = EditBar(self)
self.menu_roller = self._build_menu_roller()
self.main_widget = PrimitivusTopWidget(self.center_part, self.menu_roller, self.notif_bar, self.editBar)
self.main_widget = LiberviaTUITopWidget(self.center_part, self.menu_roller, self.notif_bar, self.editBar)
return self.main_widget
def plugging_profiles(self):
@ -631,9 +631,9 @@ class PrimitivusApp(QuickApp, InputHistory):
@param align: same as for [urwid.Overlay]
"""
if width == None:
width = 75 if isinstance(pop_up_widget, xmlui.PrimitivusNoteDialog) else 135
width = 75 if isinstance(pop_up_widget, xmlui.LiberviaTUINoteDialog) else 135
if height == None:
height = 20 if isinstance(pop_up_widget, xmlui.PrimitivusNoteDialog) else 40
height = 20 if isinstance(pop_up_widget, xmlui.LiberviaTUINoteDialog) else 40
if not isinstance(self.loop.widget, urwid.Overlay):
display_widget = urwid.Overlay(
pop_up_widget, self.main_widget, align, width, valign, height)
@ -651,7 +651,7 @@ class PrimitivusApp(QuickApp, InputHistory):
if widget is None or widget is not None and widget != self.selected_widget:
# we ignore notification if the widget is selected but we can
# still do a desktop notification is the X window has not the focus
super(PrimitivusApp, self).notify(type_, entity, message, subject, callback, cb_args, widget, profile)
super(LiberviaTUIApp, self).notify(type_, entity, message, subject, callback, cb_args, widget, profile)
# we don't want notifications without message on desktop
if message is not None and not self.x_notify.has_focus():
if message is None:
@ -665,7 +665,7 @@ class PrimitivusApp(QuickApp, InputHistory):
"""Method called when a new widget is created
if suitable, the widget will be displayed
@param widget(widget.PrimitivusWidget): created widget
@param widget(widget.LiberviaTUIWidget): created widget
@param user_action(bool): if True, the widget has been created following an
explicit user action. In this case, the widget may get focus immediately
"""
@ -776,7 +776,7 @@ class PrimitivusApp(QuickApp, InputHistory):
def on_notification(self, notif_bar):
"""Called when a new notification has been received"""
if not isinstance(self.main_widget, PrimitivusTopWidget):
if not isinstance(self.main_widget, LiberviaTUITopWidget):
#if we are not in the main configuration, we ignore the notifications bar
return
if self.notif_bar.can_hide():
@ -790,23 +790,23 @@ class PrimitivusApp(QuickApp, InputHistory):
self.alert(_("Error"), _(u"Unmanaged action"))
def room_joined_handler(self, room_jid_s, room_nicks, user_nick, subject, profile):
super(PrimitivusApp, self).room_joined_handler(room_jid_s, room_nicks, user_nick, subject, profile)
super(LiberviaTUIApp, self).room_joined_handler(room_jid_s, room_nicks, user_nick, subject, profile)
# if self.selected_widget is None:
# for contact_list in self.widgets.get_widgets(ContactList):
# if profile in contact_list.profiles:
# contact_list.set_focus(jid.JID(room_jid_s), True)
def progress_started_handler(self, pid, metadata, profile):
super(PrimitivusApp, self).progress_started_handler(pid, metadata, profile)
super(LiberviaTUIApp, self).progress_started_handler(pid, metadata, profile)
self.add_progress(pid, metadata.get('name', _(u'unkown')), profile)
def progress_finished_handler(self, pid, metadata, profile):
log.info(u"Progress {} finished".format(pid))
super(PrimitivusApp, self).progress_finished_handler(pid, metadata, profile)
super(LiberviaTUIApp, self).progress_finished_handler(pid, metadata, profile)
def progress_error_handler(self, pid, err_msg, profile):
log.warning(u"Progress {pid} error: {err_msg}".format(pid=pid, err_msg=err_msg))
super(PrimitivusApp, self).progress_error_handler(pid, err_msg, profile)
super(LiberviaTUIApp, self).progress_error_handler(pid, err_msg, profile)
##DIALOGS CALLBACKS##
@ -860,4 +860,4 @@ class PrimitivusApp(QuickApp, InputHistory):
log.warning(u"No ContactList widget found for profile {}".format(profile))
if __name__ == '__main__':
PrimitivusApp().start()
LiberviaTUIApp().start()

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -27,11 +27,11 @@ from libervia.backend.core import log as logging
from libervia.frontends.quick_frontend import quick_widgets
from libervia.frontends.quick_frontend import quick_chat
from libervia.frontends.quick_frontend import quick_games
from libervia.frontends.primitivus import game_tarot
from libervia.frontends.primitivus.constants import Const as C
from libervia.frontends.primitivus.keys import action_key_map as a_key
from libervia.frontends.primitivus.widget import PrimitivusWidget
from libervia.frontends.primitivus.contact_list import ContactList
from libervia.tui import game_tarot
from libervia.tui.constants import Const as C
from libervia.tui.keys import action_key_map as a_key
from libervia.tui.widget import LiberviaTUIWidget
from libervia.tui.contact_list import ContactList
log = logging.getLogger(__name__)
@ -283,7 +283,7 @@ class OccupantsWidget(urwid.WidgetWrap):
self.parent.host.redraw() # FIXME: should not be necessary
class Chat(PrimitivusWidget, quick_chat.QuickChat):
class Chat(LiberviaTUIWidget, quick_chat.QuickChat):
def __init__(self, host, target, type_=C.CHAT_ONE2ONE, nick=None, occupants=None,
subject=None, statuses=None, profiles=None):
self.filters = [] # list of filter callbacks to apply
@ -292,7 +292,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
self.chat_widget = urwid.Frame(self.mess_widgets)
self.chat_colums = urwid.Columns([("weight", 8, self.chat_widget)])
self.pile = urwid.Pile([self.chat_colums])
PrimitivusWidget.__init__(self, self.pile, target)
LiberviaTUIWidget.__init__(self, self.pile, target)
quick_chat.QuickChat.__init__(
self, host, target, type_, nick, occupants, subject, statuses,
profiles=profiles
@ -444,7 +444,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
message to be notified.
"""
if message.attachments:
# FIXME: Q&D way to see attachments in Primitivus
# FIXME: Q&D way to see attachments in LiberviaTUI
# it should be done in a more user friendly way
for lang, body in message.message.items():
for attachment in message.attachments:
@ -633,7 +633,7 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
self.focus_marker_set = False
def notify(self, contact="somebody", msg=""):
"""Notify the user of a new message if primitivus doesn't have the focus.
"""Notify the user of a new message if Libervia TUI doesn't have the focus.
@param contact (unicode): contact who wrote to the users
@param msg (unicode): the message that has been received
@ -649,11 +649,11 @@ class Chat(PrimitivusWidget, quick_chat.QuickChat):
if not self.host.x_notify.has_focus():
if self.type == C.CHAT_ONE2ONE:
self.host.x_notify.send_notification(
_("Primitivus: %s is talking to you") % contact
_("LiberviaTUI: %s is talking to you") % contact
)
elif self.nick is not None and self.nick.lower() in msg.lower():
self.host.x_notify.send_notification(
_("Primitivus: %(user)s mentioned you in room '%(room)s'")
_("LiberviaTUI: %(user)s mentioned you in room '%(room)s'")
% {"user": contact, "room": self.target}
)

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""This module manage configuration specific to Primitivus"""
"""This module manage configuration specific to LiberviaTUI"""
from libervia.frontends.primitivus.constants import Const as C
from libervia.frontends.primitivus.keys import action_key_map
from libervia.tui.constants import Const as C
from libervia.tui.keys import action_key_map
import configparser

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -23,7 +23,7 @@ class Const(constants.Const):
APP_NAME = "Libervia TUI"
APP_COMPONENT = "TUI"
APP_NAME_ALT = "Primitivus"
APP_NAME_ALT = "LiberviaTUI"
APP_NAME_FILE = "libervia_tui"
CONFIG_SECTION = APP_COMPONENT.lower()
PALETTE = [

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -21,10 +21,10 @@ from libervia.backend.core.i18n import _
import urwid
from urwid_satext import sat_widgets
from libervia.frontends.quick_frontend.quick_contact_list import QuickContactList
from libervia.frontends.primitivus.status import StatusBar
from libervia.frontends.primitivus.constants import Const as C
from libervia.frontends.primitivus.keys import action_key_map as a_key
from libervia.frontends.primitivus.widget import PrimitivusWidget
from libervia.tui.status import StatusBar
from libervia.tui.constants import Const as C
from libervia.tui.keys import action_key_map as a_key
from libervia.tui.widget import LiberviaTUIWidget
from libervia.frontends.tools import jid
from libervia.backend.core import log as logging
@ -32,7 +32,7 @@ log = logging.getLogger(__name__)
from libervia.frontends.quick_frontend import quick_widgets
class ContactList(PrimitivusWidget, QuickContactList):
class ContactList(LiberviaTUIWidget, QuickContactList):
PROFILES_MULTIPLE = False
PROFILES_ALLOW_NONE = False
signals = ["click", "change"]
@ -47,7 +47,7 @@ class ContactList(PrimitivusWidget, QuickContactList):
# we now build the widget
self.status_bar = StatusBar(host)
self.frame = sat_widgets.FocusFrame(self._build_list(), None, self.status_bar)
PrimitivusWidget.__init__(self, self.frame, _("Contacts"))
LiberviaTUIWidget.__init__(self, self.frame, _("Contacts"))
if on_click:
urwid.connect_signal(self, "click", on_click, user_data)
if on_change:

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -22,8 +22,8 @@ import urwid
from urwid_satext import sat_widgets
from libervia.frontends.tools.games import TarotCard
from libervia.frontends.quick_frontend.quick_game_tarot import QuickTarotGame
from libervia.frontends.primitivus import xmlui
from libervia.frontends.primitivus.keys import action_key_map as a_key
from libervia.tui import xmlui
from libervia.tui.keys import action_key_map as a_key
class CardDisplayer(urwid.Text):

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -42,8 +42,8 @@ action_key_map.update(
# global menu
("menu_global", "APP_QUIT"): "ctrl x",
("menu_global", "ROOM_JOIN"): "meta j",
# primitivus widgets
("primitivus_widget", "DECORATION_HIDE"): "meta l",
# Libervia TUI widgets
("libervia_tui_widget", "DECORATION_HIDE"): "meta l",
# contact list
("contact_list", "STATUS_HIDE"): "meta s",
("contact_list", "DISCONNECTED_HIDE"): "meta d",

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -71,7 +71,7 @@ class Notify(object):
def send_fd_notification(self, summ_mess, body_mess=""):
"""Send notification with the FreeDesktop D-Bus API"""
if self.freedesktop_int:
app_name = "Primitivus"
app_name = "LiberviaTUI"
replaces_id = 0
app_icon = ""
summary = summ_mess

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -22,8 +22,8 @@ from libervia.backend.core import log as logging
log = logging.getLogger(__name__)
from libervia.frontends.quick_frontend.quick_profile_manager import QuickProfileManager
from libervia.frontends.primitivus.constants import Const as C
from libervia.frontends.primitivus.keys import action_key_map as a_key
from libervia.tui.constants import Const as C
from libervia.tui.keys import action_key_map as a_key
from urwid_satext import sat_widgets
import urwid

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2013-2016 Adrien Cossa (souliane@mailoo.org)
# This program is free software: you can redistribute it and/or modify
@ -21,7 +21,7 @@ from libervia.backend.core.i18n import _
import urwid
from urwid_satext import sat_widgets
from libervia.frontends.quick_frontend.constants import Const as commonConst
from libervia.frontends.primitivus.constants import Const as C
from libervia.tui.constants import Const as C
class StatusBar(urwid.Columns):

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -22,11 +22,11 @@ from libervia.backend.core import log as logging
log = logging.getLogger(__name__)
import urwid
from urwid_satext import sat_widgets
from libervia.frontends.primitivus.keys import action_key_map as a_key
from libervia.tui.keys import action_key_map as a_key
class PrimitivusWidget(urwid.WidgetWrap):
"""Base widget for Primitivus"""
class LiberviaTUIWidget(urwid.WidgetWrap):
"""Base widget for LiberviaTUI"""
def __init__(self, w, title=""):
self._title = title
@ -89,7 +89,7 @@ class PrimitivusWidget(urwid.WidgetWrap):
show = not self.decoration_visible
self.show_decoration(show)
else:
return super(PrimitivusWidget, self).keypress(size, key)
return super(LiberviaTUIWidget, self).keypress(size, key)
def _get_decoration(self, widget):
return sat_widgets.LabelLine(widget, self.title)

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Primitivus: a SAT frontend
# Libervia TUI
# Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
# This program is free software: you can redistribute it and/or modify
@ -26,13 +26,13 @@ from urwid_satext import files_management
from libervia.backend.core.log import getLogger
log = getLogger(__name__)
from libervia.frontends.primitivus.constants import Const as C
from libervia.frontends.primitivus.widget import PrimitivusWidget
from libervia.tui.constants import Const as C
from libervia.tui.widget import LiberviaTUIWidget
from libervia.frontends.tools import xmlui
class PrimitivusEvents(object):
""" Used to manage change event of Primitivus widgets """
class LiberviaTUIEvents(object):
""" Used to manage change event of LiberviaTUI widgets """
def _event_callback(self, ctrl, *args, **kwargs):
"""" Call xmlui callback and ignore any extra argument """
@ -43,26 +43,26 @@ class PrimitivusEvents(object):
urwid.connect_signal(self, "change", self._event_callback, callback)
class PrimitivusEmptyWidget(xmlui.EmptyWidget, urwid.Text):
class LiberviaTUIEmptyWidget(xmlui.EmptyWidget, urwid.Text):
def __init__(self, _xmlui_parent):
urwid.Text.__init__(self, "")
class PrimitivusTextWidget(xmlui.TextWidget, urwid.Text):
class LiberviaTUITextWidget(xmlui.TextWidget, urwid.Text):
def __init__(self, _xmlui_parent, value, read_only=False):
urwid.Text.__init__(self, value)
class PrimitivusLabelWidget(xmlui.LabelWidget, PrimitivusTextWidget):
class LiberviaTUILabelWidget(xmlui.LabelWidget, LiberviaTUITextWidget):
def __init__(self, _xmlui_parent, value):
super(PrimitivusLabelWidget, self).__init__(_xmlui_parent, value + ": ")
super(LiberviaTUILabelWidget, self).__init__(_xmlui_parent, value + ": ")
class PrimitivusJidWidget(xmlui.JidWidget, PrimitivusTextWidget):
class LiberviaTUIJidWidget(xmlui.JidWidget, LiberviaTUITextWidget):
pass
class PrimitivusDividerWidget(xmlui.DividerWidget, urwid.Divider):
class LiberviaTUIDividerWidget(xmlui.DividerWidget, urwid.Divider):
def __init__(self, _xmlui_parent, style="line"):
if style == "line":
div_char = "─"
@ -81,8 +81,8 @@ class PrimitivusDividerWidget(xmlui.DividerWidget, urwid.Divider):
urwid.Divider.__init__(self, div_char)
class PrimitivusStringWidget(
xmlui.StringWidget, sat_widgets.AdvancedEdit, PrimitivusEvents
class LiberviaTUIStringWidget(
xmlui.StringWidget, sat_widgets.AdvancedEdit, LiberviaTUIEvents
):
def __init__(self, _xmlui_parent, value, read_only=False):
sat_widgets.AdvancedEdit.__init__(self, edit_text=value)
@ -91,7 +91,7 @@ class PrimitivusStringWidget(
def selectable(self):
if self.read_only:
return False
return super(PrimitivusStringWidget, self).selectable()
return super(LiberviaTUIStringWidget, self).selectable()
def _xmlui_set_value(self, value):
self.set_edit_text(value)
@ -100,12 +100,12 @@ class PrimitivusStringWidget(
return self.get_edit_text()
class PrimitivusJidInputWidget(xmlui.JidInputWidget, PrimitivusStringWidget):
class LiberviaTUIJidInputWidget(xmlui.JidInputWidget, LiberviaTUIStringWidget):
pass
class PrimitivusPasswordWidget(
xmlui.PasswordWidget, sat_widgets.Password, PrimitivusEvents
class LiberviaTUIPasswordWidget(
xmlui.PasswordWidget, sat_widgets.Password, LiberviaTUIEvents
):
def __init__(self, _xmlui_parent, value, read_only=False):
sat_widgets.Password.__init__(self, edit_text=value)
@ -114,7 +114,7 @@ class PrimitivusPasswordWidget(
def selectable(self):
if self.read_only:
return False
return super(PrimitivusPasswordWidget, self).selectable()
return super(LiberviaTUIPasswordWidget, self).selectable()
def _xmlui_set_value(self, value):
self.set_edit_text(value)
@ -123,8 +123,8 @@ class PrimitivusPasswordWidget(
return self.get_edit_text()
class PrimitivusTextBoxWidget(
xmlui.TextBoxWidget, sat_widgets.AdvancedEdit, PrimitivusEvents
class LiberviaTUITextBoxWidget(
xmlui.TextBoxWidget, sat_widgets.AdvancedEdit, LiberviaTUIEvents
):
def __init__(self, _xmlui_parent, value, read_only=False):
sat_widgets.AdvancedEdit.__init__(self, edit_text=value, multiline=True)
@ -133,7 +133,7 @@ class PrimitivusTextBoxWidget(
def selectable(self):
if self.read_only:
return False
return super(PrimitivusTextBoxWidget, self).selectable()
return super(LiberviaTUITextBoxWidget, self).selectable()
def _xmlui_set_value(self, value):
self.set_edit_text(value)
@ -142,7 +142,7 @@ class PrimitivusTextBoxWidget(
return self.get_edit_text()
class PrimitivusBoolWidget(xmlui.BoolWidget, urwid.CheckBox, PrimitivusEvents):
class LiberviaTUIBoolWidget(xmlui.BoolWidget, urwid.CheckBox, LiberviaTUIEvents):
def __init__(self, _xmlui_parent, state, read_only=False):
urwid.CheckBox.__init__(self, "", state=state)
self.read_only = read_only
@ -150,7 +150,7 @@ class PrimitivusBoolWidget(xmlui.BoolWidget, urwid.CheckBox, PrimitivusEvents):
def selectable(self):
if self.read_only:
return False
return super(PrimitivusBoolWidget, self).selectable()
return super(LiberviaTUIBoolWidget, self).selectable()
def _xmlui_set_value(self, value):
self.set_state(value == "true")
@ -159,7 +159,7 @@ class PrimitivusBoolWidget(xmlui.BoolWidget, urwid.CheckBox, PrimitivusEvents):
return C.BOOL_TRUE if self.get_state() else C.BOOL_FALSE
class PrimitivusIntWidget(xmlui.IntWidget, sat_widgets.AdvancedEdit, PrimitivusEvents):
class LiberviaTUIIntWidget(xmlui.IntWidget, sat_widgets.AdvancedEdit, LiberviaTUIEvents):
def __init__(self, _xmlui_parent, value, read_only=False):
sat_widgets.AdvancedEdit.__init__(self, edit_text=value)
self.read_only = read_only
@ -167,7 +167,7 @@ class PrimitivusIntWidget(xmlui.IntWidget, sat_widgets.AdvancedEdit, PrimitivusE
def selectable(self):
if self.read_only:
return False
return super(PrimitivusIntWidget, self).selectable()
return super(LiberviaTUIIntWidget, self).selectable()
def _xmlui_set_value(self, value):
self.set_edit_text(value)
@ -176,8 +176,8 @@ class PrimitivusIntWidget(xmlui.IntWidget, sat_widgets.AdvancedEdit, PrimitivusE
return self.get_edit_text()
class PrimitivusButtonWidget(
xmlui.ButtonWidget, sat_widgets.CustomButton, PrimitivusEvents
class LiberviaTUIButtonWidget(
xmlui.ButtonWidget, sat_widgets.CustomButton, LiberviaTUIEvents
):
def __init__(self, _xmlui_parent, value, click_callback):
sat_widgets.CustomButton.__init__(self, value, on_press=click_callback)
@ -186,7 +186,7 @@ class PrimitivusButtonWidget(
urwid.connect_signal(self, "click", callback)
class PrimitivusListWidget(xmlui.ListWidget, sat_widgets.List, PrimitivusEvents):
class LiberviaTUIListWidget(xmlui.ListWidget, sat_widgets.List, LiberviaTUIEvents):
def __init__(self, _xmlui_parent, options, selected, flags):
sat_widgets.List.__init__(self, options=options, style=flags)
self._xmlui_select_values(selected)
@ -216,7 +216,7 @@ class PrimitivusListWidget(xmlui.ListWidget, sat_widgets.List, PrimitivusEvents)
self._xmlui_select_values(selected)
class PrimitivusJidsListWidget(xmlui.ListWidget, sat_widgets.List, PrimitivusEvents):
class LiberviaTUIJidsListWidget(xmlui.ListWidget, sat_widgets.List, LiberviaTUIEvents):
def __init__(self, _xmlui_parent, jids, styles):
sat_widgets.List.__init__(
self,
@ -242,8 +242,8 @@ class PrimitivusJidsListWidget(xmlui.ListWidget, sat_widgets.List, PrimitivusEve
return [jid_ for jid_ in self.get_all_values() if jid_]
class PrimitivusAdvancedListContainer(
xmlui.AdvancedListContainer, sat_widgets.TableContainer, PrimitivusEvents
class LiberviaTUIAdvancedListContainer(
xmlui.AdvancedListContainer, sat_widgets.TableContainer, LiberviaTUIEvents
):
def __init__(self, _xmlui_parent, columns, selectable="no"):
options = {"ADAPT": ()}
@ -270,7 +270,7 @@ class PrimitivusAdvancedListContainer(
urwid.connect_signal(self, "click", self._event_callback, callback)
class PrimitivusPairsContainer(xmlui.PairsContainer, sat_widgets.TableContainer):
class LiberviaTUIPairsContainer(xmlui.PairsContainer, sat_widgets.TableContainer):
def __init__(self, _xmlui_parent):
options = {"ADAPT": (0,), "HIGHLIGHT": (0,)}
if self._xmlui_main.type == "param":
@ -278,17 +278,17 @@ class PrimitivusPairsContainer(xmlui.PairsContainer, sat_widgets.TableContainer)
sat_widgets.TableContainer.__init__(self, columns=2, options=options)
def _xmlui_append(self, widget):
if isinstance(widget, PrimitivusEmptyWidget):
if isinstance(widget, LiberviaTUIEmptyWidget):
# we don't want highlight on empty widgets
widget = urwid.AttrMap(widget, "default")
self.add_widget(widget)
class PrimitivusLabelContainer(PrimitivusPairsContainer, xmlui.LabelContainer):
class LiberviaTUILabelContainer(LiberviaTUIPairsContainer, xmlui.LabelContainer):
pass
class PrimitivusTabsContainer(xmlui.TabsContainer, sat_widgets.TabsContainer):
class LiberviaTUITabsContainer(xmlui.TabsContainer, sat_widgets.TabsContainer):
def __init__(self, _xmlui_parent):
sat_widgets.TabsContainer.__init__(self)
@ -296,12 +296,12 @@ class PrimitivusTabsContainer(xmlui.TabsContainer, sat_widgets.TabsContainer):
self.body.append(widget)
def _xmlui_add_tab(self, label, selected):
tab = PrimitivusVerticalContainer(None)
tab = LiberviaTUIVerticalContainer(None)
self.add_tab(label, tab, selected)
return tab
class PrimitivusVerticalContainer(xmlui.VerticalContainer, urwid.ListBox):
class LiberviaTUIVerticalContainer(xmlui.VerticalContainer, urwid.ListBox):
BOX_HEIGHT = 5
def __init__(self, _xmlui_parent):
@ -321,13 +321,13 @@ class PrimitivusVerticalContainer(xmlui.VerticalContainer, urwid.ListBox):
if isinstance(widget, urwid.BoxAdapter):
widget.height = maxrow
self._last_size = size
return super(PrimitivusVerticalContainer, self).render(size, focus)
return super(LiberviaTUIVerticalContainer, self).render(size, focus)
### Dialogs ###
class PrimitivusDialog(object):
class LiberviaTUIDialog(object):
def __init__(self, _xmlui_parent):
self.host = _xmlui_parent.host
@ -338,25 +338,25 @@ class PrimitivusDialog(object):
self.host.remove_pop_up(self)
class PrimitivusMessageDialog(PrimitivusDialog, xmlui.MessageDialog, sat_widgets.Alert):
class LiberviaTUIMessageDialog(LiberviaTUIDialog, xmlui.MessageDialog, sat_widgets.Alert):
def __init__(self, _xmlui_parent, title, message, level):
PrimitivusDialog.__init__(self, _xmlui_parent)
LiberviaTUIDialog.__init__(self, _xmlui_parent)
xmlui.MessageDialog.__init__(self, _xmlui_parent)
sat_widgets.Alert.__init__(
self, title, message, ok_cb=lambda __: self._xmlui_close()
)
class PrimitivusNoteDialog(xmlui.NoteDialog, PrimitivusMessageDialog):
class LiberviaTUINoteDialog(xmlui.NoteDialog, LiberviaTUIMessageDialog):
# TODO: separate NoteDialog
pass
class PrimitivusConfirmDialog(
PrimitivusDialog, xmlui.ConfirmDialog, sat_widgets.ConfirmDialog
class LiberviaTUIConfirmDialog(
LiberviaTUIDialog, xmlui.ConfirmDialog, sat_widgets.ConfirmDialog
):
def __init__(self, _xmlui_parent, title, message, level, buttons_set):
PrimitivusDialog.__init__(self, _xmlui_parent)
LiberviaTUIDialog.__init__(self, _xmlui_parent)
xmlui.ConfirmDialog.__init__(self, _xmlui_parent)
sat_widgets.ConfirmDialog.__init__(
self,
@ -367,12 +367,12 @@ class PrimitivusConfirmDialog(
)
class PrimitivusFileDialog(
PrimitivusDialog, xmlui.FileDialog, files_management.FileDialog
class LiberviaTUIFileDialog(
LiberviaTUIDialog, xmlui.FileDialog, files_management.FileDialog
):
def __init__(self, _xmlui_parent, title, message, level, filetype):
# TODO: message is not managed yet
PrimitivusDialog.__init__(self, _xmlui_parent)
LiberviaTUIDialog.__init__(self, _xmlui_parent)
xmlui.FileDialog.__init__(self, _xmlui_parent)
style = []
if filetype == C.XMLUI_DATA_FILETYPE_DIR:
@ -391,8 +391,8 @@ class GenericFactory(object):
def __getattr__(self, attr):
if attr.startswith("create"):
cls = globals()[
"Primitivus" + attr[6:]
] # XXX: we prefix with "Primitivus" to work around an Urwid bug, WidgetMeta in Urwid don't manage multiple inheritance with same names
"LiberviaTUI" + attr[6:]
] # XXX: we prefix with "LiberviaTUI" to work around an Urwid bug, WidgetMeta in Urwid don't manage multiple inheritance with same names
return cls
@ -404,7 +404,7 @@ class WidgetFactory(GenericFactory):
return cls
class XMLUIPanel(xmlui.XMLUIPanel, PrimitivusWidget):
class XMLUIPanel(xmlui.XMLUIPanel, LiberviaTUIWidget):
widget_factory = WidgetFactory()
def __init__(
@ -430,11 +430,11 @@ class XMLUIPanel(xmlui.XMLUIPanel, PrimitivusWidget):
ignore=ignore,
profile=profile,
)
PrimitivusWidget.__init__(self, self.main_cont, self.xmlui_title)
LiberviaTUIWidget.__init__(self, self.main_cont, self.xmlui_title)
def _parse_childs(self, _xmlui_parent, current_node, wanted=("container",), data=None):
# Small hack to always have a VerticalContainer as main container in Primitivus.
# Small hack to always have a VerticalContainer as main container in LiberviaTUI.
# this used to be the default behaviour for all frontends, but now
# TabsContainer can also be the main container.
if _xmlui_parent is self:

View file

@ -137,8 +137,8 @@ setup(
"jp = libervia.cli.base:LiberviaCli.run",
# TUI + alias
"libervia-tui = libervia.frontends.primitivus.base:PrimitivusApp.run",
"primitivus = libervia.frontends.primitivus.base:PrimitivusApp.run",
"libervia-tui = libervia.tui.base:LiberviaTUIApp.run",
"primitivus = libervia.tui.base:LiberviaTUIApp.run",
],
},
zip_safe=False,