From 3a7c4da5b6a21d0f8249f72b7cd80753c9c52dcd Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Tue, 20 Oct 2009 17:18:14 +0000
Subject: Name input screen should be deactivable #1497

---
 data/sugar.schemas.in      |   11 +++++++++++
 src/jarabe/intro/window.py |   18 ++++++++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/data/sugar.schemas.in b/data/sugar.schemas.in
index 8c43930..1740d7d 100644
--- a/data/sugar.schemas.in
+++ b/data/sugar.schemas.in
@@ -13,6 +13,17 @@
       </locale>
     </schema>
     <schema>
+      <key>/schemas/desktop/sugar/user/default_nick</key>
+      <applyto>/desktop/sugar/user/default_nick</applyto>
+      <owner>sugar</owner>
+      <type>string</type>
+      <default>passwd</default>
+      <locale name="C">
+        <short>Default nick</short>
+        <long>"disabled" to ask nick on initialization; "passwd" to reuse UNIX account long name.</long>
+      </locale>
+    </schema>
+    <schema>
       <key>/schemas/desktop/sugar/user/color</key>
       <applyto>/desktop/sugar/user/color</applyto>
       <owner>sugar</owner>
diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py
index 94c6782..42ef6b1 100644
--- a/src/jarabe/intro/window.py
+++ b/src/jarabe/intro/window.py
@@ -18,6 +18,7 @@ import os
 import logging
 from gettext import gettext as _
 import gconf
+import pwd
 
 import gtk
 import gobject
@@ -111,6 +112,9 @@ class _NamePage(_Page):
     def get_name(self):
         return self._entry.props.text
 
+    def set_name(self, new_name):
+        self._entry.props.text = new_name
+
     def activate(self):
         self._entry.props.widget.grab_focus()
 
@@ -156,6 +160,20 @@ class _IntroBox(hippo.CanvasBox):
         self._current_page = None
         self._next_button = None
 
+        client = gconf.client_get_default()
+        default_nick = client.get_string('/desktop/sugar/user/default_nick')
+        if default_nick != 'disabled':
+            self._page = self.PAGE_COLOR
+            if default_nick == 'passwd':
+                pw = pwd.getpwuid(os.getuid())
+                if pw.pw_gecos:
+                    nick = pw.pw_gecos.split(',')[0]
+                    self._name_page.set_name(nick)
+                else:
+                    self._name_page.set_name(pw.pw_name)
+            else:
+                self._name_page.set_name(default_nick)
+
         self._setup_page()
 
     def _setup_page(self):
-- 
1.6.5.rc2

