Merge branch '12813-g' of https://github.com/quozl/sugar-toolkit-gtk3
This commit is contained in:
commit
ec7f723819
@ -346,9 +346,35 @@ class _TimeoutIcon(Gtk.Alignment):
|
|||||||
self._text.set_markup('<b>%s</b>' % GLib.markup_escape_text(str(text)))
|
self._text.set_markup('<b>%s</b>' % GLib.markup_escape_text(str(text)))
|
||||||
|
|
||||||
|
|
||||||
class TimeoutAlert(Alert):
|
class _TimeoutAlert(Alert):
|
||||||
|
def __init__(self, timeout=5, label=_('Ok'), **kwargs):
|
||||||
|
Alert.__init__(self, **kwargs)
|
||||||
|
|
||||||
|
self._timeout = timeout
|
||||||
|
|
||||||
|
self._timeout_text = _TimeoutIcon()
|
||||||
|
self._timeout_text.set_text(self._timeout)
|
||||||
|
self.add_button(Gtk.ResponseType.OK, label, self._timeout_text)
|
||||||
|
self._timeout_text.show()
|
||||||
|
|
||||||
|
self._timeout_sid = GLib.timeout_add(1000, self.__timeout_cb)
|
||||||
|
|
||||||
|
def __timeout_cb(self):
|
||||||
|
self._timeout -= 1
|
||||||
|
self._timeout_text.set_text(self._timeout)
|
||||||
|
if self._timeout == 0:
|
||||||
|
Alert._response(self, Gtk.ResponseType.OK)
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _response(self, *args):
|
||||||
|
GLib.source_remove(self._timeout_sid)
|
||||||
|
Alert._response(self, *args)
|
||||||
|
|
||||||
|
|
||||||
|
class TimeoutAlert(_TimeoutAlert):
|
||||||
"""
|
"""
|
||||||
This is a ready-made two button (Cancel, Continue) alert. The continue
|
This is a ready-made two button (Continue, Cancel) alert. The continue
|
||||||
button contains a visual countdown indicating the time remaining to the
|
button contains a visual countdown indicating the time remaining to the
|
||||||
user. If the user does not select a button before the timeout, the
|
user. If the user does not select a button before the timeout, the
|
||||||
response callback is called and the alert is usually removed.
|
response callback is called and the alert is usually removed.
|
||||||
@ -389,35 +415,14 @@ class TimeoutAlert(Alert):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, timeout=5, **kwargs):
|
def __init__(self, timeout=5, **kwargs):
|
||||||
Alert.__init__(self, **kwargs)
|
_TimeoutAlert.__init__(self, timeout, _('Continue'), **kwargs)
|
||||||
|
|
||||||
self._timeout = timeout
|
|
||||||
|
|
||||||
icon = Icon(icon_name='dialog-cancel')
|
icon = Icon(icon_name='dialog-cancel')
|
||||||
self.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), icon)
|
self.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), icon)
|
||||||
icon.show()
|
icon.show()
|
||||||
|
|
||||||
self._timeout_text = _TimeoutIcon()
|
|
||||||
self._timeout_text.set_text(self._timeout)
|
|
||||||
self.add_button(Gtk.ResponseType.OK, _('Continue'), self._timeout_text)
|
|
||||||
self._timeout_text.show()
|
|
||||||
|
|
||||||
self._timeout_sid = GLib.timeout_add(1000, self.__timeout)
|
class NotifyAlert(_TimeoutAlert):
|
||||||
|
|
||||||
def __timeout(self):
|
|
||||||
self._timeout -= 1
|
|
||||||
self._timeout_text.set_text(self._timeout)
|
|
||||||
if self._timeout == 0:
|
|
||||||
Alert._response(self, Gtk.ResponseType.OK)
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def _response(self, *args):
|
|
||||||
GLib.source_remove(self._timeout_sid)
|
|
||||||
Alert._response(self, *args)
|
|
||||||
|
|
||||||
|
|
||||||
class NotifyAlert(Alert):
|
|
||||||
"""
|
"""
|
||||||
Timeout alert with only an "OK" button. This should be used just for
|
Timeout alert with only an "OK" button. This should be used just for
|
||||||
notifications and not for user interaction. The alert will timeout after
|
notifications and not for user interaction. The alert will timeout after
|
||||||
@ -448,21 +453,4 @@ class NotifyAlert(Alert):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, timeout=5, **kwargs):
|
def __init__(self, timeout=5, **kwargs):
|
||||||
Alert.__init__(self, **kwargs)
|
_TimeoutAlert.__init__(self, timeout, _('Ok'), **kwargs)
|
||||||
|
|
||||||
self._timeout = timeout
|
|
||||||
|
|
||||||
self._timeout_text = _TimeoutIcon()
|
|
||||||
self._timeout_text.set_text(self._timeout)
|
|
||||||
self.add_button(Gtk.ResponseType.OK, _('Ok'), self._timeout_text)
|
|
||||||
self._timeout_text.show()
|
|
||||||
|
|
||||||
GLib.timeout_add(1000, self.__timeout)
|
|
||||||
|
|
||||||
def __timeout(self):
|
|
||||||
self._timeout -= 1
|
|
||||||
self._timeout_text.set_text(self._timeout)
|
|
||||||
if self._timeout == 0:
|
|
||||||
self._response(Gtk.ResponseType.OK)
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
Loading…
Reference in New Issue
Block a user