Git-Url:
http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm.git;a=commitdiff;h=35bd732c34b31d96858ed0e8eb4cd57aa4d2a7af
commit 35bd732c34b31d96858ed0e8eb4cd57aa4d2a7af
Author: Priyank <[EMAIL PROTECTED]>
Date: Fri Feb 29 07:02:00 2008 +0530
gfpm-repomanager: repositories can now be enabled/disabled
diff --git a/src/gfpm-repomanager.c b/src/gfpm-repomanager.c
index d0fec8a..07aacb3 100644
--- a/src/gfpm-repomanager.c
+++ b/src/gfpm-repomanager.c
@@ -75,6 +75,7 @@ static void cb_gfpm_servmgr_btnedit_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);
+static void cb_gfpm_repo_enable_toggled (GtkCellRendererToggle *toggle, gchar
*path_str, gpointer data);
void
gfpm_repomanager_init (void)
@@ -118,7 +119,7 @@ gfpm_repomanager_init (void)
renderer = gtk_cell_renderer_toggle_new ();
g_object_set (G_OBJECT(renderer), "activatable", TRUE, NULL);
- //g_signal_connect (renderer, "toggled",
G_CALLBACK(_selection_toggled), store);
+ g_signal_connect (renderer, "toggled",
G_CALLBACK(cb_gfpm_repo_enable_toggled), store);
column = gtk_tree_view_column_new_with_attributes (_("Enabled"),
renderer,
"active", 1,
@@ -173,6 +174,47 @@ gfpm_repomanager_init (void)
return;
}
+static void
+cb_gfpm_repo_enable_toggled (GtkCellRendererToggle *toggle, gchar *path_str,
gpointer data)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ gchar *sel = NULL;
+ gboolean check;
+ GList *repos = NULL;
+ gfpm_repo_t *repo_r = NULL;
+
+ model = (GtkTreeModel *)data;
+ path = gtk_tree_path_new_from_string (path_str);
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_model_get (model, &iter, 1, &check, 2, &sel, -1);
+
+ /* manually toggle the toggle button */
+ check ^= 1;
+ gtk_list_store_set (GTK_LIST_STORE(model), &iter, 1, check, -1);
+
+ repos = repolist->list;
+ while (repos!=NULL)
+ {
+ repo_r = repos->data;
+ if (!strcmp(repo_r->name, sel))
+ {
+ repo_r->enabled = (check==TRUE) ? TRUE:FALSE;
+ break;
+ }
+ repos = g_list_next (repos);
+ }
+
+ /* write config file */
+ gfpm_write_config_file ();
+
+ g_free (sel);
+ gtk_tree_path_free (path);
+
+ return;
+}
+
/* This function replaces every occurence of
* [foo]
* Server = http://foo.com/
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git