empathy r706 - trunk/libempathy-gtk



Author: xclaesse
Date: Sat Mar  8 14:59:00 2008
New Revision: 706
URL: http://svn.gnome.org/viewvc/empathy?rev=706&view=rev

Log:
Add an advanced expander in the generic setting widget. Fixes bug #466521 (Marco Barisione).


Added:
   trunk/libempathy-gtk/empathy-account-widget-generic.glade
Modified:
   trunk/libempathy-gtk/Makefile.am
   trunk/libempathy-gtk/empathy-account-widget.c

Modified: trunk/libempathy-gtk/Makefile.am
==============================================================================
--- trunk/libempathy-gtk/Makefile.am	(original)
+++ trunk/libempathy-gtk/Makefile.am	Sat Mar  8 14:59:00 2008
@@ -127,6 +127,7 @@
 	empathy-preferences.glade		\
 	empathy-presence-chooser.glade		\
 	empathy-accounts-dialog.glade		\
+	empathy-account-widget-generic.glade	\
 	empathy-account-widget-jabber.glade	\
 	empathy-account-widget-msn.glade	\
 	empathy-account-widget-salut.glade	\

Added: trunk/libempathy-gtk/empathy-account-widget-generic.glade
==============================================================================
--- (empty file)
+++ trunk/libempathy-gtk/empathy-account-widget-generic.glade	Sat Mar  8 14:59:00 2008
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
+<glade-interface>
+  <widget class="GtkWindow" id="account_generic_settings">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">generic account settings</property>
+    <property name="resizable">False</property>
+    <child>
+      <widget class="GtkVBox" id="vbox_generic_settings">
+        <property name="visible">True</property>
+        <property name="spacing">6</property>
+        <child>
+          <widget class="GtkTable" id="table_common_settings">
+            <property name="visible">True</property>
+            <property name="n_columns">3</property>
+            <property name="column_spacing">12</property>
+            <property name="row_spacing">6</property>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkExpander" id="expander1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <widget class="GtkScrolledWindow" id="scrolledwindow1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <child>
+                  <widget class="GtkViewport" id="viewport1">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="resize_mode">GTK_RESIZE_QUEUE</property>
+                    <child>
+                      <widget class="GtkTable" id="table_advanced_settings">
+                        <property name="visible">True</property>
+                        <property name="n_columns">3</property>
+                        <property name="column_spacing">12</property>
+                        <property name="row_spacing">6</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">&lt;b&gt;Advanced&lt;/b&gt;</property>
+                <property name="use_markup">True</property>
+              </widget>
+              <packing>
+                <property name="type">label_item</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+</glade-interface>

Modified: trunk/libempathy-gtk/empathy-account-widget.c
==============================================================================
--- trunk/libempathy-gtk/empathy-account-widget.c	(original)
+++ trunk/libempathy-gtk/empathy-account-widget.c	Sat Mar  8 14:59:00 2008
@@ -239,12 +239,12 @@
 
 static void
 accounts_widget_generic_setup (McAccount *account,
-			       GtkWidget *table_settings)
+			       GtkWidget *table_common_settings,
+			       GtkWidget *table_advanced_settings)
 {
 	McProtocol *protocol;
 	McProfile  *profile;
 	GSList     *params, *l;
-	guint       n_rows = 0;
 
 	profile = mc_account_get_profile (account);
 	protocol = mc_profile_get_protocol (profile);
@@ -263,11 +263,19 @@
 
 	for (l = params; l; l = l->next) {
 		McProtocolParam *param;
+		GtkWidget       *table_settings;
+		guint            n_rows = 0;
 		GtkWidget       *widget = NULL;
 		gchar           *param_name_formatted;
 
 		param = l->data;
+		if (param->flags & MC_PROTOCOL_PARAM_REQUIRED) {
+			table_settings = table_common_settings;
+		} else {
+			table_settings = table_advanced_settings;
+		}
 		param_name_formatted = account_widget_generic_format_param_name (param->name);
+		g_object_get (table_settings, "n-rows", &n_rows, NULL);
 		gtk_table_resize (GTK_TABLE (table_settings), ++n_rows, 2);
 
 		if (param->signature[0] == 's') {
@@ -434,26 +442,28 @@
 GtkWidget *
 empathy_account_widget_generic_new (McAccount *account)
 {
-	GtkWidget *table_settings;
-	GtkWidget *sw;
+	GladeXML  *glade;
+	GtkWidget *widget;
+	GtkWidget *table_common_settings;
+	GtkWidget *table_advanced_settings;
 
 	g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL);
 
-	table_settings = gtk_table_new (0, 2, FALSE);
-	gtk_table_set_row_spacings (GTK_TABLE (table_settings), 6);
-	gtk_table_set_col_spacings (GTK_TABLE (table_settings), 6);
-	sw = gtk_scrolled_window_new (NULL, NULL);
-	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
-					GTK_POLICY_AUTOMATIC,
-					GTK_POLICY_AUTOMATIC);
-	gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw),
-					       table_settings);
-	
-	accounts_widget_generic_setup (account, table_settings);
+	glade = empathy_glade_get_file ("empathy-account-widget-generic.glade",
+					"vbox_generic_settings",
+					NULL,
+					"vbox_generic_settings", &widget,
+					"table_common_settings", &table_common_settings,
+					"table_advanced_settings", &table_advanced_settings,
+					NULL);
+
+	accounts_widget_generic_setup (account, table_common_settings, table_advanced_settings);
 
-	gtk_widget_show_all (sw);
+	g_object_unref (glade);
 
-	return sw;
+	gtk_widget_show_all (widget);
+
+	return widget;
 }
 
 GtkWidget *



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]