~doctormo/gdm-commmunity-greeter/efl

« back to all changes in this revision

Viewing changes to community-greeter.py

  • Committer: Martin Owens
  • Date: 2011-05-05 17:43:18 UTC
  • Revision ID: doctormo@gmail.com-20110505174318-jczh8lx5ir9brwpn
Improve language support and finish up user registration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
)
35
35
from GdmGreeter.login import LoginWindow
36
36
from GdmGreeter.register import RegisterWindow
 
37
from GdmGreeter.user import User
37
38
from GdmGreeter import GLADE_DIR, __appname__
38
39
 
39
40
# Store users and their settings here
51
52
        self.scr = Gdk.Display.get_default().get_screen(self.display.number)
52
53
        self.login = None
53
54
        self.user = None
54
 
        self.language = None
 
55
        self.language = 'en_GB.UTF-8'
55
56
        self.session = None
56
57
        self.layout = None
57
58
 
58
59
    def load_window(self, *args, **kwargs):
59
60
        """When loading a window, also translate it"""
60
61
        window = GtkApp.load_window(self, *args, **kwargs)
61
 
        logging.debug("Translating window from load: %s\n" % window.name)
62
62
        if isinstance(window, Translatable) and self.language:
 
63
            logging.debug("Translating %s to %s" % (window.name, self.language))
63
64
            window.translate_to(self.language)
64
65
        return window
65
66
 
82
83
 
83
84
    def SelectedUserChanged(self, username):
84
85
        """The user has selected the user to login as"""
85
 
        # XXX Load user profile
86
 
        # XXX Set language to that stored
87
 
       self.SelectLanguage(self.user.get('language'), loaded=True)
 
86
        self.user = User(username)
 
87
        self.SelectLanguage(self.user.get('language', 'en'), loaded=True)
88
88
 
89
89
    def SelectLanguage(self, lang, loaded=False):
90
90
        """The user wants to change languages"""
91
91
        if not loaded and self.user:
92
 
            # XXX Save language to user information
 
92
            self.user.save(data={ 'language': lang })
93
93
        # Translate all windows in the login screen
94
94
        self.translate_to(lang)
95
95
        # Make sure the session is set correctly.
96
96
        if self.user:
97
97
            GdmGreeter.SelectLanguage(self, lang)
98
98
 
 
99
    def DefaultLanguageNameChanged(self, lang):
 
100
        self.language = lang
 
101
 
99
102
    def DefaultLayoutNameChanged(self, layout):
100
103
        self.layout = str(layout)
101
104