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

commit f10056b8cf87130073c9c3c752e78f72804017c1
Author: Priyank <[EMAIL PROTECTED]>
Date:   Sat Feb 9 19:34:49 2008 +0530

gfpm-repomanager: added support for adding new servers for a repository

diff --git a/src/gfpm-repomanager.c b/src/gfpm-repomanager.c
index ae35520..57838db 100644
--- a/src/gfpm-repomanager.c
+++ b/src/gfpm-repomanager.c
@@ -50,6 +50,7 @@ static GtkWidget *gfpm_servmgr_btnedit;
/* signal callbacks */
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);

void
gfpm_repomanager_init (void)
@@ -116,7 +117,10 @@ gfpm_repomanager_init (void)
/* connect important signals */
/* repository manager signals */
g_signal_connect (G_OBJECT(gfpm_repomgr_btnedit), "clicked", 
cb_gfpm_repomgr_btnedit_clicked, NULL);
+
+       /* server manager signals */
g_signal_connect (G_OBJECT(gfpm_servmgr_btndel), "clicked", 
cb_gfpm_servmgr_btndel_clicked, NULL);
+       g_signal_connect (G_OBJECT(gfpm_servmgr_btnadd), "clicked", 
cb_gfpm_servmgr_btnadd_clicked, NULL);

return;
}
@@ -472,6 +476,61 @@ cb_gfpm_repomgr_btnedit_clicked (GtkButton *button, 
gpointer data)
}

static void
+cb_gfpm_servmgr_btnadd_clicked (GtkButton *button, gpointer data)
+{
+       FILE            *fp = NULL;
+       gint            msgres = NULL;
+       gchar           *path = NULL;
+       gchar           *server = NULL;
+       GList           *rlist = NULL;
+       GList           *slist = NULL;
+       gfpm_repo_t     *rp = NULL;
+
+       server = gfpm_input (_("Add new server"), _("Enter the URL of the 
server: "), &msgres);
+       if (msgres != GTK_RESPONSE_ACCEPT)
+               return;
+       if (!strlen(server))
+               return;
+       /* check if the server already exists */
+       rlist = repolist->list;
+       while (rlist != NULL)
+       {
+               rp = rlist->data;
+               if (!strcmp(rp->name, curr_repo))
+               {
+                       slist = rp->servers;
+                       break;
+               }
+       }
+       while (slist != NULL)
+       {
+               if (!strcmp(slist->data,server))
+               {
+                       gfpm_error (_("Server already exists"), _("The server 
you're trying to add already exists"));
+                       return;
+               }
+               slist = g_list_next (slist);
+       }
+       path = g_strdup_printf ("%s/%s", REPO_PATH, curr_repo);
+       if ((fp=fopen (path,"a")) != NULL)
+       {
+               fprintf (fp, "\nServer = %s\n", server);
+               fclose (fp);
+               g_list_free (rp->servers);
+               rp->servers = gfpm_repomgr_get_servers_from_repofile (path);
+               gfpm_repomgr_populate_servtvw (curr_repo);
+
+       }
+       else
+       {
+               gfpm_error (_("Error"), _("Error opening repository file for 
editing"));
+       }
+       g_free (path);
+
+       return;
+}
+
+static void
cb_gfpm_servmgr_btndel_clicked (GtkButton *button, gpointer data)
{
GtkTreeSelection        *selection = NULL;
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to