Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm.git;a=commitdiff;h=00277067b11e8213b4939a383000d255dc089286

commit 00277067b11e8213b4939a383000d255dc089286
Author: Priyank Gosalia <[EMAIL PROTECTED]>
Date:   Tue Feb 19 11:03:21 2008 +0530

gfpm-repomanager: added support for moving server urls down in the repo file

diff --git a/src/gfpm-repomanager.c b/src/gfpm-repomanager.c
index 6e82302..4c2f86a 100644
--- a/src/gfpm-repomanager.c
+++ b/src/gfpm-repomanager.c
@@ -24,8 +24,11 @@
#include "gfpm-util.h"
#include <glib.h>

-#define CONF_FILE "/etc/pacman-g2.conf"
-#define REPO_PATH "/etc/pacman-g2/repos"
+#define CONF_FILE      "/etc/pacman-g2.conf"
+#define REPO_PATH      "/etc/pacman-g2/repos"
+
+#define        MOVE_UP         1
+#define MOVE_DN                0

static gfpm_repolist_t  *repolist = NULL;
static gchar                    *curr_repo = NULL;
@@ -55,6 +58,7 @@ static void cb_gfpm_repomgr_btnedit_clicked (GtkButton 
*button, gpointer data);
static void cb_gfpm_servmgr_btndel_clicked (GtkButton *button, gpointer data);
static void cb_gfpm_servmgr_btnadd_clicked (GtkButton *button, gpointer data);
static void cb_gfpm_servmgr_btnup_clicked (GtkButton *button, gpointer data);
+static void cb_gfpm_servmgr_btndown_clicked (GtkButton *button, gpointer data);

void
gfpm_repomanager_init (void)
@@ -82,17 +86,17 @@ gfpm_repomanager_init (void)
store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
renderer = gtk_cell_renderer_pixbuf_new ();
column = gtk_tree_view_column_new_with_attributes (_("S"),
-                                                                               
                                renderer,
-                                                                               
                                "pixbuf", 0,
-                                                                               
                                NULL);
+                                                               renderer,
+                                                               "pixbuf", 0,
+                                                               NULL);
gtk_tree_view_column_set_resizable (column, FALSE);
gtk_tree_view_append_column (GTK_TREE_VIEW(gfpm_repomgr_treeview), column);

renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (_("Repository"),
-                                                                               
                                renderer,
-                                                                               
                                "text", 1,
-                                                                               
                                NULL);
+                                                               renderer,
+                                                               "text", 1,
+                                                               NULL);
gtk_tree_view_column_set_resizable (column, FALSE);
gtk_tree_view_column_set_expand (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW(gfpm_repomgr_treeview), column);
@@ -102,17 +106,17 @@ gfpm_repomanager_init (void)
store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
renderer = gtk_cell_renderer_pixbuf_new ();
column = gtk_tree_view_column_new_with_attributes (_("S"),
-                                                                               
                                renderer,
-                                                                               
                                "pixbuf", 0,
-                                                                               
                                NULL);
+                                                               renderer,
+                                                               "pixbuf", 0,
+                                                               NULL);
gtk_tree_view_column_set_resizable (column, FALSE);
gtk_tree_view_append_column (GTK_TREE_VIEW(gfpm_servmgr_treeview), column);

renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (_("Server"),
-                                                                               
                                renderer,
-                                                                               
                                "text", 1,
-                                                                               
                                NULL);
+                                                               renderer,
+                                                               "text", 1,
+                                                               NULL);
gtk_tree_view_column_set_resizable (column, FALSE);
gtk_tree_view_column_set_expand (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW(gfpm_servmgr_treeview), column);
@@ -126,6 +130,7 @@ gfpm_repomanager_init (void)
g_signal_connect (G_OBJECT(gfpm_servmgr_btndel), "clicked", 
G_CALLBACK(cb_gfpm_servmgr_btndel_clicked), NULL);
g_signal_connect (G_OBJECT(gfpm_servmgr_btnadd), "clicked", 
G_CALLBACK(cb_gfpm_servmgr_btnadd_clicked), NULL);
g_signal_connect (G_OBJECT(gfpm_servmgr_btnmup), "clicked", 
G_CALLBACK(cb_gfpm_servmgr_btnup_clicked), NULL);
+       g_signal_connect (G_OBJECT(gfpm_servmgr_btnmdn), "clicked", 
G_CALLBACK(cb_gfpm_servmgr_btndown_clicked), NULL);

return;
}
@@ -449,7 +454,7 @@ gfpm_servmgr_delete_server (const char *server)
}

static void
-gfpm_servmgr_move_up_server (const char *server)
+gfpm_servmgr_move_server (const char *server, const int move_direction)
{
GList           *rlist = NULL;
GList           *slist = NULL;
@@ -471,9 +476,18 @@ gfpm_servmgr_move_up_server (const char *server)
gfpm_server_entry_t *s = slist->data;
if (!strcmp(s->url,server))
{
-                       gint pos = g_list_position (r->servers, slist);
-                       r->servers = g_list_delete_link (r->servers, slist);
-                       r->servers = g_list_insert (r->servers, s, pos-1);
+                       if (move_direction == MOVE_UP)
+                       {
+                               gint pos = g_list_position (r->servers, slist);
+                               r->servers = g_list_delete_link (r->servers, 
slist);
+                               r->servers = g_list_insert (r->servers, s, 
pos-1);
+                       }
+                       else
+                       {
+                               gint pos = g_list_position (r->servers, slist);
+                               r->servers = g_list_delete_link (r->servers, 
slist);
+                               r->servers = g_list_insert (r->servers, s, 
pos+1);
+                       }
break;
}
slist = g_list_next (slist);
@@ -647,6 +661,23 @@ cb_gfpm_servmgr_btnup_clicked (GtkButton *button, gpointer 
data)
if (gtk_tree_selection_get_selected(selection, &model, &iter))
{
gtk_tree_model_get (model, &iter, 1, &server, -1);
-               gfpm_servmgr_move_up_server (server);
+               gfpm_servmgr_move_server (server, MOVE_UP);
+       }
+}
+
+static void
+cb_gfpm_servmgr_btndown_clicked (GtkButton *button, gpointer data)
+{
+       GtkTreeSelection        *selection = NULL;
+       GtkTreeModel            *model;
+       GtkTreeIter                     iter;
+       gchar                           *server = NULL;
+
+       selection = gtk_tree_view_get_selection 
(GTK_TREE_VIEW(gfpm_servmgr_treeview));
+       if (gtk_tree_selection_get_selected(selection, &model, &iter))
+       {
+               gtk_tree_model_get (model, &iter, 1, &server, -1);
+               gfpm_servmgr_move_server (server, MOVE_DN);
}
}
+
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to