Mercurial > libervia-desktop-kivy
changeset 243:50f7c000b4ae
xmlui: implemented MessageDialog
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 03 Jan 2019 20:37:55 +0100 |
parents | c2503168fab7 |
children | 5bd94bc08f5c |
files | cagou/core/dialog.py cagou/core/xmlui.py cagou/kv/dialog.kv |
diffstat | 3 files changed, 70 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/cagou/core/dialog.py Thu Jan 03 10:52:57 2019 +0100 +++ b/cagou/core/dialog.py Thu Jan 03 20:37:55 2019 +0100 @@ -20,6 +20,7 @@ """generic dialogs""" from sat.core.i18n import _ +from cagou.core.constants import Const as C from kivy.uix.boxlayout import BoxLayout from kivy import properties from sat.core import log as logging @@ -27,6 +28,13 @@ log = logging.getLogger(__name__) +class MessageDialog(BoxLayout): + title = properties.StringProperty() + message = properties.StringProperty() + level = properties.OptionProperty(C.XMLUI_DATA_LVL_INFO, options=C.XMLUI_DATA_LVLS) + close_cb = properties.ObjectProperty() + + class ConfirmDialog(BoxLayout): title = properties.StringProperty() message = properties.StringProperty(_(u"Are you sure?"))
--- a/cagou/core/xmlui.py Thu Jan 03 10:52:57 2019 +0100 +++ b/cagou/core/xmlui.py Thu Jan 03 20:37:55 2019 +0100 @@ -411,6 +411,29 @@ G.host.addNote(self.title, self.message, self.level) +class MessageDialog(xmlui.MessageDialog, dialog.MessageDialog): + + def __init__(self, _xmlui_parent, title, message, level): + dialog.MessageDialog.__init__(self, + title=title, + message=message, + level=level, + close_cb = self.close_cb) + xmlui.MessageDialog.__init__(self, _xmlui_parent) + + def close_cb(self): + self._xmluiClose() + + def _xmluiShow(self): + G.host.addNotifUI(self) + + def _xmluiClose(self): + G.host.closeUI() + + def show(self, *args, **kwargs): + G.host.showUI(self) + + class ConfirmDialog(xmlui.ConfirmDialog, dialog.ConfirmDialog): def __init__(self, _xmlui_parent, title, message, level, buttons_set): @@ -501,7 +524,8 @@ class XMLUIPanel(xmlui.XMLUIPanel, BoxLayout): widget_factory = WidgetFactory() - def __init__(self, host, parsed_xml, title=None, flags=None, callback=None, ignore=None, whitelist=None, profile=C.PROF_KEY_NONE): + def __init__(self, host, parsed_xml, title=None, flags=None, callback=None, + ignore=None, whitelist=None, profile=C.PROF_KEY_NONE): BoxLayout.__init__(self) self.close_cb = None self._post_treats = [] # list of callback to call after UI is constructed
--- a/cagou/kv/dialog.kv Thu Jan 03 10:52:57 2019 +0100 +++ b/cagou/kv/dialog.kv Thu Jan 03 20:37:55 2019 +0100 @@ -16,6 +16,43 @@ #:import _ sat.core.i18n._ + +<MessageDialog>: + orientation: "vertical" + spacing: dp(5) + canvas.before: + Color: + rgba: 0, 0, 0, 1 + Rectangle: + pos: self.pos + size: self.size + Label: + size_hint: 1, None + text_size: root.width, None + size: self.texture_size + font_size: sp(20) + padding: dp(5), dp(10) + color: 1, 1, 1, 1 + text: root.title + halign: "center" + italic: True + bold: True + Label: + text: root.message + text_size: root.width, None + size: self.texture_size + padding: dp(25), 0 + font_size: sp(20) + color: 1, 1, 1, 1 + Button: + size_hint: 1, None + height: dp(50) + background_color: 0.33, 1.0, 0.0, 1 + text: _("Close") + bold: True + on_release: root.close_cb() + + <ConfirmDialog>: orientation: "vertical" spacing: dp(5)