aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-irc-network-dialog.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2008-02-10 07:13:23 +0800
committerGuillaume Desmottes <gdesmott@gnome.org>2008-02-10 07:13:23 +0800
commitf123d200a52a10867fa539ea058be6031f07967e (patch)
tree0ac7ca9895f8760bcbb610e303a8888babe57195 /libempathy-gtk/empathy-irc-network-dialog.c
parent539ac8e035c8c7254f0d051432a3dc86b583ee62 (diff)
downloadgsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.tar
gsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.tar.gz
gsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.tar.bz2
gsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.tar.lz
gsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.tar.xz
gsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.tar.zst
gsoc2013-empathy-f123d200a52a10867fa539ea058be6031f07967e.zip
move up/down server in the treeview
Diffstat (limited to 'libempathy-gtk/empathy-irc-network-dialog.c')
-rw-r--r--libempathy-gtk/empathy-irc-network-dialog.c61
1 files changed, 55 insertions, 6 deletions
diff --git a/libempathy-gtk/empathy-irc-network-dialog.c b/libempathy-gtk/empathy-irc-network-dialog.c
index 95294d130..68ece5d5e 100644
--- a/libempathy-gtk/empathy-irc-network-dialog.c
+++ b/libempathy-gtk/empathy-irc-network-dialog.c
@@ -281,11 +281,60 @@ irc_network_dialog_button_remove_clicked_cb (GtkWidget *widget,
}
static void
-irc_network_dialog_button_up_down_clicked_cb (GtkWidget *widget,
- EmpathyIrcNetworkDialog *dialog)
+irc_network_dialog_button_up_clicked_cb (GtkWidget *widget,
+ EmpathyIrcNetworkDialog *dialog)
+{
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter, iter_prev;
+ GtkTreePath *path;
+
+ selection = gtk_tree_view_get_selection (
+ GTK_TREE_VIEW (dialog->treeview_servers));
+
+ /* TODO: move EmpathyIrcServer */
+ if (gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ path = gtk_tree_model_get_path (model, &iter);
+
+ if (!gtk_tree_path_prev (path))
+ {
+ gtk_tree_path_free (path);
+ return;
+ }
+
+ gtk_tree_model_get_iter (model, &iter_prev, path);
+ gtk_list_store_swap (GTK_LIST_STORE (model), &iter_prev, &iter);
+
+ gtk_tree_path_free (path);
+ }
+}
+
+static void
+irc_network_dialog_button_down_clicked_cb (GtkWidget *widget,
+ EmpathyIrcNetworkDialog *dialog)
{
- /* TODO */
- g_print ("up-down\n");
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter, iter_prev;
+ GtkTreePath *path;
+
+ selection = gtk_tree_view_get_selection (
+ GTK_TREE_VIEW (dialog->treeview_servers));
+
+ /* TODO: move EmpathyIrcServer */
+ if (gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ path = gtk_tree_model_get_path (model, &iter);
+
+ gtk_tree_path_next (path);
+ if (gtk_tree_model_get_iter (model, &iter_prev, path))
+ {
+ gtk_list_store_swap (GTK_LIST_STORE (model), &iter_prev, &iter);
+ }
+
+ gtk_tree_path_free (path);
+ }
}
static void
@@ -394,8 +443,8 @@ irc_network_dialog_show (EmpathyIrcNetwork *network,
"entry_network", "focus-out-event", irc_network_dialog_network_focus_cb,
"button_add", "clicked", irc_network_dialog_button_add_clicked_cb,
"button_remove", "clicked", irc_network_dialog_button_remove_clicked_cb,
- "button_up", "clicked", irc_network_dialog_button_up_down_clicked_cb,
- "button_down", "clicked", irc_network_dialog_button_up_down_clicked_cb,
+ "button_up", "clicked", irc_network_dialog_button_up_clicked_cb,
+ "button_down", "clicked", irc_network_dialog_button_down_clicked_cb,
NULL);
g_object_unref (glade);