def get_theme_filename(self): return self._get_user_sys_filename_gs( gskey = self.theme_key, user_filename_func = Theme.build_user_filename, system_filename_func = Theme.build_system_filename, final_fallback = os.path.join(self.install_dir, "themes", DEFAULT_THEME + "." + Theme.extension()))
def on_new_theme_button_clicked(self, event): while True: new_name = show_ask_string_dialog( _("Please enter a name for the new theme"), self.window) if not new_name: return new_filename = Theme.build_user_filename(new_name) if not os.path.exists(new_filename): break question = _("The theme file already exists.\n'%s'" "\n\nOverwrite it anyway?" % new_filename) if show_confirmation_dialog(question, self.window): break theme = self.get_selected_theme() if not theme: theme = Theme() theme.save_as(new_name, new_name) config.theme_filename = theme.filename self.update_themeList()
def apply_theme(self): theme_filename = self.theme_filename _logger.info(_("Loading theme from '{}'").format(theme_filename)) theme = Theme.load(theme_filename) if not theme: _logger.error(_("Unable to read theme '{}'").format(theme_filename)) else: # Save to gsettings # Make sure gsettings is in sync with onboard (LP: 877601) self.theme = theme_filename theme.apply() # Fix theme not saved to gesettings when switching # system contrast themes. # Possible gsettings bug in Precise (wasn't in Oneiric). self.settings.apply()
def update_themeList(self): self.themeList = gtk.ListStore(str,str) self.theme_view.set_model(self.themeList) self.themes = Theme.load_merged_themes() theme_basename = \ os.path.splitext(os.path.basename(config.theme_filename))[0] it_selection = None for theme,hidden_theme in self.get_sorted_themes(): it = self.themeList.append(( format_list_item(theme.name, theme.system), theme.filename)) if theme.basename == theme_basename: self.theme_view.get_selection().select_iter(it) it_selection = it # scroll to selection if it_selection: path = self.themeList.get_path(it_selection) self.theme_view.scroll_to_cell(path) self.update_theme_buttons()
def __init__(self,mainwin): self.themes = {} # cache of theme objects # Do not run if running under GDM if os.environ.has_key('RUNNING_UNDER_GDM'): return builder = LoadUI("settings") self.window = builder.get_object("settings_window") gtk.window_set_default_icon_name("onboard") self.window.set_title(_("Onboard Preferences")) self.status_icon_toggle = builder.get_object("status_icon_toggle") self.status_icon_toggle.set_active(config.show_status_icon) config.show_status_icon_notify_add(self.status_icon_toggle.set_active) self.start_minimized_toggle = builder.get_object( "start_minimized_toggle") self.start_minimized_toggle.set_active(config.start_minimized) config.start_minimized_notify_add( self.start_minimized_toggle.set_active) self.icon_palette_toggle = builder.get_object("icon_palette_toggle") self.icon_palette_toggle.set_active(config.icp_in_use) config.icp_in_use_change_notify_add( self.icon_palette_toggle.set_active) self.modeless_gksu_toggle = builder.get_object("modeless_gksu_toggle") self.modeless_gksu_toggle.set_active(config.modeless_gksu) config.modeless_gksu_notify_add(self.modeless_gksu_toggle.set_active) self.onboard_xembed_toggle = builder.get_object("onboard_xembed_toggle") self.onboard_xembed_toggle.set_active(config.onboard_xembed_enabled) config.onboard_xembed_notify_add(self.onboard_xembed_toggle.set_active) # layout view self.layout_view = builder.get_object("layout_view") self.layout_view.append_column(gtk.TreeViewColumn(None, gtk.CellRendererText(), markup = 0)) self.user_layout_root = os.path.join(config.user_dir, "layouts/") if not os.path.exists(self.user_layout_root): os.makedirs(self.user_layout_root) self.update_layoutList() # theme view self.theme_view = builder.get_object("theme_view") self.theme_view.append_column( gtk.TreeViewColumn(None, gtk.CellRendererText(), markup = 0)) self.delete_theme_button = builder.get_object("delete_theme_button") self.delete_theme_button self.customize_theme_button = \ builder.get_object("customize_theme_button") user_theme_root = Theme.user_path() if not os.path.exists(user_theme_root): os.makedirs(user_theme_root) self.update_themeList() # Snippets self.snippet_list = SnippetList() builder.get_object("snippet_scrolled_window").add(self.snippet_list) # Scanning builder.get_object("scanning_check").set_active(config.scanning) builder.get_object("interval_spin").set_value( config.scanning_interval/1000) self.settings_notebook = builder.get_object("settings_notebook") self.settings_notebook.set_current_page(config.current_settings_page) self.window.show_all() self.window.set_keep_above(not mainwin) self.window.connect("destroy", gtk.main_quit) builder.connect_signals(self) _logger.info("Entering mainloop of Onboard-settings") gtk.main()
def cb_theme_changed(self, theme_filename): # load and apply the theme theme = Theme.load(theme_filename) if theme: theme.apply()