def __init__(self, core, builder, profile_path): """Loads base variables into the class.""" self.schema_base_id = "com.github.skybon.obozrenie" # Internal configs self.general_settings_config_file = "obozrenie_options_general.toml" self.dynamic_widget_config_file = "obozrenie_options_game.toml" self.defaults_file = "obozrenie_default.toml" self.general_settings_config_path = os.path.join(os.path.dirname(__file__), self.general_settings_config_file) self.dynamic_widget_config_path = os.path.join(os.path.dirname(__file__), self.dynamic_widget_config_file) self.defaults_path = os.path.join(os.path.dirname(__file__), self.defaults_file) # User configs self.user_general_settings_file = "settings.toml" self.user_game_settings_file = "games.toml" self.user_general_settings_path = os.path.join(profile_path, self.user_general_settings_file) self.user_game_settings_path = os.path.join(profile_path, self.user_game_settings_file) self.dynamic_widget_table = helpers.load_settings_table(self.dynamic_widget_config_path) self.static_widget_table = helpers.load_settings_table(self.general_settings_config_path) self.settings_table = {} self.core = core self.builder = builder
def load(self): """Loads configuration.""" defaults_table = helpers.load_settings_table(self.defaults_path) user_general_settings_table = helpers.load_settings_table(self.user_general_settings_path) # Load into general settings table for group in self.static_widget_table: self.settings_table[group] = {} for option in self.static_widget_table[group]: # Define variables widget = self.builder.get_object(self.static_widget_table[group][option]["gtk_widget_name"]) value = defaults_table[group][option] try: value = user_general_settings_table[group][option] except ValueError: pass except KeyError: pass except TypeError: pass self.settings_table[group][option] = value self.apply_to_widget(widget, value) self.bind_widget_to_settings_table(widget) # Load game settings table user_game_settings_table = helpers.load_settings_table(self.user_game_settings_path) # Set game settings for game in self.core.game_table: for option in self.core.game_table[game]["settings"]: try: self.core.game_table[game]["settings"][option] = user_game_settings_table[game][option] except ValueError: pass except KeyError: pass except TypeError: pass