X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fpsppire-case-file.c;h=0c8e52a93968430186eed573c37ffff0f46a8b0a;hb=87b6d42a2d540b92baf0db8fe28657eda747b3b0;hp=374105bd18bd252275d7222b79d284f774c4ecf2;hpb=6fb2b277fd19b32f58cce5fde996208706fc9828;p=pspp diff --git a/src/ui/gui/psppire-case-file.c b/src/ui/gui/psppire-case-file.c index 374105bd18..0c8e52a939 100644 --- a/src/ui/gui/psppire-case-file.c +++ b/src/ui/gui/psppire-case-file.c @@ -31,6 +31,8 @@ #include #include +#include + /* --- prototypes --- */ static void psppire_case_file_class_init (PsppireCaseFileClass *class); static void psppire_case_file_init (PsppireCaseFile *case_file); @@ -246,3 +248,17 @@ psppire_case_file_set_value(PsppireCaseFile *cf, gint casenum, gint idx, return TRUE; } + + +void +psppire_case_file_sort(PsppireCaseFile *cf, const struct sort_criteria *sc) +{ + gint c; + struct casereader *reader = casefile_get_reader(cf->casefile); + cf->casefile = sort_execute(reader, sc); + + /* FIXME: Need to have a signal to change a range of cases, instead of + calling a signal many times */ + for ( c = 0 ; c < casefile_get_case_cnt(cf->casefile) ; ++c ) + g_signal_emit(cf, signal[CASE_CHANGED], 0, c); +}