From 9981f9f6a2205ed56f16989b590d939d5dac974a Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 1 Feb 2012 19:53:29 +0100 Subject: Add logout button timeout. Add l10n support. --- LockWindow.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'LockWindow.py') diff --git a/LockWindow.py b/LockWindow.py index 98b8e86..89d7576 100644 --- a/LockWindow.py +++ b/LockWindow.py @@ -1,8 +1,12 @@ import sys +import locale from gi.repository import Gtk, Gdk, GObject, GLib +_ = locale.gettext + + class LockWindow(Gtk.Window): __gsignals__ = { 'tryUnlock': (GObject.SIGNAL_RUN_FIRST, None, (str,)) @@ -26,6 +30,7 @@ class LockWindow(Gtk.Window): sys.exit(1) self.unlockWindow = builder.get_object('unlock_window') + self.lockLabel = builder.get_object('lock_label') self.promptEntry = builder.get_object('prompt_entry') self.messageLabel = builder.get_object('message_label') self.logoutButton = builder.get_object('logout_button') @@ -45,15 +50,36 @@ class LockWindow(Gtk.Window): def _tryUnlock(self): self.promptEntry.set_sensitive(False) + self.unlockButton.set_sensitive(False) GLib.idle_add(lambda: self.emit('tryUnlock', self.promptEntry.get_text())) def reset(self): self.promptEntry.set_text('') self.promptEntry.set_sensitive(True) self.promptEntry.grab_focus() + + self.unlockButton.set_sensitive(True) + self.messageLabel.set_label('') - def setMessage(self, message): + self.logoutButton.set_sensitive(False) + + def updateLockMessage(self, username, logoutTime = None): + if logoutTime is None: + self.lockLabel.set_markup(_('This computer is currently locked by the user {username}.').format(username=GLib.markup_escape_text(username))) + self.logoutButton.set_sensitive(False) + elif logoutTime > 0: + self.lockLabel.set_markup( + _('This computer is currently locked by the user {username}.\nThe user can be logged out in {minutes:02}:{seconds:02} minutes.').format( + username=GLib.markup_escape_text(username), minutes=logoutTime//60, seconds=logoutTime%60)) + self.logoutButton.set_sensitive(False) + else: + self.lockLabel.set_markup( + _('This computer is currently locked by the user {username}.\nThe user can be logged out now.').format( + username=GLib.markup_escape_text(username))) + self.logoutButton.set_sensitive(True) + + def setAuthMessage(self, message): self.messageLabel.set_label(message) def lock(self): -- cgit v1.2.3