Exemple #1
0
    def __init__ (self, profile, parent):
        self.profile = profile
        self.userdb = systemdb.get_user_database ()
        self.ui_objects_list = [ "users_dialog",
                                 "users_close_button",
                                 "users_all_check",
                                 "users_list_scroll",
                                 "users_list" ]

        apply_to_all = self.userdb.get_default_profile (False) == profile
        
        self.builder = gtk.Builder()
        self.builder.set_translation_domain(PACKAGE)
        self.builder.add_objects_from_file(os.path.join (BUILDERDIR, "sabayon.ui"), self.ui_objects_list)
 
        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.builder.get_object ("users_close_button")

        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.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)

        c = gtk.TreeViewColumn (_("Name"),
                                gtk.CellRendererText (),
                                text = UsersModel.COLUMN_NAME)
        c.set_sort_column_id(UsersModel.COLUMN_NAME)
        self.users_list.append_column (c)
        self.users_model.set_sort_column_id(UsersModel.COLUMN_NAME, gtk.SORT_ASCENDING)

        toggle = gtk.CellRendererToggle ()
        toggle.connect ("toggled", self.__on_use_toggled)
        c = gtk.TreeViewColumn (_("Use This Profile"))
        c.pack_start (toggle, False)
        c.set_attributes (toggle, active = UsersModel.COLUMN_APPLY)
        self.users_list.append_column (c)
        
        response = self.dialog.run ()
        self.dialog.hide ()
Exemple #2
0
    def __make_unique_profile_name(self, profile_name):
        profiles = systemdb.get_user_database().get_profiles()

        name = profile_name
        idx = 1
        while name in profiles:
            #
            # Translators: this string specifies how a profile
            #              name is concatenated with an integer
            #              to form a unique profile name e.g.
            #              "Artist Workstation (5)"
            #
            name = _("%s (%s)") % (profile_name, idx)
            idx += 1

        return name
Exemple #3
0
    def __delete_currently_selected(self):
        (model, selected) = self.profiles_list.get_selection().get_selected()
        if selected:
            if model.iter_next(selected):
                select = model[model.iter_next(selected)][ProfilesModel.COLUMN_NAME]
            else:
                select = None
                row = model.get_iter_first()
                while row and model.iter_next(row):
                    next = model.iter_next(row)
                    if model.get_string_from_iter(next) == model.get_string_from_iter(selected):
                        select = model[row][ProfilesModel.COLUMN_NAME]
                        break
                    row = next

            profile_name = model[selected][ProfilesModel.COLUMN_NAME]
            dprint("Deleting '%s'", profile_name)
            os.remove(_get_profile_path_for_name(profile_name))

            db = systemdb.get_user_database()
            if db.get_default_profile(False) == profile_name:
                db.set_default_profile(None)
            for user in db.get_users():
                if db.get_profile(user, False, True) == profile_name:
                    db.set_profile(user, None)

            self.profiles_model.reload()

            row = None
            if select:
                row = self.profiles_model.get_iter_first()
                while row:
                    if select == model[row][ProfilesModel.COLUMN_NAME]:
                        break
                    row = model.iter_next(row)
            if not row:
                row = self.profiles_model.get_iter_first()
            if row:
                self.profiles_list.get_selection().select_iter(row)
Exemple #4
0
 def reload(self):
     self.clear()
     profiles = systemdb.get_user_database().get_profiles()
     profiles.sort()
     for profile in profiles:
         self.set(self.append(), self.COLUMN_NAME, profile)