refactoring: rename libervia.frontends.primitivus to libervia.tui
This commit is contained in:
parent
fd16770c19
commit
ac172ec744
16 changed files with 129 additions and 129 deletions
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
@ -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}
|
||||
)
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
@ -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 = [
|
||||
|
|
@ -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:
|
||||
|
|
@ -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):
|
||||
|
|
@ -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",
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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):
|
||||
|
|
@ -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)
|
||||
|
|
@ -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:
|
||||
4
setup.py
4
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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue