projects
/
pspp-builds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
d04dad1
)
Improved the encapsulation of PsppireCaseFile
author
John Darrington
<john@darrington.wattle.id.au>
Tue, 12 Jun 2007 01:59:00 +0000
(
01:59
+0000)
committer
John Darrington
<john@darrington.wattle.id.au>
Tue, 12 Jun 2007 01:59:00 +0000
(
01:59
+0000)
src/ui/gui/psppire-case-file.c
patch
|
blob
|
history
src/ui/gui/psppire-case-file.h
patch
|
blob
|
history
src/ui/gui/psppire-data-store.c
patch
|
blob
|
history
src/ui/gui/psppire-data-store.h
patch
|
blob
|
history
src/ui/gui/psppire.c
patch
|
blob
|
history
diff --git
a/src/ui/gui/psppire-case-file.c
b/src/ui/gui/psppire-case-file.c
index 9d3e3a14b4c07e5affe31f0834e4dabbfa8fde4c..ee31c013c33de76c16817fa679708ec1d4cf0ee1 100644
(file)
--- a/
src/ui/gui/psppire-case-file.c
+++ b/
src/ui/gui/psppire-case-file.c
@@
-133,7
+133,8
@@
psppire_case_file_finalize (GObject *object)
{
PsppireCaseFile *cf = PSPPIRE_CASE_FILE (object);
{
PsppireCaseFile *cf = PSPPIRE_CASE_FILE (object);
- datasheet_destroy (cf->datasheet);
+ if ( cf->accessible)
+ datasheet_destroy (cf->datasheet);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@
-142,6
+143,7
@@
static void
psppire_case_file_init (PsppireCaseFile *cf)
{
cf->datasheet = NULL;
psppire_case_file_init (PsppireCaseFile *cf)
{
cf->datasheet = NULL;
+ cf->accessible = FALSE;
}
}
@@
-152,24
+154,17
@@
psppire_case_file_init (PsppireCaseFile *cf)
* Creates a new #PsppireCaseFile.
*/
PsppireCaseFile*
* Creates a new #PsppireCaseFile.
*/
PsppireCaseFile*
-psppire_case_file_new (
void
)
+psppire_case_file_new (
struct casereader *reader
)
{
PsppireCaseFile *cf = g_object_new (G_TYPE_PSPPIRE_CASE_FILE, NULL);
{
PsppireCaseFile *cf = g_object_new (G_TYPE_PSPPIRE_CASE_FILE, NULL);
- cf->datasheet = datasheet_create (NULL);
+ cf->datasheet = datasheet_create (reader);
+ cf->accessible = TRUE;
return cf;
}
return cf;
}
-void
-psppire_case_file_replace_datasheet (PsppireCaseFile *cf, struct datasheet *ds)
-{
- cf->datasheet = ds;
-}
-
-
-
gboolean
psppire_case_file_delete_cases (PsppireCaseFile *cf, gint n_cases, gint first)
{
gboolean
psppire_case_file_delete_cases (PsppireCaseFile *cf, gint n_cases, gint first)
{
@@
-234,6
+229,7
@@
inline gint
psppire_case_file_get_case_count (const PsppireCaseFile *cf)
{
g_return_val_if_fail (cf, FALSE);
psppire_case_file_get_case_count (const PsppireCaseFile *cf)
{
g_return_val_if_fail (cf, FALSE);
+ g_return_val_if_fail (cf->accessible, FALSE);
if ( ! cf->datasheet)
return 0;
if ( ! cf->datasheet)
return 0;
@@
-354,6
+350,7
@@
psppire_case_file_insert_values (PsppireCaseFile *cf,
{
union value *values;
g_return_val_if_fail (cf, FALSE);
{
union value *values;
g_return_val_if_fail (cf, FALSE);
+ g_return_val_if_fail (cf->accessible, FALSE);
if ( ! cf->datasheet )
cf->datasheet = datasheet_create (NULL);
if ( ! cf->datasheet )
cf->datasheet = datasheet_create (NULL);
@@
-377,3
+374,14
@@
psppire_case_file_get_case (const PsppireCaseFile *cf, gint casenum,
return datasheet_get_row (cf->datasheet, casenum, c);
}
return datasheet_get_row (cf->datasheet, casenum, c);
}
+
+
+
+struct casereader *
+psppire_case_file_make_reader (PsppireCaseFile *cf)
+{
+ struct casereader *r = datasheet_make_reader (cf->datasheet);
+ cf->accessible = FALSE;
+ return r;
+}
+
diff --git
a/src/ui/gui/psppire-case-file.h
b/src/ui/gui/psppire-case-file.h
index b3fdfcdaa787c2ffea5afd0318fc5f73470cca04..f274624fa9c69731770cb6ec925ac77778cda043 100644
(file)
--- a/
src/ui/gui/psppire-case-file.h
+++ b/
src/ui/gui/psppire-case-file.h
@@
-49,14
+49,15
@@
typedef struct _PsppireCaseFile PsppireCaseFile;
typedef struct _PsppireCaseFileClass PsppireCaseFileClass;
struct ccase;
typedef struct _PsppireCaseFileClass PsppireCaseFileClass;
struct ccase;
-struct flexifile;
-struct casefile;
+struct casereader;
struct _PsppireCaseFile
{
GObject parent;
struct _PsppireCaseFile
{
GObject parent;
+ /* <private> */
struct datasheet *datasheet;
struct datasheet *datasheet;
+ gboolean accessible;
};
};
@@
-69,7
+70,7
@@
struct _PsppireCaseFileClass
/* -- PsppireCaseFile --- */
GType psppire_case_file_get_type (void);
/* -- PsppireCaseFile --- */
GType psppire_case_file_get_type (void);
-PsppireCaseFile *psppire_case_file_new (
void
);
+PsppireCaseFile *psppire_case_file_new (
struct casereader *
);
gboolean psppire_case_file_insert_case (PsppireCaseFile *cf, struct ccase *c, gint row);
gboolean psppire_case_file_insert_case (PsppireCaseFile *cf, struct ccase *c, gint row);
@@
-98,16
+99,12
@@
gboolean psppire_case_file_delete_cases (PsppireCaseFile *cf, gint n_rows,
gboolean psppire_case_file_insert_values (PsppireCaseFile *cf, gint n_values, gint before);
struct case_ordering;
gboolean psppire_case_file_insert_values (PsppireCaseFile *cf, gint n_values, gint before);
struct case_ordering;
+
void psppire_case_file_sort (PsppireCaseFile *cf, struct case_ordering *);
gboolean psppire_case_file_get_case (const PsppireCaseFile *cf, gint casenum,
struct ccase *c);
void psppire_case_file_sort (PsppireCaseFile *cf, struct case_ordering *);
gboolean psppire_case_file_get_case (const PsppireCaseFile *cf, gint casenum,
struct ccase *c);
-void psppire_case_file_replace_datasheet (PsppireCaseFile *,
- struct datasheet *);
-
-
-
G_END_DECLS
#endif /* __PSPPIRE_CASE_FILE_H__ */
G_END_DECLS
#endif /* __PSPPIRE_CASE_FILE_H__ */
diff --git
a/src/ui/gui/psppire-data-store.c
b/src/ui/gui/psppire-data-store.c
index d3843177bc116e5f74527bf58b42752990c04021..f711162f725624934d37b672c3e1c2d4424026d4 100644
(file)
--- a/
src/ui/gui/psppire-data-store.c
+++ b/
src/ui/gui/psppire-data-store.c
@@
-373,29
+373,16
@@
psppire_data_store_new (PsppireDict *dict)
}
}
-
-/**
- * psppire_data_store_replace_set_dictionary:
- * @data_store: The variable store
- * @dict: The dictionary to set
- *
- * If a dictionary is already associated with the data-store, then it will be
- * destroyed.
- **/
void
void
-psppire_data_store_set_dictionary (PsppireDataStore *data_store, PsppireDict *dict)
+psppire_data_store_set_case_file (PsppireDataStore *data_store,
+ PsppireCaseFile *cf)
{
{
- data_store->dict = dict;
-
if ( data_store->case_file)
{
g_object_unref (data_store->case_file);
if ( data_store->case_file)
{
g_object_unref (data_store->case_file);
- data_store->case_file = 0;
}
}
- data_store->case_file = psppire_case_file_new ();
-
-
+ data_store->case_file = cf;
g_signal_connect (data_store->case_file, "cases-deleted",
G_CALLBACK (delete_cases_callback),
g_signal_connect (data_store->case_file, "cases-deleted",
G_CALLBACK (delete_cases_callback),
@@
-409,6
+396,22
@@
psppire_data_store_set_dictionary (PsppireDataStore *data_store, PsppireDict *di
g_signal_connect (data_store->case_file, "case-changed",
G_CALLBACK (changed_case_callback),
data_store);
g_signal_connect (data_store->case_file, "case-changed",
G_CALLBACK (changed_case_callback),
data_store);
+}
+
+
+
+/**
+ * psppire_data_store_replace_set_dictionary:
+ * @data_store: The variable store
+ * @dict: The dictionary to set
+ *
+ * If a dictionary is already associated with the data-store, then it will be
+ * destroyed.
+ **/
+void
+psppire_data_store_set_dictionary (PsppireDataStore *data_store, PsppireDict *dict)
+{
+ data_store->dict = dict;
g_signal_connect (dict, "variable-inserted",
G_CALLBACK (insert_variable_callback),
g_signal_connect (dict, "variable-inserted",
G_CALLBACK (insert_variable_callback),
diff --git
a/src/ui/gui/psppire-data-store.h
b/src/ui/gui/psppire-data-store.h
index 1974aed8ddb400e281ff76d7938bc9a9cf83d0ef..9b480c9823854b2b7232d60a696e2a230a354f74 100644
(file)
--- a/
src/ui/gui/psppire-data-store.h
+++ b/
src/ui/gui/psppire-data-store.h
@@
-84,8
+84,11
@@
struct _PsppireDataStoreClass
inline GType psppire_data_store_get_type (void) G_GNUC_CONST;
PsppireDataStore *psppire_data_store_new (PsppireDict *dict);
inline GType psppire_data_store_get_type (void) G_GNUC_CONST;
PsppireDataStore *psppire_data_store_new (PsppireDict *dict);
+void psppire_data_store_set_case_file (PsppireDataStore *data_store,
+ PsppireCaseFile *cf);
+
void psppire_data_store_set_dictionary (PsppireDataStore *data_store,
void psppire_data_store_set_dictionary (PsppireDataStore *data_store,
- PsppireDict *dict);
+
PsppireDict *dict);
void psppire_data_store_set_font (PsppireDataStore *store,
const PangoFontDescription *fd);
void psppire_data_store_set_font (PsppireDataStore *store,
const PangoFontDescription *fd);
diff --git
a/src/ui/gui/psppire.c
b/src/ui/gui/psppire.c
index d636ab4960781ddc911e0dc813917f9e85de58d4..06b1488762f9ba195e98210291b9041619996b51 100644
(file)
--- a/
src/ui/gui/psppire.c
+++ b/
src/ui/gui/psppire.c
@@
-68,10
+68,9
@@
replace_dictionary (struct dictionary *d)
static void
replace_casereader (struct casereader *s)
{
static void
replace_casereader (struct casereader *s)
{
-
struct datasheet *datasheet = datasheet_create
(s);
+
PsppireCaseFile *pcf = psppire_case_file_new
(s);
- psppire_case_file_replace_datasheet (the_data_store->case_file,
- datasheet);
+ psppire_data_store_set_case_file (the_data_store, pcf);
}
void
}
void
@@
-100,11
+99,12
@@
initialize (void)
the_dataset = create_dataset (replace_casereader,
replace_dictionary);
the_dataset = create_dataset (replace_casereader,
replace_dictionary);
+
+
message_dialog_init (the_source_stream);
message_dialog_init (the_source_stream);
- dictionary = psppire_dict_new_from_dict (
- dataset_dict (the_dataset)
- );
+ dictionary = psppire_dict_new_from_dict (dataset_dict (the_dataset));
+
bind_textdomain_codeset (PACKAGE, "UTF-8");
bind_textdomain_codeset (PACKAGE, "UTF-8");
@@
-113,10
+113,7
@@
initialize (void)
the_var_store = psppire_var_store_new (dictionary);
the_data_store = psppire_data_store_new (dictionary);
the_var_store = psppire_var_store_new (dictionary);
the_data_store = psppire_data_store_new (dictionary);
-
-
- proc_set_active_file_data (the_dataset,
- datasheet_make_reader (the_data_store->case_file->datasheet));
+ replace_casereader (NULL);
create_icon_factory ();
create_icon_factory ();