diff options
-rw-r--r-- | libempathy-gtk/Makefile.am | 1 | ||||
-rw-r--r-- | libempathy-gtk/empathy-account-widget-sip.glade | 506 | ||||
-rw-r--r-- | libempathy-gtk/empathy-account-widget.c | 49 | ||||
-rw-r--r-- | libempathy-gtk/empathy-account-widget.h | 1 | ||||
-rw-r--r-- | libempathy-gtk/empathy-accounts-dialog.c | 4 |
5 files changed, 561 insertions, 0 deletions
diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am index d29a11f6b..1b9a24500 100644 --- a/libempathy-gtk/Makefile.am +++ b/libempathy-gtk/Makefile.am @@ -110,6 +110,7 @@ glade_DATA = \ empathy-account-widget-generic.glade \ empathy-account-widget-jabber.glade \ empathy-account-widget-msn.glade \ + empathy-account-widget-sip.glade \ empathy-account-widget-salut.glade \ empathy-account-widget-irc.glade \ empathy-account-widget-icq.glade \ diff --git a/libempathy-gtk/empathy-account-widget-sip.glade b/libempathy-gtk/empathy-account-widget-sip.glade new file mode 100644 index 000000000..9acb2b4ad --- /dev/null +++ b/libempathy-gtk/empathy-account-widget-sip.glade @@ -0,0 +1,506 @@ +<?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_sip_settings"> + <property name="resizable">False</property> + <child> + <widget class="GtkVBox" id="vbox_sip_settings"> + <property name="visible">True</property> + <child> + <widget class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> + <property name="column_spacing">12</property> + <property name="row_spacing">6</property> + <child> + <widget class="GtkEntry" id="entry_registar"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_registar"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Registar:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">entry_registar</property> + </widget> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_password"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Pass_word:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">entry_password</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_userid"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_userid"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Username:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">entry_password</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <child> + <widget class="GtkEntry" id="entry_password"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + </child> + <child> + <widget class="GtkButton" id="button_forget"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip" translatable="yes">Forget password and clear the entry.</property> + <property name="response_id">0</property> + <child> + <widget class="GtkImage" id="image6"> + <property name="visible">True</property> + <property name="stock">gtk-clear</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <widget class="GtkExpander" id="expander_advanced"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="left_padding">12</property> + <child> + <widget class="GtkTable" id="table_advanced_sip_settings"> + <property name="visible">True</property> + <property name="n_rows">14</property> + <property name="n_columns">2</property> + <property name="column_spacing">6</property> + <property name="row_spacing">6</property> + <child> + <widget class="GtkSpinButton" id="spinbutton_port"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">0 0 65536 1 10 10</property> + <property name="climb_rate">1</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_local-ip"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">9</property> + <property name="bottom_attach">10</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_stun-server"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_keepalive-interval"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_keepalive-mechanism"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_transport"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_proxy"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_local-ip-address"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Local IP Address:</property> + <property name="mnemonic_widget">entry_local-ip</property> + </widget> + <packing> + <property name="top_attach">9</property> + <property name="bottom_attach">10</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_stun-port"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Stun port:</property> + <property name="mnemonic_widget">spinbutton_stun-port</property> + </widget> + <packing> + <property name="top_attach">8</property> + <property name="bottom_attach">9</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_stun-server"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Stun Server:</property> + <property name="mnemonic_widget">entry_stun-server</property> + </widget> + <packing> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_keepalive-interval"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Keepalive Interval:</property> + <property name="mnemonic_widget">entry_keepalive-interval</property> + </widget> + <packing> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_keepalive-mechanism"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Keepalive Mechanism:</property> + <property name="mnemonic_widget">entry_keepalive-mechanism</property> + </widget> + <packing> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_transport"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Transport:</property> + <property name="mnemonic_widget">entry_transport</property> + </widget> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_port"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Port:</property> + <property name="mnemonic_widget">spinbutton_stun-port</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_proxy"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Proxy Server:</property> + <property name="mnemonic_widget">entry_proxy</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkSpinButton" id="spinbutton_stun-port"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">0 0 65536 1 10 10</property> + <property name="climb_rate">1</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">8</property> + <property name="bottom_attach">9</property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton_discover-binding"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Discover Binding</property> + <property name="use_underline">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton_discover-stun"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Discover Stun</property> + <property name="use_underline">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="right_attach">2</property> + <property name="top_attach">6</property> + <property name="bottom_attach">7</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_local-port"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Local Port:</property> + <property name="mnemonic_widget">spinbutton_local-port</property> + </widget> + <packing> + <property name="top_attach">10</property> + <property name="bottom_attach">11</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_extra-auth-user"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Extra Auth User:</property> + <property name="mnemonic_widget">entry_extra-auth-user</property> + </widget> + <packing> + <property name="top_attach">11</property> + <property name="bottom_attach">12</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_extra-auth-password"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Extra Auth Password:</property> + <property name="mnemonic_widget">entry_extra-auth-password</property> + </widget> + <packing> + <property name="top_attach">12</property> + <property name="bottom_attach">13</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="checkbutton_avoid-difficult"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Avoid Difficult</property> + <property name="use_underline">True</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="right_attach">2</property> + <property name="top_attach">13</property> + <property name="bottom_attach">14</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkSpinButton" id="spinbutton_local-port"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">0 0 65536 1 10 10</property> + <property name="climb_rate">1</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">10</property> + <property name="bottom_attach">11</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_extra-auth-password"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">12</property> + <property name="bottom_attach">13</property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="entry_extra-auth-user"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">11</property> + <property name="bottom_attach">12</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkLabel" id="label_expander"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Advanced</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </widget> + </child> + </widget> +</glade-interface> diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c index 1519a2f5a..a22949235 100644 --- a/libempathy-gtk/empathy-account-widget.c +++ b/libempathy-gtk/empathy-account-widget.c @@ -538,6 +538,55 @@ empathy_account_widget_msn_new (McAccount *account) } GtkWidget * +empathy_account_widget_sip_new (McAccount *account) +{ + GladeXML *glade; + GtkWidget *widget; + gchar *filename; + + filename = empathy_file_lookup ("empathy-account-widget-sip.glade", + "libempathy-gtk"); + + glade = empathy_glade_get_file (filename, + "vbox_sip_settings", + NULL, + "vbox_sip_settings", &widget, + NULL); + + g_free (filename); + + empathy_account_widget_handle_params (account, glade, + "entry_userid", "account", + "entry_password", "password", + "entry_registar", "registar", + "entry_proxy","proxy-host", + "spinbutton_port", "port", + "entry_transport", "transport", + "checkbutton_discover-binding","discover-binding", + "entry_keepalive-mechanism", "keepalive-mechanism", + "entry_keepalive-interval", "keepalive-interval", + "checkbutton_discover-stun", "discover-stun", + "entry_stun-server", "stun-server", + "spinbutton_stun-port", "stun-port", + "entry_local-ip", "local-ip-address", + "spinbutton_local-port", "local-port", + "entry_extra-auth-user", "extra-auth-user", + "entry_extra-auth-password", "extra-auth-password", + "checkbutton_avoid-difficult", "avoid-difficult", + NULL); + + empathy_account_widget_add_forget_button (account, glade, + "button_forget", + "entry_password"); + + g_object_unref (glade); + + gtk_widget_show (widget); + + return widget; +} + +GtkWidget * empathy_account_widget_jabber_new (McAccount *account) { GladeXML *glade; diff --git a/libempathy-gtk/empathy-account-widget.h b/libempathy-gtk/empathy-account-widget.h index 2e4344c06..b7ebb6742 100644 --- a/libempathy-gtk/empathy-account-widget.h +++ b/libempathy-gtk/empathy-account-widget.h @@ -46,6 +46,7 @@ GtkWidget *empathy_account_widget_msn_new (McAccount *account); GtkWidget *empathy_account_widget_jabber_new (McAccount *account); GtkWidget *empathy_account_widget_icq_new (McAccount *account); GtkWidget *empathy_account_widget_yahoo_new (McAccount *account); +GtkWidget *empathy_account_widget_sip_new (McAccount *account); G_END_DECLS diff --git a/libempathy-gtk/empathy-accounts-dialog.c b/libempathy-gtk/empathy-accounts-dialog.c index dc2c13622..75b3c5472 100644 --- a/libempathy-gtk/empathy-accounts-dialog.c +++ b/libempathy-gtk/empathy-accounts-dialog.c @@ -281,6 +281,10 @@ accounts_dialog_update_account (EmpathyAccountsDialog *dialog, dialog->settings_widget = empathy_account_widget_yahoo_new (account); } + else if (!tp_strdiff (config_ui, "sofiasip")) { + dialog->settings_widget = + empathy_account_widget_sip_new (account); + } else { dialog->settings_widget = empathy_account_widget_generic_new (account); |