[Goodies-commits] r5805 - xfbib/branches/gobject/src
David Gustafsson
tssj at xfce.org
Sat Oct 25 22:21:42 CEST 2008
Author: tssj
Date: 2008-10-25 20:21:42 +0000 (Sat, 25 Oct 2008)
New Revision: 5805
Modified:
xfbib/branches/gobject/src/xfbib-bibtex-field.h
xfbib/branches/gobject/src/xfbib-bibtex-string.h
xfbib/branches/gobject/src/xfbib-bibtex.c
xfbib/branches/gobject/src/xfbib-bibtex.h
xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c
xfbib/branches/gobject/src/xfbib-file-io.c
xfbib/branches/gobject/src/xfbib-list-store.c
xfbib/branches/gobject/src/xfbib-list-store.h
xfbib/branches/gobject/src/xfbib-menu-bar.c
xfbib/branches/gobject/src/xfbib-tree-view.c
Log:
Making XfbibBibtex and XfbibListStore more generic.
Modified: xfbib/branches/gobject/src/xfbib-bibtex-field.h
===================================================================
--- xfbib/branches/gobject/src/xfbib-bibtex-field.h 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-bibtex-field.h 2008-10-25 20:21:42 UTC (rev 5805)
@@ -33,33 +33,33 @@
G_BEGIN_DECLS
enum {
- XFBIB_FIELD_ADDRESS,
- XFBIB_FIELD_ANNOTE,
- XFBIB_FIELD_AUTHOR,
- XFBIB_FIELD_BOOKTITLE,
- XFBIB_FIELD_CHAPTER,
- XFBIB_FIELD_CROSSREF,
- XFBIB_FIELD_EDITION,
- XFBIB_FIELD_EDITOR,
- XFBIB_FIELD_EPRINT,
- XFBIB_FIELD_HOWPUBLISHED,
- XFBIB_FIELD_INSTITUTION,
- XFBIB_FIELD_JOURNAL,
- XFBIB_FIELD_KEY,
- XFBIB_FIELD_MONTH,
- XFBIB_FIELD_NOTE,
- XFBIB_FIELD_NUMBER,
- XFBIB_FIELD_ORGANIZATION,
- XFBIB_FIELD_PAGES,
- XFBIB_FIELD_PUBLISHER,
- XFBIB_FIELD_SCHOOL,
- XFBIB_FIELD_SERIES,
- XFBIB_FIELD_TITLE,
- XFBIB_FIELD_TYPE,
- XFBIB_FIELD_URL,
- XFBIB_FIELD_VOLUME,
- XFBIB_FIELD_YEAR,
- XFBIB_FIELD_N_FIELDS,
+ XFBIB_BIBTEX_FIELD_ADDRESS = 0,
+ XFBIB_BIBTEX_FIELD_ANNOTE,
+ XFBIB_BIBTEX_FIELD_AUTHOR,
+ XFBIB_BIBTEX_FIELD_BOOKTITLE,
+ XFBIB_BIBTEX_FIELD_CHAPTER,
+ XFBIB_BIBTEX_FIELD_CROSSREF,
+ XFBIB_BIBTEX_FIELD_EDITION,
+ XFBIB_BIBTEX_FIELD_EDITOR,
+ XFBIB_BIBTEX_FIELD_EPRINT,
+ XFBIB_BIBTEX_FIELD_HOWPUBLISHED,
+ XFBIB_BIBTEX_FIELD_INSTITUTION,
+ XFBIB_BIBTEX_FIELD_JOURNAL,
+ XFBIB_BIBTEX_FIELD_KEY,
+ XFBIB_BIBTEX_FIELD_MONTH,
+ XFBIB_BIBTEX_FIELD_NOTE,
+ XFBIB_BIBTEX_FIELD_NUMBER,
+ XFBIB_BIBTEX_FIELD_ORGANIZATION,
+ XFBIB_BIBTEX_FIELD_PAGES,
+ XFBIB_BIBTEX_FIELD_PUBLISHER,
+ XFBIB_BIBTEX_FIELD_SCHOOL,
+ XFBIB_BIBTEX_FIELD_SERIES,
+ XFBIB_BIBTEX_FIELD_TITLE,
+ XFBIB_BIBTEX_FIELD_TYPE,
+ XFBIB_BIBTEX_FIELD_URL,
+ XFBIB_BIBTEX_FIELD_VOLUME,
+ XFBIB_BIBTEX_FIELD_YEAR,
+ XFBIB_BIBTEX_FIELD_N_FIELDS,
};
static struct {
Modified: xfbib/branches/gobject/src/xfbib-bibtex-string.h
===================================================================
--- xfbib/branches/gobject/src/xfbib-bibtex-string.h 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-bibtex-string.h 2008-10-25 20:21:42 UTC (rev 5805)
@@ -32,6 +32,12 @@
G_BEGIN_DECLS
+enum {
+ XFBIB_BIBTEX_STRING_VARIABLE = 0,
+ XFBIB_BIBTEX_STRING_VALUE,
+ XFBIB_BIBTEX_STRING_N_STRINGS,
+};
+
typedef struct _XfbibBibtexString XfbibBibtexString;
GType xfbib_bibtex_string_get_type() G_GNUC_CONST;
Modified: xfbib/branches/gobject/src/xfbib-bibtex.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-bibtex.c 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-bibtex.c 2008-10-25 20:21:42 UTC (rev 5805)
@@ -22,6 +22,7 @@
{
GObject parent;
gint n_entries;
+ gint n_strings;
#if G_SEQUENCE
GSequence *seq;
#else
@@ -57,6 +58,7 @@
instance->list = NULL;
#endif
instance->n_entries = 0;
+ instance->n_strings = 0;
}
@@ -184,6 +186,7 @@
if (parse_balanced_brackets(buf, str, &i)) {
obj = G_OBJECT(xfbib_bibtex_string_new());
if (xfbib_bibtex_string_parse(XFBIB_BIBTEX_STRING(obj), buf->str)) {
+ elements->n_strings++;
#if G_SEQUENCE
g_sequence_append(elements->seq, obj);
#else
@@ -234,43 +237,53 @@
}
gint
-xfbib_bibtex_get_n_entries(XfbibBibtex *elements)
+xfbib_bibtex_get_n(XfbibBibtex *elements, enum XFBIB_BIBTEX_TYPE type)
{
g_return_val_if_fail(XFBIB_IS_BIBTEX(elements), 0);
- return elements->n_entries;
+ if (type == TYPE_ENTRY)
+ return elements->n_entries;
+ else if (type == TYPE_STRING)
+ return elements->n_strings;
+ return 0;
}
-
-XfbibBibtexEntry *
-xfbib_bibtex_get_nth_entry(XfbibBibtex *elements, gint n)
+GObject *
+xfbib_bibtex_get_nth(XfbibBibtex *elements, gint n, enum XFBIB_BIBTEX_TYPE type)
{
- GObject *obj;
+ GObject *tmp;
gint found;
- g_return_val_if_fail(XFBIB_IS_BIBTEX(elements)
- && n < elements->n_entries, NULL);
+ g_return_val_if_fail(XFBIB_IS_BIBTEX(elements) &&
+ ((type == TYPE_ENTRY && n < elements->n_entries) ||
+ (type == TYPE_STRING && n < elements->n_strings)), NULL);
-
#if G_SEQUENCE
GSequenceIter *iter;
for (iter = g_sequence_get_begin_iter(elements->seq), found = -1;
!g_sequence_iter_is_end(iter); iter = g_sequence_iter_next(iter)) {
- obj = g_sequence_get(iter);
- if (XFBIB_IS_BIBTEX_ENTRY(obj)) {
+ tmp = g_sequence_get(iter);
+ if (type == TYPE_ENTRY && XFBIB_IS_BIBTEX_ENTRY(tmp)) {
if (++found == n) {
- return XFBIB_BIBTEX_ENTRY(obj);
+ return tmp;
}
+ } else if (type == TYPE_STRING && XFBIB_IS_BIBTEX_STRING(tmp)) {
+ if (++found == n) {
+ return tmp;
+ }
}
}
- if (g_sequence_iter_is_end(iter))
#else
gint i, len;
len = g_list_length(elements->list);
for (i = 0, found = -1; i < len; i++) {
- obj = g_list_nth_data(elements->list, i);
- if (XFBIB_IS_BIBTEX_ENTRY(obj)) {
+ tmp = g_list_nth_data(elements->list, i);
+ if (type == TYPE_ENTRY && XFBIB_IS_BIBTEX_ENTRY(tmp)) {
if (++found == n) {
- return XFBIB_BIBTEX_ENTRY(obj);
+ return tmp;
}
+ } else if (type == TYPE_STRING && XFBIB_IS_BIBTEX_STRING(tmp)) {
+ if (++found == n) {
+ return tmp;
+ }
}
}
#endif
@@ -279,9 +292,9 @@
gint
-xfbib_bibtex_get_entry_position(XfbibBibtex *elements, XfbibBibtexEntry *entry)
+xfbib_bibtex_get_position(XfbibBibtex *elements, GObject *obj)
{
- GObject *obj;
+ GObject *tmp;
gint n;
g_return_val_if_fail(XFBIB_IS_BIBTEX(elements), -1);
@@ -289,47 +302,59 @@
GSequenceIter *iter;
for (iter = g_sequence_get_begin_iter(elements->seq), n = -1;
!g_sequence_iter_is_end(iter); iter = g_sequence_iter_next(iter)) {
- obj = g_sequence_get(iter);
- if (XFBIB_IS_BIBTEX_ENTRY(obj)) {
+ tmp = g_sequence_get(iter);
+ if (XFBIB_IS_BIBTEX_ENTRY(obj) && XFBIB_IS_BIBTEX_ENTRY(tmp)) {
n++;
- if (XFBIB_BIBTEX_ENTRY(obj) == entry) {
+ if (G_OBJECT(tmp) == obj) {
return n;
}
+ } else if (XFBIB_IS_BIBTEX_STRING(obj) && XFBIB_IS_BIBTEX_STRING(tmp)) {
+ n++;
+ if (G_OBJECT(tmp) == obj) {
+ return n;
+ }
}
}
#else
gint i, len;
len = g_list_length(elements->list);
for (i = 0, n = -1; i < len; i++) {
- obj = g_list_nth_data(elements->list, i);
- if (XFBIB_IS_BIBTEX_ENTRY(obj)) {
+ tmp = g_list_nth_data(elements->list, i);
+ if (XFBIB_IS_BIBTEX_ENTRY(obj) && XFBIB_IS_BIBTEX_ENTRY(tmp)) {
n++;
- if (XFBIB_BIBTEX_ENTRY(obj) == entry) {
+ if (G_OBJECT(tmp) == obj) {
return n;
}
+ } else if (XFBIB_IS_BIBTEX_STRING(obj) && XFBIB_IS_BIBTEX_STRING(tmp)) {
+ n++;
+ if (G_OBJECT(tmp) == obj) {
+ return n;
+ }
}
}
#endif
return -1;
}
-XfbibBibtexEntry *
-xfbib_bibtex_get_next_entry(XfbibBibtex *elements, XfbibBibtexEntry *entry)
+GObject *
+xfbib_bibtex_get_next(XfbibBibtex *elements, GObject *obj)
{
- GObject *obj;
+ GObject *tmp;
g_return_val_if_fail(XFBIB_IS_BIBTEX(elements), NULL);
#if G_SEQUENCE
GSequenceIter *iter;
for (iter = g_sequence_get_begin_iter(elements->seq);
!g_sequence_iter_is_end(iter); iter = g_sequence_iter_next(iter)) {
- obj = g_sequence_get(iter);
- if (obj == G_OBJECT(entry)) {
+ tmp = g_sequence_get(iter);
+ if (tmp == obj) {
for (iter = g_sequence_iter_next(iter); !g_sequence_iter_is_end(iter);
iter = g_sequence_iter_next(iter)) {
- obj = g_sequence_get(iter);
- if (XFBIB_IS_BIBTEX_ENTRY(obj)) {
- return XFBIB_BIBTEX_ENTRY(obj);
+ tmp = g_sequence_get(iter);
+ if (XFBIB_IS_BIBTEX_ENTRY(obj) && XFBIB_IS_BIBTEX_ENTRY(tmp)) {
+ return tmp;
+ } else if (XFBIB_IS_BIBTEX_STRING(obj) && XFBIB_IS_BIBTEX_STRING(tmp)) {
+ return tmp;
}
}
}
@@ -338,12 +363,14 @@
gint i, len;
len = g_list_length(elements->list);
for (i = 0; i < len; i++) {
- obj = g_list_nth_data(elements->list, i);
- if (obj == G_OBJECT(entry)) {
+ tmp = g_list_nth_data(elements->list, i);
+ if (tmp == obj) {
for (i++; i < len; i++) {
- obj = g_list_nth_data(elements->list, i);
- if (XFBIB_IS_BIBTEX_ENTRY(obj)) {
- return XFBIB_BIBTEX_ENTRY(obj);
+ tmp = g_list_nth_data(elements->list, i);
+ if (XFBIB_IS_BIBTEX_ENTRY(obj) && XFBIB_IS_BIBTEX_ENTRY(tmp)) {
+ return tmp;
+ } else if (XFBIB_IS_BIBTEX_STRING(obj) && XFBIB_IS_BIBTEX_STRING(tmp)) {
+ return tmp;
}
}
}
@@ -365,6 +392,8 @@
if ((obj = g_sequence_get(iter)) == data) {
if(XFBIB_IS_BIBTEX_ENTRY(obj))
elements->n_entries--;
+ else if(XFBIB_IS_BIBTEX_STRING(obj))
+ elements->n_strings--;
g_sequence_remove(iter);
}
}
@@ -375,6 +404,8 @@
if ((obj = g_list_nth_data(elements->list, i)) == data) {
if(XFBIB_IS_BIBTEX_ENTRY(obj))
elements->n_entries--;
+ else if(XFBIB_IS_BIBTEX_STRINGS(obj))
+ elements->n_strings--;
elements->list = g_list_remove(elements->list, obj);
g_object_unref(obj);
}
@@ -395,44 +426,53 @@
g_list_free (elements->list);
elements->list = NULL;
#endif
+ elements->n_strings = 0;
elements->n_entries = 0;
}
void
-xfbib_bibtex_add_entry(XfbibBibtex *elements, XfbibBibtexEntry *entry)
+xfbib_bibtex_add(XfbibBibtex *elements, GObject *obj)
{
g_return_if_fail(XFBIB_IS_BIBTEX(elements));
- g_return_if_fail(XFBIB_IS_BIBTEX_ENTRY(entry));
+ g_return_if_fail(XFBIB_IS_BIBTEX_ENTRY(obj) || XFBIB_IS_BIBTEX_STRING(obj));
#if G_SEQUENCE
- g_sequence_append(elements->seq, G_OBJECT(entry));
+ g_sequence_append(elements->seq, G_OBJECT(obj));
#else
- elements->list = g_list_append(elements->list, G_OBJECT(entry));
+ elements->list = g_list_append(elements->list, G_OBJECT(obj));
#endif
- elements->n_entries++;
+ if (XFBIB_IS_BIBTEX_ENTRY(obj))
+ elements->n_entries++;
+ else if (XFBIB_IS_BIBTEX_STRING(obj))
+ elements->n_strings++;
}
/*
* Return the position of the new entry, counting from 0
*/
gint
-xfbib_bibtex_replace_entry(XfbibBibtex *elements, XfbibBibtexEntry *old_entry, XfbibBibtexEntry *new_entry)
+xfbib_bibtex_replace(XfbibBibtex *elements, GObject *old_obj, GObject *new_obj)
{
GObject *obj;
gint n = 0;
- g_return_val_if_fail(XFBIB_IS_BIBTEX(elements), -1);
- g_return_val_if_fail(XFBIB_IS_BIBTEX_ENTRY(old_entry) && XFBIB_IS_BIBTEX_ENTRY(new_entry), -1);
+ g_return_val_if_fail(XFBIB_IS_BIBTEX(elements) &&
+ (XFBIB_IS_BIBTEX_ENTRY(old_obj) &&
+ XFBIB_IS_BIBTEX_ENTRY(new_obj)) ||
+ (XFBIB_IS_BIBTEX_STRING(old_obj) &&
+ XFBIB_IS_BIBTEX_STRING(new_obj)), -1);
#if G_SEQUENCE
GSequenceIter *iter;
for (iter = g_sequence_get_begin_iter(elements->seq);
!g_sequence_iter_is_end(iter); iter = g_sequence_iter_next(iter)) {
obj = g_sequence_get(iter);
- if (XFBIB_IS_BIBTEX_ENTRY(obj))
+ if (XFBIB_IS_BIBTEX_ENTRY(old_obj) && XFBIB_IS_BIBTEX_ENTRY(obj))
n++;
+ else if (XFBIB_IS_BIBTEX_STRING(old_obj) && XFBIB_IS_BIBTEX_STRING(obj))
+ n++;
- if (obj == G_OBJECT(old_entry)) {
- g_sequence_insert_before(iter, new_entry);
+ if (obj == old_obj) {
+ g_sequence_insert_before(iter, new_obj);
g_sequence_remove(iter);
return n;
}
@@ -442,11 +482,13 @@
len = g_list_length(elements->list);
for (i = 0; i < len; i++) {
obj = g_list_nth(elements->list, i);
- if (XFBIB_IS_BIBTEX_ENTRY(obj->data))
+ if (XFBIB_IS_BIBTEX_ENTRY(old_obj) && XFBIB_IS_BIBTEX_ENTRY(obj))
n++;
+ else if (XFBIB_IS_BIBTEX_STRING(old_obj) && XFBIB_IS_BIBTEX_STRING(obj))
+ n++;
- if (obj->data == G_OBJECT(old_entry)) {
- elements->list = g_list_insert_before(elements->list, obj, new_entry);
+ if (obj->data == old_obj) {
+ elements->list = g_list_insert_before(elements->list, obj, new_obj);
elements->list = g_list_remove(elements->list, obj);
return n;
}
Modified: xfbib/branches/gobject/src/xfbib-bibtex.h
===================================================================
--- xfbib/branches/gobject/src/xfbib-bibtex.h 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-bibtex.h 2008-10-25 20:21:42 UTC (rev 5805)
@@ -2,7 +2,7 @@
#define __XFBIB_BIBTEX_H
#include <glib-object.h>
-#include <xfbib-bibtex-entry.h>
+#include "xfbib-bibtex-entry.h"
#define XFBIB_TYPE_BIBTEX (xfbib_bibtex_get_type())
#define XFBIB_BIBTEX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), XFBIB_TYPE_BIBTEX, XfbibBibtex))
@@ -13,6 +13,12 @@
G_BEGIN_DECLS
+
+enum XFBIB_BIBTEX_TYPE {
+ TYPE_ENTRY,
+ TYPE_STRING,
+};
+
typedef struct _XfbibBibtex XfbibBibtex;
GType xfbib_bibtex_get_type() G_GNUC_CONST;
@@ -20,14 +26,14 @@
XfbibBibtex *xfbib_bibtex_new();
gboolean xfbib_bibtex_parse(XfbibBibtex *, const gchar *);
void xfbib_bibtex_foreach(XfbibBibtex *, GFunc, gpointer);
-gint xfbib_bibtex_get_n_entries(XfbibBibtex *);
-XfbibBibtexEntry *xfbib_bibtex_get_nth_entry(XfbibBibtex *, gint);
-gint xfbib_bibtex_get_entry_position(XfbibBibtex *, XfbibBibtexEntry *);
-XfbibBibtexEntry *xfbib_bibtex_get_next_entry(XfbibBibtex *, XfbibBibtexEntry *);
+gint xfbib_bibtex_get_n(XfbibBibtex *, enum XFBIB_BIBTEX_TYPE);
+GObject *xfbib_bibtex_get_nth(XfbibBibtex *, gint, enum XFBIB_BIBTEX_TYPE);
+gint xfbib_bibtex_get_position(XfbibBibtex *, GObject *);
+GObject *xfbib_bibtex_get_next(XfbibBibtex *, GObject *);
void xfbib_bibtex_remove(XfbibBibtex *, GObject *);
void xfbib_bibtex_remove_all(XfbibBibtex *);
-void xfbib_bibtex_add_entry(XfbibBibtex *, XfbibBibtexEntry *);
-gint xfbib_bibtex_replace_entry(XfbibBibtex *, XfbibBibtexEntry *, XfbibBibtexEntry *);
+void xfbib_bibtex_add(XfbibBibtex *, GObject *);
+gint xfbib_bibtex_replace(XfbibBibtex *, GObject *, GObject *);
G_END_DECLS
Modified: xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c 2008-10-25 20:21:42 UTC (rev 5805)
@@ -58,9 +58,9 @@
GtkWidget *key_label;
GtkWidget *key_entry;
GtkWidget *key_button;
- GtkWidget *inputs_label[XFBIB_FIELD_N_FIELDS]; /* Label and NULL objects */
- GtkWidget *inputs[XFBIB_FIELD_N_FIELDS]; /* Entry and multiple inputs */
- GtkWidget *inputs_button[XFBIB_FIELD_N_FIELDS];
+ GtkWidget *inputs_label[XFBIB_BIBTEX_FIELD_N_FIELDS]; /* Label and NULL objects */
+ GtkWidget *inputs[XFBIB_BIBTEX_FIELD_N_FIELDS]; /* Entry and multiple inputs */
+ GtkWidget *inputs_button[XFBIB_BIBTEX_FIELD_N_FIELDS];
GtkWidget *note_boxes[5];
GtkWidget *notebook;
};
@@ -89,15 +89,15 @@
char *tmp;
str = g_string_new("");
- lastname = xfbib_multiple_input_get_nth_row_ith_column(XFBIB_MULTIPLE_INPUT (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_AUTHOR]),0,0);
+ lastname = xfbib_multiple_input_get_nth_row_ith_column(XFBIB_MULTIPLE_INPUT (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_BIBTEX_FIELD_AUTHOR]),0,0);
if(lastname != NULL) {
tmp = strrchr(lastname, ' ') + 1;
g_string_append(str, tmp);
}
- g_string_append(str, (gtk_entry_get_text(GTK_ENTRY (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_YEAR])) + 2));
+ g_string_append(str, (gtk_entry_get_text(GTK_ENTRY (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_BIBTEX_FIELD_YEAR])) + 2));
- title = gtk_entry_get_text(GTK_ENTRY (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_TITLE]));
+ title = gtk_entry_get_text(GTK_ENTRY (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_BIBTEX_FIELD_TITLE]));
split = g_strsplit(title, " ", 2);
title = split[0];
g_string_append(str, title);
@@ -251,9 +251,9 @@
gtk_container_set_border_width(GTK_CONTAINER (instance->note_boxes[i]), 6);
}
- for (i = 0; i < XFBIB_FIELD_N_FIELDS; i++) {
+ for (i = 0; i < XFBIB_BIBTEX_FIELD_N_FIELDS; i++) {
/* Create the Input object */
- if (i == XFBIB_FIELD_AUTHOR || i == XFBIB_FIELD_EDITOR) {
+ if (i == XFBIB_BIBTEX_FIELD_AUTHOR || i == XFBIB_BIBTEX_FIELD_EDITOR) {
instance->inputs[i] = xfbib_multiple_input_new(xfbib_bibtex_field_constants[i].label, xfbib_bibtex_field_constants[i].tooltip);
} else {
instance->inputs_label[i] = gtk_label_new(xfbib_bibtex_field_constants[i].label);
@@ -269,44 +269,44 @@
/* Add the input object to the correct box */
switch (i) {
- case XFBIB_FIELD_INSTITUTION:
- case XFBIB_FIELD_ORGANIZATION:
- case XFBIB_FIELD_SCHOOL:
- case XFBIB_FIELD_TITLE:
- case XFBIB_FIELD_TYPE:
+ case XFBIB_BIBTEX_FIELD_INSTITUTION:
+ case XFBIB_BIBTEX_FIELD_ORGANIZATION:
+ case XFBIB_BIBTEX_FIELD_SCHOOL:
+ case XFBIB_BIBTEX_FIELD_TITLE:
+ case XFBIB_BIBTEX_FIELD_TYPE:
box = 0;
break;
- case XFBIB_FIELD_AUTHOR:
- case XFBIB_FIELD_EDITOR:
+ case XFBIB_BIBTEX_FIELD_AUTHOR:
+ case XFBIB_BIBTEX_FIELD_EDITOR:
box = 1;
break;
- case XFBIB_FIELD_BOOKTITLE:
- case XFBIB_FIELD_CHAPTER:
- case XFBIB_FIELD_EDITION:
- case XFBIB_FIELD_MONTH:
- case XFBIB_FIELD_NUMBER:
- case XFBIB_FIELD_PAGES:
- case XFBIB_FIELD_VOLUME:
- case XFBIB_FIELD_YEAR:
+ case XFBIB_BIBTEX_FIELD_BOOKTITLE:
+ case XFBIB_BIBTEX_FIELD_CHAPTER:
+ case XFBIB_BIBTEX_FIELD_EDITION:
+ case XFBIB_BIBTEX_FIELD_MONTH:
+ case XFBIB_BIBTEX_FIELD_NUMBER:
+ case XFBIB_BIBTEX_FIELD_PAGES:
+ case XFBIB_BIBTEX_FIELD_VOLUME:
+ case XFBIB_BIBTEX_FIELD_YEAR:
box = 2;
break;
- case XFBIB_FIELD_ADDRESS:
- case XFBIB_FIELD_HOWPUBLISHED:
- case XFBIB_FIELD_JOURNAL:
- case XFBIB_FIELD_PUBLISHER:
- case XFBIB_FIELD_SERIES:
+ case XFBIB_BIBTEX_FIELD_ADDRESS:
+ case XFBIB_BIBTEX_FIELD_HOWPUBLISHED:
+ case XFBIB_BIBTEX_FIELD_JOURNAL:
+ case XFBIB_BIBTEX_FIELD_PUBLISHER:
+ case XFBIB_BIBTEX_FIELD_SERIES:
box = 3;
break;
- case XFBIB_FIELD_ANNOTE:
- case XFBIB_FIELD_CROSSREF:
- case XFBIB_FIELD_EPRINT:
- case XFBIB_FIELD_KEY:
- case XFBIB_FIELD_NOTE:
- case XFBIB_FIELD_URL:
+ case XFBIB_BIBTEX_FIELD_ANNOTE:
+ case XFBIB_BIBTEX_FIELD_CROSSREF:
+ case XFBIB_BIBTEX_FIELD_EPRINT:
+ case XFBIB_BIBTEX_FIELD_KEY:
+ case XFBIB_BIBTEX_FIELD_NOTE:
+ case XFBIB_BIBTEX_FIELD_URL:
box = 4;
break;
}
- if (i == XFBIB_FIELD_AUTHOR || i == XFBIB_FIELD_EDITOR) {
+ if (i == XFBIB_BIBTEX_FIELD_AUTHOR || i == XFBIB_BIBTEX_FIELD_EDITOR) {
gtk_table_attach_defaults(GTK_TABLE(instance->note_boxes[box]), instance->inputs[i], row[box], row[box]+1, 0, 1);
} else {
gtk_table_attach(GTK_TABLE(instance->note_boxes[box]), instance->inputs_label[i], 0, 1, row[box], row[box]+1, GTK_FILL, GTK_FILL, 0, 0);
@@ -370,7 +370,7 @@
gtk_entry_set_text(GTK_ENTRY (entry_edit_dialog->key_entry), xfbib_bibtex_entry_get_key(entry));
- for (n = 0; n < XFBIB_FIELD_N_FIELDS; n++) {
+ for (n = 0; n < XFBIB_BIBTEX_FIELD_N_FIELDS; n++) {
list = xfbib_bibtex_entry_get_fields(entry);
@@ -389,7 +389,7 @@
}
if (g_list_length(xfbib_bibtex_value_get(value)) == 1) {
/* Single value */
- if (n == XFBIB_FIELD_AUTHOR || n == XFBIB_FIELD_EDITOR) {
+ if (n == XFBIB_BIBTEX_FIELD_AUTHOR || n == XFBIB_BIBTEX_FIELD_EDITOR) {
xfbib_multiple_input_set_text (XFBIB_MULTIPLE_INPUT (entry_edit_dialog->inputs[n]),
xfbib_bibtex_value_get_str(value));
} else {
@@ -400,7 +400,7 @@
gtk_widget_set_sensitive(entry_edit_dialog->inputs[n], FALSE);
gtk_entry_set_invisible_char(entry, ' ');
gtk_entry_set_visibility(entry, FALSE);
- if (n == XFBIB_FIELD_AUTHOR || n == XFBIB_FIELD_EDITOR) {
+ if (n == XFBIB_BIBTEX_FIELD_AUTHOR || n == XFBIB_BIBTEX_FIELD_EDITOR) {
xfbib_multiple_input_set(XFBIB_MULTIPLE_INPUT(entry_edit_dialog->inputs[n]),
xfbib_bibtex_value_get(value));
} else {
@@ -428,8 +428,8 @@
entry = xfbib_bibtex_entry_new();
xfbib_bibtex_entry_set_key(entry, gtk_entry_get_text(GTK_ENTRY(entry_edit_dialog->key_entry)));
xfbib_bibtex_entry_set_bibtype(entry, gtk_combo_box_get_active_text(GTK_COMBO_BOX(entry_edit_dialog->type_combo_box)));
- for (n = 0; n < XFBIB_FIELD_N_FIELDS; n++) {
- if (n == XFBIB_FIELD_AUTHOR || n == XFBIB_FIELD_EDITOR) {
+ for (n = 0; n < XFBIB_BIBTEX_FIELD_N_FIELDS; n++) {
+ if (n == XFBIB_BIBTEX_FIELD_AUTHOR || n == XFBIB_BIBTEX_FIELD_EDITOR) {
str = xfbib_multiple_input_get_str(XFBIB_MULTIPLE_INPUT(entry_edit_dialog->inputs[n]));
if(str == NULL) {
field = xfbib_bibtex_field_new();
Modified: xfbib/branches/gobject/src/xfbib-file-io.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-file-io.c 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-file-io.c 2008-10-25 20:21:42 UTC (rev 5805)
@@ -53,10 +53,10 @@
{
XfbibState *state;
XfbibBibtex *elements;
- GtkTreeModel *list_store;
+ GtkTreeModel *list_store_entries;
gchar *contents, *name;
gsize length;
- gint i, ret, n;
+ gint i, ret, n_entries, n_strings;
GError *err = NULL;
GtkWidget *dialog, *window;
GtkFileFilter *filter;
@@ -65,7 +65,7 @@
window = xfbib_state_get_window(state);
elements = xfbib_state_get_bibtex_elements(state);
- list_store = gtk_tree_view_get_model(GTK_TREE_VIEW(xfbib_window_get_tree_view(XFBIB_WINDOW(window))));
+ list_store_entries = gtk_tree_view_get_model(GTK_TREE_VIEW(xfbib_window_get_tree_view(XFBIB_WINDOW(window))));
name = filename;
@@ -82,7 +82,7 @@
gtk_file_filter_add_pattern(filter, "*.bib");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
if ((ret = gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)) {
- xfbib_list_store_clear(XFBIB_LIST_STORE(list_store));
+ xfbib_list_store_clear(XFBIB_LIST_STORE(list_store_entries));
name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
} else {
gtk_widget_destroy(dialog);
@@ -97,11 +97,16 @@
g_error_free(err);
return NULL;
} else {
- n = xfbib_bibtex_get_n_entries(elements);
+ n_entries = xfbib_bibtex_get_n(elements, TYPE_ENTRY);
+ n_strings = xfbib_bibtex_get_n(elements, TYPE_STRING);
/* Parse the file and update the tree view */
if (xfbib_bibtex_parse(elements, contents)) {
- for (i = n; i < xfbib_bibtex_get_n_entries(elements); i++)
- xfbib_list_store_row_inserted(XFBIB_LIST_STORE(list_store), i);
+ for (i = n_entries; i < xfbib_bibtex_get_n(elements, TYPE_ENTRY); i++)
+ xfbib_list_store_row_inserted(XFBIB_LIST_STORE(list_store_entries), i);
+ /* TODO: Update the string tree_view */
+/* for (i = n_entries; i < xfbib_bibtex_get_n(elements, TYPE_ENTRY); i++)
+ xfbib_list_store_row_inserted(XFBIB_LIST_STORE(list_store_entries), i);
+*/
}
}
Modified: xfbib/branches/gobject/src/xfbib-list-store.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-list-store.c 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-list-store.c 2008-10-25 20:21:42 UTC (rev 5805)
@@ -32,17 +32,13 @@
#include "xfbib-bibtex-preamble.h"
#include "xfbib-bibtex-string.h"
-enum {
- TYPE_ENTRY,
-};
-
struct _XfbibListStore
{
GtkListStore parent;
XfbibState *state;
gint stamp;
- gint type;
+ enum XFBIB_BIBTEX_TYPE type;
};
typedef struct _XfbibListStoreClass
@@ -137,7 +133,6 @@
{
instance->stamp = g_random_int();
instance->state = xfbib_state_new();
- instance->type = TYPE_ENTRY;
}
static void
@@ -163,7 +158,9 @@
switch (list_store->type) {
case TYPE_ENTRY:
- return XFBIB_FIELD_N_FIELDS;
+ return XFBIB_BIBTEX_FIELD_N_FIELDS;
+ case TYPE_STRING:
+ return XFBIB_BIBTEX_STRING_N_STRINGS;
default:
return 0;
}
@@ -178,10 +175,13 @@
list_store = XFBIB_LIST_STORE(tree_model);
switch (list_store->type) {
case TYPE_ENTRY:
- if (index >= XFBIB_FIELD_N_FIELDS) {
+ if (index >= XFBIB_BIBTEX_FIELD_N_FIELDS)
return G_TYPE_INVALID;
- }
return G_TYPE_STRING;
+ case TYPE_STRING:
+ if (index >= XFBIB_BIBTEX_STRING_N_STRINGS)
+ return G_TYPE_INVALID;
+ return G_TYPE_STRING;
default:
return G_TYPE_INVALID;
}
@@ -203,11 +203,12 @@
switch (list_store->type) {
case TYPE_ENTRY:
- if (n >= xfbib_bibtex_get_n_entries(elements))
+ case TYPE_STRING:
+ if (n >= xfbib_bibtex_get_n(elements, list_store->type))
return FALSE;
iter->stamp = list_store->stamp;
- iter->user_data = xfbib_bibtex_get_nth_entry(elements, n);
+ iter->user_data = xfbib_bibtex_get_nth(elements, n, list_store->type);
break;
default:
return FALSE;
@@ -233,11 +234,12 @@
switch (list_store->type) {
case TYPE_ENTRY:
- if ((n = xfbib_bibtex_get_entry_position(elements,
+ case TYPE_STRING:
+ if ((n = xfbib_bibtex_get_position(elements,
iter->user_data)) == -1) {
return NULL;
}
- break;
+ break;
default:
return NULL;
}
@@ -268,7 +270,7 @@
switch (list_store->type) {
case TYPE_ENTRY:
- g_return_if_fail(column < XFBIB_FIELD_N_FIELDS
+ g_return_if_fail(column < XFBIB_BIBTEX_FIELD_N_FIELDS
&& XFBIB_IS_BIBTEX_ENTRY(iter->user_data));
@@ -287,15 +289,12 @@
return;
}
-#if 0
- field = xfbib_bibtex_entry_get_field_by_column(XFBIB_BIBTEX_ENTRY(iter->user_data), column);
-
- if (field == NULL)
- return;
-#endif
tmp = xfbib_bibtex_value_get_str(xfbib_bibtex_field_get_value(field));
g_value_set_string(value, (tmp == NULL) ? "" : tmp);
break;
+ case TYPE_STRING:
+ g_value_set_string(value, "TODO");
+ break;
default:
return;
}
@@ -306,7 +305,7 @@
{
XfbibListStore *list_store;
XfbibBibtex *elements;
- XfbibBibtexEntry *next;
+ GObject *next;
g_return_val_if_fail(XFBIB_IS_LIST_STORE(tree_model), FALSE);
@@ -320,7 +319,8 @@
switch (list_store->type) {
case TYPE_ENTRY:
- if ((next = xfbib_bibtex_get_next_entry(elements, iter->user_data)) == NULL) {
+ case TYPE_STRING:
+ if ((next = xfbib_bibtex_get_next(elements, iter->user_data)) == NULL) {
iter->stamp = 0;
return FALSE;
}
@@ -350,11 +350,12 @@
switch (list_store->type) {
case TYPE_ENTRY:
- if (xfbib_bibtex_get_n_entries(elements) == 0)
+ case TYPE_STRING:
+ if (xfbib_bibtex_get_n(elements, list_store->type) == 0)
return FALSE;
iter->stamp = list_store->stamp;
- if ((iter->user_data = xfbib_bibtex_get_nth_entry(elements, 0)) == NULL)
+ if ((iter->user_data = xfbib_bibtex_get_nth(elements, 0, list_store->type)) == NULL)
return FALSE;
break;
default:
@@ -382,8 +383,9 @@
switch (list_store->type) {
case TYPE_ENTRY:
+ case TYPE_STRING:
if (iter == NULL)
- return xfbib_bibtex_get_n_entries(elements);
+ return xfbib_bibtex_get_n(elements, list_store->type);
break;
default:
return -1;
@@ -408,11 +410,12 @@
switch (list_store->type) {
case TYPE_ENTRY:
- if (n >= xfbib_bibtex_get_n_entries(elements))
+ case TYPE_STRING:
+ if (n >= xfbib_bibtex_get_n(elements, list_store->type))
return FALSE;
iter->stamp = list_store->stamp;
- if ((iter->user_data = xfbib_bibtex_get_nth_entry(elements, n)) == NULL)
+ if ((iter->user_data = xfbib_bibtex_get_nth(elements, n, list_store->type)) == NULL)
return FALSE;
break;
default:
@@ -428,59 +431,15 @@
}
XfbibListStore *
-xfbib_list_store_new()
+xfbib_list_store_new(enum XFBIB_BIBTEX_TYPE type)
{
XfbibListStore *list_store;
list_store = g_object_new(XFBIB_TYPE_LIST_STORE, NULL);
+ list_store->type = type;
return list_store;
}
-#if 0
-/**
- * gtk_list_store_remove:
- * @list_store: A #GtkListStore
- * @iter: A valid #GtkTreeIter
- *
- * Removes the given row from the list store. After being removed,
- * @iter is set to be the next valid row, or invalidated if it pointed
- * to the last row in @list_store.
- *
- * Return value: %TRUE if @iter is valid, %FALSE if not.
- **/
-gboolean
-gtk_list_store_remove (GtkListStore *list_store,
- GtkTreeIter *iter)
-{
- GtkTreePath *path;
- GSequenceIter *ptr, *next;
- g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), FALSE);
- g_return_val_if_fail (VALID_ITER (iter, list_store), FALSE);
-
- path = gtk_list_store_get_path (GTK_TREE_MODEL (list_store), iter);
-
- ptr = iter->user_data;
- next = g_sequence_iter_next (ptr);
-
- _gtk_tree_data_list_free (g_sequence_get (ptr), list_store->column_headers);
- g_sequence_remove (iter->user_data);
-
- list_store->length--;
-
- gtk_tree_model_row_deleted (GTK_TREE_MODEL (list_store), path);
- gtk_tree_path_free (path);
-
- if (g_sequence_iter_is_end (next)) {
- iter->stamp = 0;
- return FALSE;
- } else {
- iter->stamp = list_store->stamp;
- iter->user_data = next;
- return TRUE;
- }
-}
-#endif
-
gboolean
xfbib_list_store_remove(XfbibListStore *list_store, GtkTreeIter *iter)
{
@@ -516,31 +475,7 @@
}
-#if 0
-/**
- * gtk_list_store_clear:
- * @list_store: a #GtkListStore.
- *
- * Removes all rows from the list store.
- *
- **/
void
-gtk_list_store_clear (GtkListStore *list_store)
-{
- GtkTreeIter iter;
- g_return_if_fail (GTK_IS_LIST_STORE (list_store));
-
- while (g_sequence_get_length (list_store->seq) > 0)
- {
- iter.stamp = list_store->stamp;
- iter.user_data = g_sequence_get_begin_iter (list_store->seq);
- gtk_list_store_remove (list_store, &iter);
- }
-
- gtk_list_store_increment_stamp (list_store);
-}
-#endif
-void
xfbib_list_store_clear(XfbibListStore *list_store)
{
XfbibBibtex *elements;
@@ -549,9 +484,9 @@
elements = xfbib_state_get_bibtex_elements(list_store->state);
- while (xfbib_bibtex_get_n_entries(elements) > 0) {
+ while (xfbib_bibtex_get_n(elements, list_store->type) > 0) {
iter.stamp = list_store->stamp;
- iter.user_data = xfbib_bibtex_get_nth_entry(elements, 0);
+ iter.user_data = xfbib_bibtex_get_nth(elements, 0, list_store->type);
xfbib_list_store_remove(list_store, &iter);
}
@@ -596,45 +531,46 @@
gtk_tree_path_free(path);
}
-XfbibBibtexEntry *
-xfbib_list_store_get_entry(XfbibListStore *list_store, GtkTreeIter *iter)
+GObject *
+xfbib_list_store_get(XfbibListStore *list_store, GtkTreeIter *iter)
{
g_return_val_if_fail(XFBIB_IS_LIST_STORE (list_store), NULL);
g_return_val_if_fail(list_store->stamp == iter->stamp, NULL);
g_return_val_if_fail(iter->user_data != NULL, NULL);
- return XFBIB_BIBTEX_ENTRY(iter->user_data);
+ return G_OBJECT(iter->user_data);
}
void
-xfbib_list_store_add_entry(XfbibListStore *list_store, XfbibBibtexEntry *entry)
+xfbib_list_store_add(XfbibListStore *list_store, GObject *obj)
{
XfbibBibtex *elements;
gint n;
- g_return_if_fail(XFBIB_IS_LIST_STORE(list_store));
- g_return_if_fail(XFBIB_BIBTEX_ENTRY(entry));
+ g_return_if_fail(XFBIB_IS_LIST_STORE(list_store) &&
+ (XFBIB_BIBTEX_ENTRY(obj) ||
+ XFBIB_BIBTEX_STRING(obj)));
elements = xfbib_state_get_bibtex_elements(list_store->state);
- xfbib_bibtex_add_entry(elements, entry);
+ xfbib_bibtex_add(elements, obj);
- n = xfbib_bibtex_get_n_entries(elements);
+ n = xfbib_bibtex_get_n(elements, list_store->type);
xfbib_list_store_row_inserted(list_store, n-1);
}
void
-xfbib_list_store_replace_entry(XfbibListStore *list_store, XfbibBibtexEntry *old_entry,
- XfbibBibtexEntry *new_entry)
+xfbib_list_store_replace_entry(XfbibListStore *list_store, GObject *old_obj, GObject *new_obj)
{
XfbibBibtex *elements;
gint n;
- g_return_if_fail(XFBIB_IS_LIST_STORE(list_store));
- g_return_if_fail(XFBIB_BIBTEX_ENTRY(old_entry) && XFBIB_BIBTEX_ENTRY(new_entry));
+ g_return_if_fail(XFBIB_IS_LIST_STORE(list_store) &&
+ XFBIB_BIBTEX_ENTRY(old_obj) &&
+ XFBIB_BIBTEX_ENTRY(new_obj));
elements = xfbib_state_get_bibtex_elements(list_store->state);
- n = xfbib_bibtex_replace_entry(elements, old_entry, new_entry);
+ n = xfbib_bibtex_replace(elements, old_obj, new_obj);
xfbib_list_store_row_changed(list_store, n);
}
Modified: xfbib/branches/gobject/src/xfbib-list-store.h
===================================================================
--- xfbib/branches/gobject/src/xfbib-list-store.h 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-list-store.h 2008-10-25 20:21:42 UTC (rev 5805)
@@ -21,6 +21,7 @@
#define __XFBIB_LIST_STORE_H
#include <gtk/gtk.h>
+#include "xfbib-bibtex.h"
#include "xfbib-bibtex-entry.h"
#define XFBIB_TYPE_LIST_STORE (xfbib_list_store_get_type())
@@ -36,15 +37,14 @@
GType xfbib_list_store_get_type() G_GNUC_CONST;
-XfbibListStore *xfbib_list_store_new();
+XfbibListStore *xfbib_list_store_new(enum XFBIB_BIBTEX_TYPE);
gboolean xfbib_list_store_remove(XfbibListStore *, GtkTreeIter *);
void xfbib_list_store_clear(XfbibListStore *);
void xfbib_list_store_row_inserted(XfbibListStore *, gint);
-XfbibBibtexEntry *xfbib_list_store_get_entry(XfbibListStore *, GtkTreeIter *);
-void xfbib_list_store_add_entry(XfbibListStore *, XfbibBibtexEntry *);
-void xfbib_list_store_replace_entry(XfbibListStore *, XfbibBibtexEntry *, XfbibBibtexEntry *);
+GObject *xfbib_list_store_get(XfbibListStore *, GtkTreeIter *);
+void xfbib_list_store_add(XfbibListStore *, GObject *);
+void xfbib_list_store_replace(XfbibListStore *, GObject *, GObject *);
-
G_END_DECLS
#endif //__XFBIB_LIST_STORE_H
Modified: xfbib/branches/gobject/src/xfbib-menu-bar.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-menu-bar.c 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-menu-bar.c 2008-10-25 20:21:42 UTC (rev 5805)
@@ -120,7 +120,7 @@
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
new_entry = xfbib_entry_edit_dialog_get_entry(XFBIB_ENTRY_EDIT_DIALOG(dialog));
- xfbib_list_store_add_entry(XFBIB_LIST_STORE(model), new_entry);
+ xfbib_list_store_add(XFBIB_LIST_STORE(model), G_OBJECT(new_entry));
}
gtk_widget_destroy(dialog);
}
@@ -164,7 +164,7 @@
/* This will only work in single or browse selection mode! */
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
- entry = xfbib_list_store_get_entry(XFBIB_LIST_STORE(model), &iter);
+ entry = XFBIB_BIBTEX_ENTRY(xfbib_list_store_get(XFBIB_LIST_STORE(model), &iter));
dialog = xfbib_entry_edit_dialog_new(entry);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
@@ -350,7 +350,7 @@
/* Columns submenu */
/*
- for (i = 0; i < XFBIB_FIELD_N_FIELDS; i++) {
+ for (i = 0; i < XFBIB_BIBTEX_FIELD_N_FIELDS; i++) {
str = g_strdup_printf("Show %s", xfbib_field_get_column_name(i));
item = gtk_check_menu_item_new_with_mnemonic(str);
g_free(str);
Modified: xfbib/branches/gobject/src/xfbib-tree-view.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-tree-view.c 2008-10-25 15:58:35 UTC (rev 5804)
+++ xfbib/branches/gobject/src/xfbib-tree-view.c 2008-10-25 20:21:42 UTC (rev 5805)
@@ -92,7 +92,7 @@
model = gtk_tree_view_get_model(tree_view);
if (gtk_tree_model_get_iter(model, &iter, path)) {
- entry = xfbib_list_store_get_entry(XFBIB_LIST_STORE(model), &iter);
+ entry = XFBIB_BIBTEX_ENTRY(xfbib_list_store_get(XFBIB_LIST_STORE(model), &iter));
dialog = xfbib_entry_edit_dialog_new(entry);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
new_entry = xfbib_entry_edit_dialog_get_entry(XFBIB_ENTRY_EDIT_DIALOG(dialog));
@@ -133,7 +133,7 @@
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
new_entry = xfbib_entry_edit_dialog_get_entry(XFBIB_ENTRY_EDIT_DIALOG(dialog));
- xfbib_list_store_add_entry(XFBIB_LIST_STORE(model), new_entry);
+ xfbib_list_store_add(XFBIB_LIST_STORE(model), G_OBJECT(new_entry));
}
gtk_widget_destroy(dialog);
@@ -190,30 +190,30 @@
g_signal_connect(GTK_WIDGET(instance), "button-press-event", (GCallback) cb_button_press, NULL);
- for (i = 0; i < XFBIB_FIELD_N_FIELDS; i++) {
+ for (i = 0; i < XFBIB_BIBTEX_FIELD_N_FIELDS; i++) {
switch (i) {
- case XFBIB_FIELD_ANNOTE:
- case XFBIB_FIELD_BOOKTITLE:
- case XFBIB_FIELD_CHAPTER:
- case XFBIB_FIELD_CROSSREF:
- case XFBIB_FIELD_EDITION:
- case XFBIB_FIELD_EDITOR:
- case XFBIB_FIELD_EPRINT:
- case XFBIB_FIELD_HOWPUBLISHED:
- case XFBIB_FIELD_INSTITUTION:
- case XFBIB_FIELD_JOURNAL:
- case XFBIB_FIELD_KEY:
- case XFBIB_FIELD_MONTH:
- case XFBIB_FIELD_NOTE:
- case XFBIB_FIELD_NUMBER:
- case XFBIB_FIELD_ORGANIZATION:
- case XFBIB_FIELD_PAGES:
- case XFBIB_FIELD_PUBLISHER:
- case XFBIB_FIELD_SCHOOL:
- case XFBIB_FIELD_SERIES:
- case XFBIB_FIELD_TYPE:
- case XFBIB_FIELD_URL:
- case XFBIB_FIELD_VOLUME:
+ case XFBIB_BIBTEX_FIELD_ANNOTE:
+ case XFBIB_BIBTEX_FIELD_BOOKTITLE:
+ case XFBIB_BIBTEX_FIELD_CHAPTER:
+ case XFBIB_BIBTEX_FIELD_CROSSREF:
+ case XFBIB_BIBTEX_FIELD_EDITION:
+ case XFBIB_BIBTEX_FIELD_EDITOR:
+ case XFBIB_BIBTEX_FIELD_EPRINT:
+ case XFBIB_BIBTEX_FIELD_HOWPUBLISHED:
+ case XFBIB_BIBTEX_FIELD_INSTITUTION:
+ case XFBIB_BIBTEX_FIELD_JOURNAL:
+ case XFBIB_BIBTEX_FIELD_KEY:
+ case XFBIB_BIBTEX_FIELD_MONTH:
+ case XFBIB_BIBTEX_FIELD_NOTE:
+ case XFBIB_BIBTEX_FIELD_NUMBER:
+ case XFBIB_BIBTEX_FIELD_ORGANIZATION:
+ case XFBIB_BIBTEX_FIELD_PAGES:
+ case XFBIB_BIBTEX_FIELD_PUBLISHER:
+ case XFBIB_BIBTEX_FIELD_SCHOOL:
+ case XFBIB_BIBTEX_FIELD_SERIES:
+ case XFBIB_BIBTEX_FIELD_TYPE:
+ case XFBIB_BIBTEX_FIELD_URL:
+ case XFBIB_BIBTEX_FIELD_VOLUME:
continue;
break;
}
@@ -236,7 +236,7 @@
gtk_tree_view_column_add_attribute(column, renderer, "text", i);
}
- model = GTK_TREE_MODEL(xfbib_list_store_new());
+ model = GTK_TREE_MODEL(xfbib_list_store_new(TYPE_ENTRY));
gtk_tree_view_set_model(GTK_TREE_VIEW(instance), model);
g_object_unref(model); /* destroy model automatically with view */
}
More information about the Goodies-commits
mailing list