static PlannerCmd *
property_cmd_remove (PlannerWindow *window,
		     MrpProject	   *project,
		     GType          owner,
		     const gchar   *name)
{
	PlannerCmd        *cmd_base;
	PropertyCmdRemove *cmd;
	MrpProperty       *property;

	cmd_base = planner_cmd_new (PropertyCmdRemove,
				    _("Remove property"),
				    property_cmd_remove_do,
				    property_cmd_remove_undo,
				    property_cmd_remove_free);

	cmd = (PropertyCmdRemove *) cmd_base;

	cmd->project = g_object_ref (project);
	cmd->owner = owner;
	cmd->name = g_strdup (name);

	property = mrp_project_get_property (project,
					     name,
					     owner);

	cmd->property = mrp_property_ref (property);
	cmd->type = mrp_property_get_property_type (property);
	cmd->description = g_strdup (mrp_property_get_description (property));
	cmd->label_text = g_strdup ( mrp_property_get_label (property));
	cmd->user_defined = mrp_property_get_user_defined (property);

	cmd->tasks = g_hash_table_new (NULL, NULL);
	cmd->resources = g_hash_table_new (NULL, NULL);

	planner_cmd_manager_insert_and_do (planner_window_get_cmd_manager (window),
					   cmd_base);

	return cmd_base;
}
Exemple #2
0
static void
mpp_write_property_specs (MrpParser *parser, xmlNodePtr node)
{
	GList           *properties, *l;
	xmlNodePtr       child;
	MrpProperty     *property;
	MrpPropertyType  type;

	properties = mrp_project_get_properties_from_type (parser->project,
							   MRP_TYPE_PROJECT);

	node = xmlNewChild (node, NULL, "properties", NULL);

	for (l = properties; l; l = l->next) {
		property = l->data;

		child = xmlNewChild (node, NULL, "property", NULL);

		xmlSetProp (child, "name", mrp_property_get_name (property));

		type = mrp_property_get_property_type (property);
		xmlSetProp (child, "type", mpp_property_type_to_string (type));

		xmlSetProp (child, "owner", "project");
		xmlSetProp (child, "label", mrp_property_get_label (property));
		xmlSetProp (child, "description", mrp_property_get_description (property));
	}

	g_list_free (properties);

	properties = mrp_project_get_properties_from_type (parser->project,
							   MRP_TYPE_TASK);

	for (l = properties; l; l = l->next) {
		property = l->data;

		child = xmlNewChild (node, NULL, "property", NULL);

		xmlSetProp (child, "name", mrp_property_get_name (property));

		type = mrp_property_get_property_type (property);
		xmlSetProp (child, "type", mpp_property_type_to_string (type));

		xmlSetProp (child, "owner", "task");
		xmlSetProp (child, "label", mrp_property_get_label (property));
		xmlSetProp (child, "description", mrp_property_get_description (property));
	}

	g_list_free (properties);

	properties = mrp_project_get_properties_from_type (parser->project,
							   MRP_TYPE_RESOURCE);

	for (l = properties; l; l = l->next) {
		property = l->data;

		child = xmlNewChild (node, NULL, "property", NULL);

		xmlSetProp (child, "name", mrp_property_get_name (property));

		type = mrp_property_get_property_type (property);
		xmlSetProp (child, "type", mpp_property_type_to_string (type));

		xmlSetProp (child, "owner", "resource");
		xmlSetProp (child, "label", mrp_property_get_label (property));
		xmlSetProp (child, "description", mrp_property_get_description (property));
	}

	g_list_free (properties);
}