From 94537da614993997f4f1bb278923283be8af0b66 Mon Sep 17 00:00:00 2001
From: Nikos Kouremenos <kourem@gmail.com>
Date: Fri, 29 Apr 2005 15:01:44 +0000
Subject: [PATCH] make roster theme UI better

---
 src/config.py    | 26 +++++++++++---
 src/gtkgui.glade | 90 ++++++++++++++++++++++++++----------------------
 2 files changed, 70 insertions(+), 46 deletions(-)

diff --git a/src/config.py b/src/config.py
index 575722a939..6518e82d25 100644
--- a/src/config.py
+++ b/src/config.py
@@ -60,6 +60,18 @@ class Preferences_window:
 		if os.name == 'nt': # if windows, player must not be visible
 			self.xml.get_widget('soundplayer_hbox').set_property('visible', False)
 			self.trayicon_checkbutton.set_property('visible', False)
+		
+		theme_combobox = self.xml.get_widget('theme_combobox')
+		model = theme_combobox.get_model()
+		active = theme_combobox.get_active()
+		theme = model[active][0]
+		fonts_colors_table = self.xml.get_widget('fonts_colors_table')
+		if theme == 'Custom':
+			#fonts_colors_table.set_sensitive(True)
+			fonts_colors_table.set_property('visible', True)
+		else:
+			#fonts_colors_table.set_sensitive(False)
+			fonts_colors_table.set_property('visible', False)
 
 	def on_preferences_window_key_press_event(self, widget, event):
 		if event.keyval == gtk.keysyms.Escape: # ESCAPE
@@ -165,31 +177,35 @@ class Preferences_window:
 			'group_text_fontbutton': 'groupfont',
 			'user_text_fontbutton': 'userfont'
 		}
+
 		model = widget.get_model()
 		active = widget.get_active()
 		theme = model[active][0]
+		fonts_colors_table = self.xml.get_widget('fonts_colors_table')
+		if theme == 'Custom':
+			#fonts_colors_table.set_sensitive(True)
+			fonts_colors_table.set_property('visible', True)
+		else:
+			#fonts_colors_table.set_sensitive(False)
+			fonts_colors_table.set_property('visible', False)
 		for w in color_widgets:
 			widg = self.xml.get_widget(w)
 			if theme == 'Custom':
 				widg.set_color(gtk.gdk.color_parse(gajim.config.get(
 					color_widgets[w])))
-				widg.set_sensitive(True)
 			else:
 				widg.set_color(gtk.gdk.color_parse(self.theme_default[theme]\
 					[color_widgets[w]]))
-				widg.set_sensitive(False)
 		for w in font_widgets:
 			widg = self.xml.get_widget(w)
 			if theme == 'Custom':
 				widg.set_font_name(gajim.config.get(font_widgets[w]))
-				widg.set_sensitive(True)
 			else:
 				widg.set_font_name(self.theme_default[theme][font_widgets[w]])
-				widg.set_sensitive(False)
 				
 		gajim.config.set('roster_theme', theme)
-		self.plugin.roster.draw_roster()
 		self.plugin.save_config()
+		self.plugin.roster.draw_roster()
 
 	def merge_windows(self, kind):
 		for acct in gajim.connections:
diff --git a/src/gtkgui.glade b/src/gtkgui.glade
index aa00870db9..867d9ede2f 100644
--- a/src/gtkgui.glade
+++ b/src/gtkgui.glade
@@ -2928,9 +2928,55 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkTable" id="table17">
+		<widget class="GtkHBox" id="hbox2956">
 		  <property name="visible">True</property>
-		  <property name="n_rows">5</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">10</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label249">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Roster theme:</property>
+		      <property name="use_underline">False</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>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkComboBox" id="theme_combobox">
+		      <property name="visible">True</property>
+		      <signal name="changed" handler="on_theme_combobox_changed" last_modification_time="Fri, 29 Apr 2005 11:44:52 GMT"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkTable" id="fonts_colors_table">
+		  <property name="visible">True</property>
+		  <property name="n_rows">4</property>
 		  <property name="n_columns">4</property>
 		  <property name="homogeneous">False</property>
 		  <property name="row_spacing">5</property>
@@ -3143,30 +3189,6 @@
 		    </packing>
 		  </child>
 
-		  <child>
-		    <widget class="GtkLabel" id="label173">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</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>
-		    </widget>
-		    <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"></property>
-		    </packing>
-		  </child>
-
 		  <child>
 		    <widget class="GtkColorButton" id="account_text_bg_colorbutton">
 		      <property name="visible">True</property>
@@ -3274,24 +3296,10 @@
 		      <property name="y_options"></property>
 		    </packing>
 		  </child>
-
-		  <child>
-		    <widget class="GtkComboBox" id="theme_combobox">
-		      <property name="visible">True</property>
-		      <signal name="changed" handler="on_theme_combobox_changed" last_modification_time="Fri, 29 Apr 2005 11:44:52 GMT"/>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">4</property>
-		      <property name="bottom_attach">5</property>
-		      <property name="x_options">fill</property>
-		    </packing>
-		  </child>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">False</property>
+		  <property name="expand">True</property>
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
-- 
GitLab