diff --git a/src/config.py b/src/config.py index 91b4db2a51ded583687f8d08f1d60abb249bde23..aec5298bafa869d865ed44c639e6e79e91bd2547 100644 --- a/src/config.py +++ b/src/config.py @@ -167,19 +167,13 @@ class PreferencesWindow: st = gajim.config.get('use_transports_iconsets') self.xml.get_widget('transports_iconsets_checkbutton').set_active(st) + # Themes theme_combobox = self.xml.get_widget('theme_combobox') cell = gtk.CellRendererText() theme_combobox.pack_start(cell, True) theme_combobox.add_attribute(cell, 'text', 0) model = gtk.ListStore(str) theme_combobox.set_model(model) - i = 0 - for t in gajim.config.get_per('themes'): - model.append([t]) - if gajim.config.get('roster_theme') == t: - theme_combobox.set_active(i) - i += 1 - self.on_theme_combobox_changed(theme_combobox) #use tabbed chat window st = gajim.config.get('usetabbedchat') @@ -427,6 +421,18 @@ class PreferencesWindow: st = gajim.config.get('print_ichat_every_foo_minutes') text = _('Every %s _minutes') % st self.xml.get_widget('time_sometimes_radiobutton').set_label(text) + + #Themes + theme_combobox = self.xml.get_widget('theme_combobox') + model = theme_combobox.get_model() + model.clear() + i = 0 + for t in gajim.config.get_per('themes'): + model.append([t]) + if gajim.config.get('roster_theme') == t: + theme_combobox.set_active(i) + i += 1 + self.on_theme_combobox_changed(theme_combobox) #FIXME: move code from __init__ here def on_preferences_window_key_press_event(self, widget, event): diff --git a/src/gajim_themes_window.py b/src/gajim_themes_window.py index c05d7e5042c1c4ff9a07016d1978217c37afe8d3..c3350f6b8e49583e3853dc636d91bf8090e07264 100644 --- a/src/gajim_themes_window.py +++ b/src/gajim_themes_window.py @@ -38,9 +38,8 @@ class GajimThemesWindow: self.xml = gtk.glade.XML(GTKGUI_GLADE, 'gajim_themes_window', APP) self.window = self.xml.get_widget('gajim_themes_window') self.plugin = plugin - self.xml.signal_autoconnect(self) - self.window.show_all() + self.xml.get_widget('banner_text_fontbutton').set_no_show_all(True) self.color_widgets = { 'account_text_colorbutton': 'accounttextcolor', @@ -74,6 +73,9 @@ class GajimThemesWindow: self.current_theme = gajim.config.get('roster_theme') self.set_widgets(self.current_theme) + self.xml.signal_autoconnect(self) + self.window.show_all() + def on_theme_cell_edited(self, cell, row, new_name): model = self.themes_tree.get_model() iter = model.get_iter_from_string(row) @@ -93,15 +95,20 @@ class GajimThemesWindow: gajim.config.get_per('themes', old_name, option)) gajim.config.del_per('themes', old_name) model.set_value(iter, 0, new_name) + self.plugin.windows['preferences'].update_preferences_window() def fill_themes_treeview(self): self.xml.get_widget('remove_button').set_sensitive(False) self.xml.get_widget('fonts_colors_table').set_sensitive(False) model = self.themes_tree.get_model() model.clear() + i = 0 for theme in gajim.config.get_per('themes'): - iter = model.append() - model.set_value(iter, 0, theme) + iter = model.append([theme]) + if gajim.config.get('roster_theme') == theme: + self.themes_tree.get_selection().select_iter(iter) + self.xml.get_widget('remove_button').set_sensitive(True) + self.xml.get_widget('fonts_colors_table').set_sensitive(True) def on_themes_treeview_cursor_changed(self, widget): (model, iter) = self.themes_tree.get_selection().get_selected() @@ -120,6 +127,7 @@ class GajimThemesWindow: i += 1 model.set_value(iter, 0, _('theme_name') + str(i)) gajim.config.add_per('themes', _('theme_name') + str(i)) + self.plugin.windows['preferences'].update_preferences_window() def on_remove_button_clicked(self, widget): (model, iter) = self.themes_tree.get_selection().get_selected() @@ -128,6 +136,7 @@ class GajimThemesWindow: name = model.get_value(iter, 0) gajim.config.del_per('themes', name) model.remove(iter) + self.plugin.windows['preferences'].update_preferences_window() def set_widgets(self, theme): for w in self.color_widgets: @@ -143,6 +152,7 @@ class GajimThemesWindow: color = widget.get_color() color_string = mk_color_string(color) gajim.config.set_per('themes', self.current_theme, option, color_string) + self.plugin.roster.repaint_themed_widgets() self.plugin.roster.draw_roster() self.plugin.save_config() diff --git a/src/gtkgui.glade b/src/gtkgui.glade index 69f5271401af0e1a4e4a8345f38e8bd66e8b6701..74089da5bc0b9a9c36b53e5d19e35b4413d188bc 100644 --- a/src/gtkgui.glade +++ b/src/gtkgui.glade @@ -15250,7 +15250,7 @@ the Jabber network.</property> </child> <child> - <widget class="GtkFontButton" id="fontbutton1"> + <widget class="GtkFontButton" id="banner_text_fontbutton"> <property name="can_focus">True</property> <property name="show_style">True</property> <property name="show_size">True</property>