aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-02-08 10:29:58 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-02-08 10:29:58 +0800
commitdfd79158f96071d135526a9e2d5b530483b57c3f (patch)
tree2d41d8f1b95d5b590d0a00b9766fe31c2211c0e4 /libempathy-gtk
parent8df2bb20d64b4f89126145fc75b4f5c63365c215 (diff)
downloadgsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.tar
gsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.tar.gz
gsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.tar.bz2
gsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.tar.lz
gsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.tar.xz
gsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.tar.zst
gsoc2013-empathy-dfd79158f96071d135526a9e2d5b530483b57c3f.zip
remove the New.. entry from the combobox
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-account-widget-irc.c151
1 files changed, 41 insertions, 110 deletions
diff --git a/libempathy-gtk/empathy-account-widget-irc.c b/libempathy-gtk/empathy-account-widget-irc.c
index 55d9c5718..13295190a 100644
--- a/libempathy-gtk/empathy-account-widget-irc.c
+++ b/libempathy-gtk/empathy-account-widget-irc.c
@@ -202,8 +202,7 @@ account_widget_irc_button_network_clicked_cb (GtkWidget *button,
model = gtk_combo_box_get_model (GTK_COMBO_BOX (settings->combobox_network));
gtk_tree_model_get (model, &iter, COL_NETWORK_OBJ, &network, -1);
- if (network == NULL)
- return;
+ g_assert (network != NULL);
window = empathy_get_toplevel_window (settings->vbox_settings);
dialog = irc_network_dialog_show (network, GTK_WIDGET (window));
@@ -227,8 +226,7 @@ account_widget_irc_button_remove_clicked_cb (GtkWidget *button,
model = gtk_combo_box_get_model (GTK_COMBO_BOX (settings->combobox_network));
gtk_tree_model_get (model, &iter, COL_NETWORK_OBJ, &network, -1);
- if (network == NULL)
- return;
+ g_assert (network != NULL);
g_object_get (network, "name", &name, NULL);
empathy_debug (DEBUG_DOMAIN, "Remove network %s", name);
@@ -236,6 +234,13 @@ account_widget_irc_button_remove_clicked_cb (GtkWidget *button,
gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
empathy_irc_network_manager_remove (settings->network_manager, network);
+ /* Select the first network */
+ if (gtk_tree_model_get_iter_first (model, &iter))
+ {
+ gtk_combo_box_set_active_iter (
+ GTK_COMBO_BOX (settings->combobox_network), &iter);
+ }
+
g_free (name);
g_object_unref (network);
}
@@ -248,59 +253,6 @@ account_widget_irc_button_add_network_clicked_cb (GtkWidget *button,
g_print ("add network\n");
}
-static gboolean
-account_widget_irc_is_separator (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data)
-{
- GtkTreePath *path;
- gboolean result;
-
- path = gtk_tree_model_get_path (model, iter);
- result = gtk_tree_path_get_indices (path)[0] == 0;
- gtk_tree_path_free (path);
-
- /* return result; */
- /* FIXME: "New..." disappear if we display the separator */
- return FALSE;
-}
-
-static gint
-account_widget_irc_sort (GtkTreeModel *model,
- GtkTreeIter *a,
- GtkTreeIter *b,
- gpointer user_data)
-{
- gchar *name_a, *name_b;
- EmpathyIrcNetwork *network_a, *network_b;
- gint result;
-
- gtk_tree_model_get (model, a,
- COL_NETWORK_OBJ, &network_a,
- COL_NETWORK_NAME, &name_a,
- -1);
- gtk_tree_model_get (model, b,
- COL_NETWORK_OBJ, &network_b,
- COL_NETWORK_NAME, &name_b,
- -1);
-
- if (network_a == NULL)
- result = -1;
- else if (network_b == NULL)
- result = 1;
- else
- result = strcmp (name_a, name_b);
-
- g_free (name_a);
- g_free (name_b);
- if (network_a != NULL)
- g_object_unref (network_a);
- if (network_b != NULL)
- g_object_unref (network_b);
-
- return result;
-}
-
static void
unset_server_values (EmpathyAccountWidgetIrc *settings)
{
@@ -316,6 +268,7 @@ account_widget_irc_combobox_network_changed_cb (GtkWidget *combobox,
GtkTreeIter iter;
GtkTreeModel *model;
EmpathyIrcNetwork *network;
+ GSList *servers;
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combobox), &iter))
{
@@ -326,47 +279,40 @@ account_widget_irc_combobox_network_changed_cb (GtkWidget *combobox,
model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox));
gtk_tree_model_get (model, &iter, COL_NETWORK_OBJ, &network, -1);
- if (network == NULL)
+ g_assert (network != NULL);
+
+ servers = empathy_irc_network_get_servers (network);
+ if (g_slist_length (servers) > 0)
{
- /* TODO Open new network dialog */
+ /* set the first server as CM server */
+ EmpathyIrcServer *server = servers->data;
+ gchar *address;
+ guint port;
+ gboolean ssl;
+
+ g_object_get (server,
+ "address", &address,
+ "port", &port,
+ "ssl", &ssl,
+ NULL);
+
+ empathy_debug (DEBUG_DOMAIN, "Setting server to %s", address);
+ mc_account_set_param_string (settings->account, "server", address);
+ mc_account_set_param_int (settings->account, "port", port);
+ mc_account_set_param_boolean (settings->account, "use-ssl", ssl);
+ /* TODO: charset */
+
+ g_free (address);
}
else
{
- GSList *servers;
-
- servers = empathy_irc_network_get_servers (network);
- if (g_slist_length (servers) > 0)
- {
- /* set the first server as CM server */
- EmpathyIrcServer *server = servers->data;
- gchar *address;
- guint port;
- gboolean ssl;
-
- g_object_get (server,
- "address", &address,
- "port", &port,
- "ssl", &ssl,
- NULL);
-
- empathy_debug (DEBUG_DOMAIN, "Setting server to %s", address);
- mc_account_set_param_string (settings->account, "server", address);
- mc_account_set_param_int (settings->account, "port", port);
- mc_account_set_param_boolean (settings->account, "use-ssl", ssl);
- /* TODO: charset */
-
- g_free (address);
- }
- else
- {
- /* No server. Unset values */
- unset_server_values (settings);
- }
-
- g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
- g_slist_free (servers);
- g_object_unref (network);
+ /* No server. Unset values */
+ unset_server_values (settings);
}
+
+ g_slist_foreach (servers, (GFunc) g_object_unref, NULL);
+ g_slist_free (servers);
+ g_object_unref (network);
}
static void
@@ -406,11 +352,10 @@ fill_networks_model (EmpathyAccountWidgetIrc *settings,
if (network_to_select == NULL)
{
- /* Select the first network. So skip the "New..." */
+ /* Select the first network */
GtkTreeIter iter;
- if (gtk_tree_model_get_iter_first (model, &iter) &&
- gtk_tree_model_iter_next (model, &iter))
+ if (gtk_tree_model_get_iter_first (model, &iter))
{
gtk_combo_box_set_active_iter (
GTK_COMBO_BOX (settings->combobox_network), &iter);
@@ -528,7 +473,6 @@ empathy_account_widget_irc_new (McAccount *account)
gchar *dir, *user_file_with_path, *global_file_with_path;
GladeXML *glade;
GtkListStore *store;
- GtkTreeIter iter;
GtkCellRenderer *renderer;
GtkSizeGroup *size_group;
GtkWidget *label_network, *label_nick, *label_fullname;
@@ -574,10 +518,6 @@ empathy_account_widget_irc_new (McAccount *account)
/* Fill the networks combobox */
store = gtk_list_store_new (2, G_TYPE_OBJECT, G_TYPE_STRING);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, COL_NETWORK_OBJ, NULL,
- COL_NETWORK_NAME, _("New..."), -1);
-
gtk_cell_layout_clear (GTK_CELL_LAYOUT (settings->combobox_network));
renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (settings->combobox_network),
@@ -590,15 +530,6 @@ empathy_account_widget_irc_new (McAccount *account)
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
COL_NETWORK_NAME,
GTK_SORT_ASCENDING);
- gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (store),
- COL_NETWORK_NAME,
- account_widget_irc_sort,
- NULL, NULL);
-
- gtk_combo_box_set_row_separator_func (
- GTK_COMBO_BOX (settings->combobox_network),
- account_widget_irc_is_separator,
- NULL, NULL);
gtk_combo_box_set_model (GTK_COMBO_BOX (settings->combobox_network),
GTK_TREE_MODEL (store));