From ac172ec74411cecff65ff45285f676611eb923f6 Mon Sep 17 00:00:00 2001 From: Goffi Date: Fri, 2 Jun 2023 16:25:25 +0200 Subject: [PATCH] refactoring: rename `libervia.frontends.primitivus` to `libervia.tui` --- .../quick_frontend/quick_profile_manager.py | 2 +- .../{frontends/primitivus => tui}/__init__.py | 0 .../{frontends/primitivus => tui}/base.py | 58 +++++----- .../{frontends/primitivus => tui}/chat.py | 24 ++-- .../{frontends/primitivus => tui}/config.py | 8 +- .../primitivus => tui}/constants.py | 4 +- .../primitivus => tui}/contact_list.py | 14 +-- .../primitivus => tui}/game_tarot.py | 6 +- .../{frontends/primitivus => tui}/keys.py | 6 +- .../{frontends/primitivus => tui}/notify.py | 4 +- .../primitivus => tui}/profile_manager.py | 6 +- .../{frontends/primitivus => tui}/progress.py | 2 +- .../{frontends/primitivus => tui}/status.py | 4 +- .../{frontends/primitivus => tui}/widget.py | 10 +- .../{frontends/primitivus => tui}/xmlui.py | 106 +++++++++--------- setup.py | 4 +- 16 files changed, 129 insertions(+), 129 deletions(-) rename libervia/{frontends/primitivus => tui}/__init__.py (100%) rename libervia/{frontends/primitivus => tui}/base.py (94%) rename libervia/{frontends/primitivus => tui}/chat.py (97%) rename libervia/{frontends/primitivus => tui}/config.py (88%) rename libervia/{frontends/primitivus => tui}/constants.py (98%) rename libervia/{frontends/primitivus => tui}/contact_list.py (97%) rename libervia/{frontends/primitivus => tui}/game_tarot.py (99%) rename libervia/{frontends/primitivus => tui}/keys.py (94%) rename libervia/{frontends/primitivus => tui}/notify.py (97%) rename libervia/{frontends/primitivus => tui}/profile_manager.py (98%) rename libervia/{frontends/primitivus => tui}/progress.py (99%) rename libervia/{frontends/primitivus => tui}/status.py (97%) rename libervia/{frontends/primitivus => tui}/widget.py (92%) rename libervia/{frontends/primitivus => tui}/xmlui.py (81%) diff --git a/libervia/frontends/quick_frontend/quick_profile_manager.py b/libervia/frontends/quick_frontend/quick_profile_manager.py index 2367ad40..734fff04 100644 --- a/libervia/frontends/quick_frontend/quick_profile_manager.py +++ b/libervia/frontends/quick_frontend/quick_profile_manager.py @@ -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): diff --git a/libervia/frontends/primitivus/__init__.py b/libervia/tui/__init__.py similarity index 100% rename from libervia/frontends/primitivus/__init__.py rename to libervia/tui/__init__.py diff --git a/libervia/frontends/primitivus/base.py b/libervia/tui/base.py similarity index 94% rename from libervia/frontends/primitivus/base.py rename to libervia/tui/base.py index 9294f8f3..0f74cbfc 100644 --- a/libervia/frontends/primitivus/base.py +++ b/libervia/tui/base.py @@ -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() diff --git a/libervia/frontends/primitivus/chat.py b/libervia/tui/chat.py similarity index 97% rename from libervia/frontends/primitivus/chat.py rename to libervia/tui/chat.py index 28ee3376..8d451242 100644 --- a/libervia/frontends/primitivus/chat.py +++ b/libervia/tui/chat.py @@ -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} ) diff --git a/libervia/frontends/primitivus/config.py b/libervia/tui/config.py similarity index 88% rename from libervia/frontends/primitivus/config.py rename to libervia/tui/config.py index 08a86656..a958c56b 100644 --- a/libervia/frontends/primitivus/config.py +++ b/libervia/tui/config.py @@ -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 . -"""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 diff --git a/libervia/frontends/primitivus/constants.py b/libervia/tui/constants.py similarity index 98% rename from libervia/frontends/primitivus/constants.py rename to libervia/tui/constants.py index 2260df70..ec53efeb 100644 --- a/libervia/frontends/primitivus/constants.py +++ b/libervia/tui/constants.py @@ -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 = [ diff --git a/libervia/frontends/primitivus/contact_list.py b/libervia/tui/contact_list.py similarity index 97% rename from libervia/frontends/primitivus/contact_list.py rename to libervia/tui/contact_list.py index 7f05b15b..85e672e5 100644 --- a/libervia/frontends/primitivus/contact_list.py +++ b/libervia/tui/contact_list.py @@ -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: diff --git a/libervia/frontends/primitivus/game_tarot.py b/libervia/tui/game_tarot.py similarity index 99% rename from libervia/frontends/primitivus/game_tarot.py rename to libervia/tui/game_tarot.py index 2ddcd6c2..a5ad8cd2 100644 --- a/libervia/frontends/primitivus/game_tarot.py +++ b/libervia/tui/game_tarot.py @@ -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): diff --git a/libervia/frontends/primitivus/keys.py b/libervia/tui/keys.py similarity index 94% rename from libervia/frontends/primitivus/keys.py rename to libervia/tui/keys.py index d7000b81..8af42c9e 100644 --- a/libervia/frontends/primitivus/keys.py +++ b/libervia/tui/keys.py @@ -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", diff --git a/libervia/frontends/primitivus/notify.py b/libervia/tui/notify.py similarity index 97% rename from libervia/frontends/primitivus/notify.py rename to libervia/tui/notify.py index c60494be..65950518 100644 --- a/libervia/frontends/primitivus/notify.py +++ b/libervia/tui/notify.py @@ -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 diff --git a/libervia/frontends/primitivus/profile_manager.py b/libervia/tui/profile_manager.py similarity index 98% rename from libervia/frontends/primitivus/profile_manager.py rename to libervia/tui/profile_manager.py index d95499ba..e424da0b 100644 --- a/libervia/frontends/primitivus/profile_manager.py +++ b/libervia/tui/profile_manager.py @@ -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 diff --git a/libervia/frontends/primitivus/progress.py b/libervia/tui/progress.py similarity index 99% rename from libervia/frontends/primitivus/progress.py rename to libervia/tui/progress.py index f14fcc46..ca71e0f6 100644 --- a/libervia/frontends/primitivus/progress.py +++ b/libervia/tui/progress.py @@ -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 diff --git a/libervia/frontends/primitivus/status.py b/libervia/tui/status.py similarity index 97% rename from libervia/frontends/primitivus/status.py rename to libervia/tui/status.py index efaa9d2d..3b5ae503 100644 --- a/libervia/frontends/primitivus/status.py +++ b/libervia/tui/status.py @@ -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): diff --git a/libervia/frontends/primitivus/widget.py b/libervia/tui/widget.py similarity index 92% rename from libervia/frontends/primitivus/widget.py rename to libervia/tui/widget.py index 514aa2c4..160cc563 100644 --- a/libervia/frontends/primitivus/widget.py +++ b/libervia/tui/widget.py @@ -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) diff --git a/libervia/frontends/primitivus/xmlui.py b/libervia/tui/xmlui.py similarity index 81% rename from libervia/frontends/primitivus/xmlui.py rename to libervia/tui/xmlui.py index 4851381f..2b11401a 100644 --- a/libervia/frontends/primitivus/xmlui.py +++ b/libervia/tui/xmlui.py @@ -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: diff --git a/setup.py b/setup.py index 84320a2d..d76ff62b 100644 --- a/setup.py +++ b/setup.py @@ -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,