예제 #1
0
/**
 * cmd_slicer_refresh:
 * @wbc: the workbook control.
 **/
gboolean
cmd_slicer_refresh (WorkbookControl *wbc)
{
	CmdSlicerRefresh *me;
	char *r_name;
	SheetView *sv = wb_control_cur_sheet_view (wbc);
	GnmSheetSlicer *slicer;

	slicer = gnm_sheet_slicers_at_pos (sv->sheet, &sv->edit_pos);
	if (NULL == slicer)
		return FALSE;

	me = g_object_new (CMD_SLICER_REFRESH_TYPE, NULL);
	me->cmd.sheet = sv_sheet (sv);
	me->cmd.size = 1;  /* Updated below.  */
	me->orig_content = NULL;
	me->slicer = slicer;

	r_name = undo_range_name (me->cmd.sheet,
		gnm_sheet_slicer_get_range (slicer));
	me->cmd.cmd_descriptor = g_strdup_printf (_("Refreshing DataSlicer in %s"), r_name);
	g_free (r_name);

	return gnm_command_push_undo (wbc, G_OBJECT (me));
}
예제 #2
0
/**
 * undo_cell_pos_name:
 * @sheet:
 * @pos:
 *
 * Returns the range name depending on the preference setting.
 **/
char *
undo_cell_pos_name (Sheet const *sheet, GnmCellPos const *pos)
{
	GnmRange r;
	r.end = r.start = *pos;
	return undo_range_name (sheet, &r);
}