Пример #1
0
static gboolean
get_script_iter (DialogData  *data,
	         GthScript   *script,
	         GtkTreeIter *iter)
{
	GtkTreeModel *model = GTK_TREE_MODEL (data->list_store);
	gboolean      found = FALSE;
	const char   *script_id;

	script_id = gth_script_get_id (script);
	if (! gtk_tree_model_get_iter_first (model, iter))
		return FALSE;

	do {
		GthScript *list_script;

		gtk_tree_model_get (model, iter, COLUMN_SCRIPT, &list_script, -1);
		found = g_strcmp0 (script_id, gth_script_get_id (list_script)) == 0;

		g_object_unref (list_script);
	}
	while (! found && gtk_tree_model_iter_next (model, iter));

	return found;
}
Пример #2
0
static void
update_scripts_menu (BrowserData *data)
{
	GthMenuManager	*menu_manager;
	GList		*script_list;
	GList		*scan;

	menu_manager = gth_browser_get_menu_manager (data->browser, GTH_BROWSER_MENU_MANAGER_TOOLS3);
	if (data->menu_merge_id != 0)
		gth_menu_manager_remove_entries (menu_manager, data->menu_merge_id);
	data->menu_merge_id = gth_menu_manager_new_merge_id (menu_manager);

	script_list = gth_script_file_get_scripts (gth_script_file_get ());
	for (scan = script_list; scan; scan = scan->next) {
		GthScript *script = scan->data;
		char      *detailed_action;

		if (! gth_script_is_visible (script))
			continue;

		detailed_action = g_strdup_printf ("win.exec-script('%s')", gth_script_get_id (script));
		gth_menu_manager_append_entry (menu_manager,
					       data->menu_merge_id,
					       gth_script_get_display_name (script),
					       detailed_action,
					       NULL,
					       NULL);

		g_free (detailed_action);
	}

	list_tools__gth_browser_update_sensitivity_cb (data->browser);

	_g_object_list_unref (script_list);
}