aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-02-10 06:57:26 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-02-10 06:57:26 +0800
commit539ac8e035c8c7254f0d051432a3dc86b583ee62 (patch)
tree4c137875164ee0afa614e7fa80d07d99e2192f3d
parent3638553934f4bd3cafe80e67e2ea9a17bdba53c2 (diff)
downloadgsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.tar
gsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.tar.gz
gsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.tar.bz2
gsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.tar.lz
gsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.tar.xz
gsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.tar.zst
gsoc2013-empathy-539ac8e035c8c7254f0d051432a3dc86b583ee62.zip
set cursor to the address cell when adding a new server
-rw-r--r--libempathy-gtk/empathy-irc-network-dialog.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/libempathy-gtk/empathy-irc-network-dialog.c b/libempathy-gtk/empathy-irc-network-dialog.c
index 9dafb6c43..95294d130 100644
--- a/libempathy-gtk/empathy-irc-network-dialog.c
+++ b/libempathy-gtk/empathy-irc-network-dialog.c
@@ -82,9 +82,9 @@ enum {
static void
add_server_to_store (GtkListStore *store,
- EmpathyIrcServer *server)
+ EmpathyIrcServer *server,
+ GtkTreeIter *iter)
{
- GtkTreeIter iter;
gchar *address;
guint port;
gboolean ssl;
@@ -95,8 +95,8 @@ add_server_to_store (GtkListStore *store,
"ssl", &ssl,
NULL);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, COL_SRV_OBJ, server,
+ gtk_list_store_append (store, iter);
+ gtk_list_store_set (store, iter, COL_SRV_OBJ, server,
COL_ADR, address, COL_PORT, port, COL_SSL, ssl, -1);
g_free (address);
@@ -119,8 +119,9 @@ irc_network_dialog_setup (EmpathyIrcNetworkDialog *dialog)
for (l = servers; l != NULL; l = g_slist_next (l))
{
EmpathyIrcServer *server = l->data;
+ GtkTreeIter iter;
- add_server_to_store (store, server);
+ add_server_to_store (store, server, &iter);
}
/* TODO charset */
@@ -235,16 +236,24 @@ irc_network_dialog_button_add_clicked_cb (GtkWidget *widget,
{
EmpathyIrcServer *server;
GtkListStore *store;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GtkTreeViewColumn *column;
store = GTK_LIST_STORE (gtk_tree_view_get_model (
GTK_TREE_VIEW (dialog->treeview_servers)));
server = empathy_irc_server_new (_("new server"), 6667, FALSE);
empathy_irc_network_add_server (dialog->network, server);
- add_server_to_store (store, server);
+ add_server_to_store (store, server, &iter);
- /* TODO: Set the focus in the address cell of this new server */
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), &iter);
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->treeview_servers),
+ 0);
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (dialog->treeview_servers), path,
+ column, TRUE);
+ gtk_tree_path_free (path);
g_object_unref (server);
}