[sabayon] Removal of dependency on gtk.glade



commit 72719aae040581b372547444cbf12d8b6d44e730
Author: Scott Balneaves <sbalneav ltsp org>
Date:   Wed Dec 16 21:49:35 2009 -0600

    Removal of dependency on gtk.glade

 admin-tool/Makefile.am       |   10 +-
 admin-tool/editorwindow.py   |    1 -
 admin-tool/groupsdialog.py   |   16 +-
 admin-tool/profilesdialog.py |   39 +-
 admin-tool/sabayon.glade     |  944 ------------------------------------------
 admin-tool/sabayon.ui        |  890 +++++++++++++++++++++++++++++++++++++++
 admin-tool/usersdialog.py    |   20 +-
 lib/config.py.in             |    4 +-
 po/POTFILES.in               |    2 +-
 9 files changed, 936 insertions(+), 990 deletions(-)
---
diff --git a/admin-tool/Makefile.am b/admin-tool/Makefile.am
index 0daf498..3215cd7 100644
--- a/admin-tool/Makefile.am
+++ b/admin-tool/Makefile.am
@@ -16,8 +16,8 @@ PYTHON_FILES =				\
 
 @INTLTOOL_DESKTOP_RULE@
 
-GLADE_FILES =				\
-	sabayon.glade
+UI_FILES =				\
+	sabayon.ui
 
 desktopdir        = $(datadir)/applications
 desktop_in_files = sabayon.desktop.in
@@ -25,7 +25,7 @@ desktop_DATA     = $(desktop_in_files:.desktop.in=.desktop)
 
 EXTRA_DIST =				\
 	$(PYTHON_FILES)			\
-	$(GLADE_FILES)			\
+	$(UI_FILES)			\
 	$(desktop_in_files)		\
 	$(desktop_DATA)			\
 	sabayon				\
@@ -35,8 +35,8 @@ EXTRA_DIST =				\
 	sabayon.pam			\
 	sabayon-xinitrc.sh.in
 
-gladedir   = $(pkgdatadir)/glade
-glade_DATA = $(GLADE_FILES)
+uidir   = $(pkgdatadir)/ui
+ui_DATA = $(UI_FILES)
 
 bin_SCRIPTS = sabayon
 sbin_SCRIPTS = sabayon-apply
diff --git a/admin-tool/editorwindow.py b/admin-tool/editorwindow.py
index 8cd1b69..42054c5 100755
--- a/admin-tool/editorwindow.py
+++ b/admin-tool/editorwindow.py
@@ -22,7 +22,6 @@ import tempfile
 import time
 import locale
 import gtk
-import gtk.glade
 import userprofile
 import util
 import aboutdialog
diff --git a/admin-tool/groupsdialog.py b/admin-tool/groupsdialog.py
index 635b0a1..24dd571 100644
--- a/admin-tool/groupsdialog.py
+++ b/admin-tool/groupsdialog.py
@@ -19,7 +19,6 @@
 import os.path
 import pwd
 import gtk
-import gtk.glade
 import systemdb
 import errors
 import debuglog
@@ -47,24 +46,25 @@ class GroupsDialog:
         self.profile = profile
         self.groupdb = systemdb.get_group_database ()
 
-        glade_file = os.path.join (GLADEDIR, "sabayon.glade")
-        self.xml = gtk.glade.XML (glade_file, "groups_dialog", PACKAGE)
+        self.builder = gtk.Builder()
+        self.builder.set_translation_domain(PACKAGE)
+        self.builder.add_from_file(os.path.join (BUILDERDIR, "sabayon.ui"))
 
-        self.dialog = self.xml.get_widget ("groups_dialog")
+        self.dialog = self.builder.get_object ("groups_dialog")
         self.dialog.set_transient_for (parent)
         self.dialog.set_default_response (gtk.RESPONSE_CLOSE)
         self.dialog.set_icon_name ("sabayon")
         self.dialog.set_title (_("Groups for profile %s")%profile)
 
-        self.close_button = self.xml.get_widget ("groups_close_button")
+        self.close_button = self.builder.get_object ("groups_close_button")
 
-        self.help_button = self.xml.get_widget ("groups_help_button")
+        self.help_button = self.builder.get_object ("groups_help_button")
         self.help_button.hide ()
 
         self.groups_model = GroupsModel (self.groupdb, self.profile)
         
-        self.groups_list_scroll = self.xml.get_widget ("groups_list_scroll")
-        self.groups_list = self.xml.get_widget ("groups_list")
+        self.groups_list_scroll = self.builder.get_object ("groups_list_scroll")
+        self.groups_list = self.builder.get_object ("groups_list")
         self.groups_list.set_model (self.groups_model)
 
         c = gtk.TreeViewColumn (_("Group"),
diff --git a/admin-tool/profilesdialog.py b/admin-tool/profilesdialog.py
index 8a4fc79..991c8a3 100755
--- a/admin-tool/profilesdialog.py
+++ b/admin-tool/profilesdialog.py
@@ -24,7 +24,6 @@ import tempfile
 import pwd
 import gobject
 import gtk
-import gtk.glade
 import storage
 import editorwindow
 import usersdialog
@@ -270,22 +269,23 @@ class AddProfileDialog:
     def __init__ (self, profiles_model):
         self.profiles_model = profiles_model
 
-        glade_file = os.path.join (GLADEDIR, "sabayon.glade")
-        self.xml = gtk.glade.XML (glade_file, "add_profile_dialog", PACKAGE)
-
-        self.dialog = self.xml.get_widget ("add_profile_dialog")
+        self.builder = gtk.Builder ();
+        self.builder.set_translation_domain (PACKAGE)
+        self.builder.add_from_file (os.path.join (BUILDERDIR, "sabayon.ui"))
+         
+        self.dialog = self.builder.get_object ("add_profile_dialog")
         self.dialog.connect ("destroy", gtk.main_quit)
         self.dialog.set_default_response (gtk.RESPONSE_ACCEPT)
         self.dialog.set_icon_name ("sabayon")
 
-        self.add_button = self.xml.get_widget ("add_profile_add_button")
+        self.add_button = self.builder.get_object ("add_profile_add_button")
         self.add_button.set_sensitive (False)
 
-        self.name_entry = self.xml.get_widget ("add_profile_name_entry")
+        self.name_entry = self.builder.get_object ("add_profile_name_entry")
         self.name_entry.connect ("changed", self.__name_entry_changed)
         self.name_entry.set_activates_default (True)
 
-        self.base_combo = self.xml.get_widget ("add_profile_base_combo")
+        self.base_combo = self.builder.get_object ("add_profile_base_combo")
         self.base_combo.set_model (self.profiles_model)
         if self.profiles_model.get_iter_first () is None:
             self.base_combo.set_sensitive (False)
@@ -324,42 +324,43 @@ class ProfilesDialog:
     def __init__ (self):
         assert os.geteuid () == 0
 
-        glade_file = os.path.join (GLADEDIR, "sabayon.glade")
-        self.xml = gtk.glade.XML (glade_file, "profiles_dialog", PACKAGE)
+        self.builder = gtk.Builder ();
+        self.builder.set_translation_domain (PACKAGE)
+        self.builder.add_from_file (os.path.join (BUILDERDIR, "sabayon.ui"))
 
-        self.dialog = self.xml.get_widget ("profiles_dialog")
+        self.dialog = self.builder.get_object ("profiles_dialog")
         self.dialog.connect ("destroy", gtk.main_quit)
         self.dialog.set_default_response (gtk.RESPONSE_ACCEPT)
         self.dialog.set_icon_name ("sabayon")
 
-        self.profiles_list = self.xml.get_widget ("profiles_list")
+        self.profiles_list = self.builder.get_object ("profiles_list")
         self.__setup_profiles_list ()
 
         self.profiles_list.connect ("key-press-event", self.__handle_key_press)
 
-        self.add_button = self.xml.get_widget ("add_button")
+        self.add_button = self.builder.get_object ("add_button")
         self.add_button.connect ("clicked", self.__add_button_clicked)
 
-        self.remove_button = self.xml.get_widget ("remove_button")
+        self.remove_button = self.builder.get_object ("remove_button")
         self.remove_button.connect ("clicked", self.__remove_button_clicked)
 
-        self.edit_button = self.xml.get_widget ("edit_button")
+        self.edit_button = self.builder.get_object ("edit_button")
         self.__fix_button_align (self.edit_button)
         self.edit_button.connect ("clicked", self.__edit_button_clicked)
 
-        self.details_button = self.xml.get_widget ("details_button")
+        self.details_button = self.builder.get_object ("details_button")
         self.__fix_button_align (self.details_button)
         self.details_button.connect ("clicked", self.__details_button_clicked)
 
-        self.users_button = self.xml.get_widget ("users_button")
+        self.users_button = self.builder.get_object ("users_button")
         self.__fix_button_align (self.users_button)
         self.users_button.connect ("clicked", self.__users_button_clicked)
 
-        self.groups_button = self.xml.get_widget ("groups_button")
+        self.groups_button = self.builder.get_object ("groups_button")
         self.__fix_button_align (self.groups_button)
         self.groups_button.connect ("clicked", self.__groups_button_clicked)
 
-        self.help_button = self.xml.get_widget ("help_button")
+        self.help_button = self.builder.get_object ("help_button")
         self.help_button.hide()
 
         self.dialog.connect ("response", self.__dialog_response)
diff --git a/admin-tool/sabayon.ui b/admin-tool/sabayon.ui
new file mode 100644
index 0000000..e50ca8e
--- /dev/null
+++ b/admin-tool/sabayon.ui
@@ -0,0 +1,890 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="profiles_dialog">
+    <property name="title" translatable="yes">User Profile Editor</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_CENTER</property>
+    <property name="modal">False</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="help_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="border_width">5</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">5</property>
+            <child>
+              <object class="GtkLabel" id="profiles_label">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Profiles:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">profiles_list</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkHBox" id="hbox1">
+                <property name="visible">True</property>
+                <property name="homogeneous">False</property>
+                <property name="spacing">5</property>
+                <child>
+                  <object class="GtkVBox" id="vbox3">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">5</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="profiles_list_scroll">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                        <child>
+                          <object class="GtkTreeView" id="profiles_list">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="headers_visible">False</property>
+                            <property name="rules_hint">False</property>
+                            <property name="reorderable">False</property>
+                            <property name="enable_search">True</property>
+                            <property name="fixed_height_mode">False</property>
+                            <property name="hover_selection">False</property>
+                            <property name="hover_expand">False</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHBox" id="hbox11">
+                        <property name="visible">True</property>
+                        <property name="homogeneous">True</property>
+                        <property name="spacing">5</property>
+                        <child>
+                          <object class="GtkButton" id="add_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label">gtk-add</property>
+                            <property name="use_stock">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="remove_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label">gtk-remove</property>
+                            <property name="use_stock">True</property>
+                            <property name="relief">GTK_RELIEF_NORMAL</property>
+                            <property name="focus_on_click">True</property>
+                          </object>
+                          <packing>
+                            <property name="padding">0</property>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox2">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">5</property>
+                    <child>
+                      <object class="GtkButton" id="edit_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-edit</property>
+                        <property name="use_stock">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="details_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment1">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">0</property>
+                            <property name="bottom_padding">0</property>
+                            <property name="left_padding">0</property>
+                            <property name="right_padding">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox12">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image1">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-index</property>
+                                    <property name="icon_size">4</property>
+                                    <property name="xalign">0.5</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label1">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Details</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.5</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                    <property name="width_chars">-1</property>
+                                    <property name="single_line_mode">False</property>
+                                    <property name="angle">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="users_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment2">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">0</property>
+                            <property name="bottom_padding">0</property>
+                            <property name="left_padding">0</property>
+                            <property name="right_padding">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox13">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image2">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-home</property>
+                                    <property name="icon_size">4</property>
+                                    <property name="xalign">0.5</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label3">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Users</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.5</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                    <property name="width_chars">-1</property>
+                                    <property name="single_line_mode">False</property>
+                                    <property name="angle">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="groups_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="relief">GTK_RELIEF_NORMAL</property>
+                        <property name="focus_on_click">True</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment3">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.5</property>
+                            <property name="yalign">0.5</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <property name="top_padding">0</property>
+                            <property name="bottom_padding">0</property>
+                            <property name="left_padding">0</property>
+                            <property name="right_padding">0</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox14">
+                                <property name="visible">True</property>
+                                <property name="homogeneous">False</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <object class="GtkImage" id="image3">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-dnd-multiple</property>
+                                    <property name="icon_size">4</property>
+                                    <property name="xalign">0.5</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label5">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Groups</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="use_markup">False</property>
+                                    <property name="justify">GTK_JUSTIFY_LEFT</property>
+                                    <property name="wrap">False</property>
+                                    <property name="selectable">False</property>
+                                    <property name="xalign">0.5</property>
+                                    <property name="yalign">0.5</property>
+                                    <property name="xpad">0</property>
+                                    <property name="ypad">0</property>
+                                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                    <property name="width_chars">-1</property>
+                                    <property name="single_line_mode">False</property>
+                                    <property name="angle">0</property>
+                                  </object>
+                                  <packing>
+                                    <property name="padding">0</property>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">0</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-11">help_button</action-widget>
+      <action-widget response="-3">close_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="add_profile_dialog">
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Add Profile</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="resizable">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox5">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area5">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="add_profile_cancel_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="add_profile_add_button">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-add</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkTable" id="table1">
+            <property name="border_width">6</property>
+            <property name="visible">True</property>
+            <property name="n_rows">2</property>
+            <property name="n_columns">2</property>
+            <property name="homogeneous">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">3</property>
+            <child>
+              <object class="GtkLabel" id="add_profile_name_label">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Profile _name:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">add_profile_name_entry</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="add_profile_name_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="editable">True</property>
+                <property name="visibility">True</property>
+                <property name="max_length">0</property>
+                <property name="text" translatable="yes"/>
+                <property name="has_frame">True</property>
+                <property name="invisible_char">*</property>
+                <property name="activates_default">False</property>
+                <property name="width_chars">14</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">0</property>
+                <property name="bottom_attach">1</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="add_profile_base_label">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Base on:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="right_attach">1</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options"/>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBox" id="add_profile_base_combo">
+                <property name="visible">True</property>
+                <property name="add_tearoffs">False</property>
+                <property name="focus_on_click">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">fill</property>
+                <property name="y_options">fill</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">add_profile_cancel_button</action-widget>
+      <action-widget response="-3">add_profile_add_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="users_dialog">
+    <property name="border_width">6</property>
+    <property name="visible">True</property>
+    <property name="title">Users</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="default_width">440</property>
+    <property name="default_height">300</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox6">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area6">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="users_help_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="users_close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox4">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">5</property>
+            <child>
+              <object class="GtkCheckButton" id="users_all_check">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label" translatable="yes">Use this profile for _all users</property>
+                <property name="use_underline">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+                <property name="active">False</property>
+                <property name="inconsistent">False</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Users:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="mnemonic_widget">users_list</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="users_list_scroll">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="users_list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">True</property>
+                    <property name="rules_hint">False</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-11">users_help_button</action-widget>
+      <action-widget response="-7">users_close_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="groups_dialog">
+    <property name="border_width">6</property>
+    <property name="visible">True</property>
+    <property name="title">Groups</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="default_width">440</property>
+    <property name="default_height">300</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="vbox5">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="groups_help_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="groups_close_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox6">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">5</property>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Groups:</property>
+                <property name="use_underline">True</property>
+                <property name="use_markup">False</property>
+                <property name="justify">GTK_JUSTIFY_LEFT</property>
+                <property name="wrap">False</property>
+                <property name="selectable">False</property>
+                <property name="xalign">0</property>
+                <property name="yalign">0.5</property>
+                <property name="xpad">0</property>
+                <property name="ypad">0</property>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                <property name="width_chars">-1</property>
+                <property name="single_line_mode">False</property>
+                <property name="angle">0</property>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="group_list_scroll">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                <child>
+                  <object class="GtkTreeView" id="groups_list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">True</property>
+                    <property name="rules_hint">False</property>
+                    <property name="reorderable">False</property>
+                    <property name="enable_search">True</property>
+                    <property name="fixed_height_mode">False</property>
+                    <property name="hover_selection">False</property>
+                    <property name="hover_expand">False</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-11">groups_help_button</action-widget>
+      <action-widget response="-7">groups_close_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/admin-tool/usersdialog.py b/admin-tool/usersdialog.py
index a22d4de..fb3e306 100644
--- a/admin-tool/usersdialog.py
+++ b/admin-tool/usersdialog.py
@@ -19,7 +19,6 @@
 import os.path
 import pwd
 import gtk
-import gtk.glade
 import systemdb
 import errors
 import debuglog
@@ -57,28 +56,29 @@ class UsersDialog:
 
         apply_to_all = self.userdb.get_default_profile (False) == profile
         
-        glade_file = os.path.join (GLADEDIR, "sabayon.glade")
-        self.xml = gtk.glade.XML (glade_file, "users_dialog", PACKAGE)
-
-        self.dialog = self.xml.get_widget ("users_dialog")
+        self.builder = gtk.Builder()
+        self.builder.set_translation_domain(PACKAGE)
+        self.builder.add_from_file(os.path.join (BUILDERDIR, "sabayon.ui"))
+ 
+        self.dialog = self.builder.get_object ("users_dialog")
         self.dialog.set_transient_for (parent)
         self.dialog.set_default_response (gtk.RESPONSE_CLOSE)
         self.dialog.set_icon_name ("sabayon")
         self.dialog.set_title (_("Users for profile %s")%profile)
 
-        self.close_button = self.xml.get_widget ("users_close_button")
+        self.close_button = self.builder.get_object ("users_close_button")
 
-        self.help_button = self.xml.get_widget ("users_help_button")
+        self.help_button = self.builder.get_object ("users_help_button")
         self.help_button.hide ()
 
-        self.all_check = self.xml.get_widget ("users_all_check")
+        self.all_check = self.builder.get_object ("users_all_check")
         self.all_check.set_active (apply_to_all)
         self.all_check.connect ("toggled", self.__all_check_toggled)
 
         self.users_model = UsersModel (self.userdb, self.profile)
         
-        self.users_list_scroll = self.xml.get_widget ("users_list_scroll")
-        self.users_list = self.xml.get_widget ("users_list")
+        self.users_list_scroll = self.builder.get_object ("users_list_scroll")
+        self.users_list = self.builder.get_object ("users_list")
         self.users_list.set_model (self.users_model)
         self.users_list.set_sensitive (not apply_to_all)
 
diff --git a/lib/config.py.in b/lib/config.py.in
index c4cebd9..c9a3ee2 100755
--- a/lib/config.py.in
+++ b/lib/config.py.in
@@ -20,13 +20,13 @@ import os.path
 
 PACKAGE    = "@PACKAGE_NAME@"
 VERSION    = "@PACKAGE_VERSION@"
-LOCALEDIR = "@LOCALEDIR@"
+LOCALEDIR  = "@LOCALEDIR@"
 DATADIR    = "@DATADIR@"
 SYSCONFDIR = "@SYSCONFDIR@"
 LIBEXECDIR = "@LIBEXECDIR@"
 SBINDIR    = "@SBINDIR@"
 
-GLADEDIR    = os.path.join (DATADIR, "sabayon", "glade")
+BUILDERDIR  = os.path.join (DATADIR, "sabayon", "ui")
 PROFILESDIR = os.path.join (SYSCONFDIR, "desktop-profiles")
 
 MONITOR_TOOL_ARGV = [ os.path.join (LIBEXECDIR, "sabayon-monitor") ]
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 133136b..9a6e123 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -14,7 +14,7 @@ admin-tool/sabayon
 admin-tool/sabayon-apply
 admin-tool/sabayon-session
 admin-tool/sabayon.desktop.in.in
-admin-tool/sabayon.glade
+[type: gettext/glade]admin-tool/sabayon.ui
 admin-tool/saveconfirm.py
 admin-tool/sessionwidget.py
 admin-tool/sessionwindow.py



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]