Refactor: remove unnecessary GNCSearch*Private

- rename parent to parent_instance
- remove unused member dummy
pull/1666/head
Richard Cohen 3 years ago
parent 4eb20b2456
commit a8943dc315

@ -45,23 +45,14 @@ static void gnc_search_boolean_finalize (GObject *obj);
struct _GNCSearchBoolean
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
gboolean value;
};
typedef struct _GNCSearchBooleanPrivate GNCSearchBooleanPrivate;
struct _GNCSearchBooleanPrivate
{
GtkWindow *parent;
gpointer dummy;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchBoolean, gnc_search_boolean, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchBooleanPrivate*)gnc_search_boolean_get_instance_private((GNCSearchBoolean*)o))
G_DEFINE_TYPE(GNCSearchBoolean, gnc_search_boolean, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_boolean_class_init (GNCSearchBooleanClass *klass)
@ -123,13 +114,11 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchBoolean *fi = (GNCSearchBoolean *)fe;
GNCSearchBooleanPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_BOOLEAN (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static gboolean

@ -49,24 +49,16 @@ static void gnc_search_date_finalize (GObject *obj);
struct _GNCSearchDate
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
QofQueryCompare how;
time64 tt;
};
typedef struct _GNCSearchDatePrivate GNCSearchDatePrivate;
struct _GNCSearchDatePrivate
{
GtkWidget *entry;
GtkWindow *parent;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchDate, gnc_search_date, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchDatePrivate*)gnc_search_date_get_instance_private((GNCSearchDate*)o))
G_DEFINE_TYPE(GNCSearchDate, gnc_search_date, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_date_class_init (GNCSearchDateClass *klass)
@ -99,14 +91,12 @@ static void
gnc_search_date_finalize (GObject *obj)
{
GNCSearchDate *o;
GNCSearchDatePrivate *priv;
g_assert (GNC_IS_SEARCH_DATE (obj));
o = GNC_SEARCH_DATE(obj);
priv = _PRIVATE(o);
if (priv->entry)
gtk_widget_destroy (priv->entry);
if (o->entry)
gtk_widget_destroy (o->entry);
G_OBJECT_CLASS (gnc_search_date_parent_class)->finalize(obj);
}
@ -146,13 +136,11 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchDate *fi = (GNCSearchDate *)fe;
GNCSearchDatePrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_DATE (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static gboolean
@ -212,28 +200,24 @@ static void
grab_focus (GNCSearchCoreType *fe)
{
GNCSearchDate *fi = (GNCSearchDate *)fe;
GNCSearchDatePrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_DATE (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_widget_grab_focus (GNC_DATE_EDIT(priv->entry)->date_entry);
if (fi->entry)
gtk_widget_grab_focus (GNC_DATE_EDIT(fi->entry)->date_entry);
}
static void
editable_enters (GNCSearchCoreType *fe)
{
GNCSearchDate *fi = (GNCSearchDate *)fe;
GNCSearchDatePrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_DATE (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gnc_date_activates_default (GNC_DATE_EDIT (priv->entry), TRUE);
if (fi->entry)
gnc_date_activates_default (GNC_DATE_EDIT (fi->entry), TRUE);
}
static GtkWidget *
@ -241,12 +225,10 @@ gncs_get_widget (GNCSearchCoreType *fe)
{
GtkWidget *entry, *menu, *box;
GNCSearchDate *fi = (GNCSearchDate *)fe;
GNCSearchDatePrivate *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_DATE (fi), NULL);
priv = _PRIVATE(fi);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
@ -259,7 +241,7 @@ gncs_get_widget (GNCSearchCoreType *fe)
g_signal_connect (G_OBJECT (entry), "date_changed", G_CALLBACK (date_changed), fe);
gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3);
g_object_ref (entry);
priv->entry = entry;
fi->entry = entry;
/* And return the box */
return box;
@ -268,15 +250,13 @@ gncs_get_widget (GNCSearchCoreType *fe)
static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
{
GNCSearchDate *fi = (GNCSearchDate *)fe;
GNCSearchDatePrivate *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_DATE (fi), NULL);
/* Make sure we actually use the currently-entered date */
priv = _PRIVATE(fi);
if (priv->entry)
gnc_search_date_set_date_from_edit (fi, GNC_DATE_EDIT (priv->entry));
if (fi->entry)
gnc_search_date_set_date_from_edit (fi, GNC_DATE_EDIT (fi->entry));
if (fi->how == QOF_COMPARE_EQUAL || fi->how == QOF_COMPARE_NEQ)
return qof_query_date_predicate (fi->how, QOF_DATE_MATCH_DAY, fi->tt);

@ -49,25 +49,17 @@ static void gnc_search_double_finalize (GObject *obj);
struct _GNCSearchDouble
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
QofQueryCompare how;
double value;
};
typedef struct _GNCSearchDoublePrivate GNCSearchDoublePrivate;
struct _GNCSearchDoublePrivate
{
GtkWidget * entry;
GNCAmountEdit *gae;
GtkWindow *parent;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchDouble, gnc_search_double, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchDoublePrivate*)gnc_search_double_get_instance_private((GNCSearchDouble*)o))
G_DEFINE_TYPE(GNCSearchDouble, gnc_search_double, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_double_class_init (GNCSearchDoubleClass *klass)
@ -139,31 +131,26 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_DOUBLE (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv;
gboolean valid = TRUE;
GError *error = NULL;
g_return_val_if_fail (fi, FALSE);
g_return_val_if_fail (GNC_IS_SEARCH_DOUBLE (fi), FALSE);
priv = _PRIVATE(fi);
if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT(priv->gae), &error))
if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT(fi->gae), &error))
{
gnc_error_dialog (GTK_WINDOW(priv->parent), "%s", error->message);
gnc_error_dialog (GTK_WINDOW(fi->parent), "%s", error->message);
valid = FALSE;
g_error_free (error);
}
@ -201,28 +188,24 @@ static void
grab_focus (GNCSearchCoreType *fe)
{
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv ;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_DOUBLE (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_widget_grab_focus (priv->entry);
if (fi->entry)
gtk_widget_grab_focus (fi->entry);
}
static void
editable_enters (GNCSearchCoreType *fe)
{
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv ;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_DOUBLE (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_entry_set_activates_default(GTK_ENTRY (priv->entry), TRUE);
if (fi->entry)
gtk_entry_set_activates_default(GTK_ENTRY (fi->entry), TRUE);
}
static GtkWidget *
@ -230,12 +213,10 @@ gncs_get_widget (GNCSearchCoreType *fe)
{
GtkWidget *entry, *menu, *box;
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv ;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_DOUBLE (fi), NULL);
priv = _PRIVATE(fi);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
@ -249,8 +230,8 @@ gncs_get_widget (GNCSearchCoreType *fe)
gnc_amount_edit_set_damount (GNC_AMOUNT_EDIT (entry), fi->value);
g_signal_connect (G_OBJECT (entry), "amount_changed", G_CALLBACK (entry_changed), fe);
gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3);
priv->entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (entry));
priv->gae = GNC_AMOUNT_EDIT (entry);
fi->entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (entry));
fi->gae = GNC_AMOUNT_EDIT (entry);
/* And return the box */
return box;
@ -259,14 +240,12 @@ gncs_get_widget (GNCSearchCoreType *fe)
static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
{
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv ;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_DOUBLE (fi), NULL);
/* force the computation of the entry, because we may not get the signal */
priv = _PRIVATE(fi);
entry_changed (priv->gae, fi);
entry_changed (fi->gae, fi);
return qof_query_double_predicate (fi->how, fi->value);
}

@ -49,25 +49,17 @@ static void gnc_search_int64_finalize (GObject *obj);
struct _GNCSearchInt64
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
QofQueryCompare how;
gint64 value;
};
typedef struct _GNCSearchInt64Private GNCSearchInt64Private;
struct _GNCSearchInt64Private
{
GtkWidget *entry;
GNCAmountEdit *gae;
GtkWindow *parent;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchInt64, gnc_search_int64, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchInt64Private*)gnc_search_int64_get_instance_private((GNCSearchInt64*)o))
G_DEFINE_TYPE(GNCSearchInt64, gnc_search_int64, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_int64_class_init (GNCSearchInt64Class *klass)
@ -139,31 +131,26 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_INT64 (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
gboolean valid = TRUE;
GError *error = NULL;
g_return_val_if_fail (fi, FALSE);
g_return_val_if_fail (GNC_IS_SEARCH_INT64 (fi), FALSE);
priv = _PRIVATE(fi);
if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT(priv->gae), &error))
if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT(fi->gae), &error))
{
gnc_error_dialog (GTK_WINDOW(priv->parent), "%s", error->message);
gnc_error_dialog (GTK_WINDOW(fi->parent), "%s", error->message);
valid = FALSE;
g_error_free (error);
}
@ -202,28 +189,24 @@ static void
grab_focus (GNCSearchCoreType *fe)
{
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_INT64 (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_widget_grab_focus (priv->entry);
if (fi->entry)
gtk_widget_grab_focus (fi->entry);
}
static void
editable_enters (GNCSearchCoreType *fe)
{
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_INT64 (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_entry_set_activates_default(GTK_ENTRY (priv->entry), TRUE);
if (fi->entry)
gtk_entry_set_activates_default(GTK_ENTRY (fi->entry), TRUE);
}
static GtkWidget *
@ -231,12 +214,10 @@ gncs_get_widget (GNCSearchCoreType *fe)
{
GtkWidget *entry, *menu, *box;
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_INT64 (fi), NULL);
priv = _PRIVATE(fi);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
@ -255,8 +236,8 @@ gncs_get_widget (GNCSearchCoreType *fe)
}
g_signal_connect (G_OBJECT (entry), "amount_changed", G_CALLBACK (entry_changed), fe);
gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3);
priv->entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (entry));
priv->gae = GNC_AMOUNT_EDIT (entry);
fi->entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (entry));
fi->gae = GNC_AMOUNT_EDIT (entry);
/* And return the box */
return box;
@ -265,14 +246,12 @@ gncs_get_widget (GNCSearchCoreType *fe)
static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
{
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_INT64 (fi), NULL);
/* force the computation of the entry, because we may not get the signal */
priv = _PRIVATE(fi);
entry_changed (priv->gae, fi);
entry_changed (fi->gae, fi);
return qof_query_int64_predicate (fi->how, fi->value);
}

@ -49,28 +49,19 @@ static void gnc_search_numeric_finalize (GObject *obj);
struct _GNCSearchNumeric
{
GNCSearchCoreType parent;
struct _GNCSearchNumericPrivate *priv;
GNCSearchCoreType parent_instance;
QofQueryCompare how;
gnc_numeric value;
QofNumericMatch option;
};
typedef struct _GNCSearchNumericPrivate GNCSearchNumericPrivate;
struct _GNCSearchNumericPrivate
{
gboolean is_debcred;
GtkWidget * entry;
GNCAmountEdit *gae;
GtkWindow *parent;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchNumeric, gnc_search_numeric, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchNumericPrivate*)gnc_search_numeric_get_instance_private((GNCSearchNumeric*)o))
G_DEFINE_TYPE(GNCSearchNumeric, gnc_search_numeric, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_numeric_class_init (GNCSearchNumericClass *klass)
@ -134,11 +125,9 @@ GNCSearchNumeric *
gnc_search_numeric_debcred_new (void)
{
GNCSearchNumeric *o;
GNCSearchNumericPrivate *priv;
o = g_object_new(GNC_TYPE_SEARCH_NUMERIC, NULL);
priv = _PRIVATE(o);
priv->is_debcred = TRUE;
o->is_debcred = TRUE;
return o;
}
@ -171,31 +160,26 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_NUMERIC (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
gboolean valid = TRUE;
GError *error = NULL;
g_return_val_if_fail (fi, FALSE);
g_return_val_if_fail (GNC_IS_SEARCH_NUMERIC (fi), FALSE);
priv = _PRIVATE(fi);
if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT(priv->gae), &error))
if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT(fi->gae), &error))
{
gnc_error_dialog (GTK_WINDOW(priv->parent), "%s", error->message);
gnc_error_dialog (GTK_WINDOW(fi->parent), "%s", error->message);
valid = FALSE;
g_error_free (error);
}
@ -212,29 +196,26 @@ static GtkWidget *
make_how_menu (GNCSearchCoreType *fe)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
GtkComboBox *combo;
priv = _PRIVATE(fi);
combo = GTK_COMBO_BOX(gnc_combo_box_new_search());
gnc_combo_box_search_add(combo, (priv->is_debcred ?
gnc_combo_box_search_add(combo, (fi->is_debcred ?
_("less than") : _("is less than")),
QOF_COMPARE_LT);
gnc_combo_box_search_add(combo, (priv->is_debcred ?
gnc_combo_box_search_add(combo, (fi->is_debcred ?
_("less than or equal to") :
_("is less than or equal to")),
QOF_COMPARE_LTE);
gnc_combo_box_search_add(combo, (priv->is_debcred ?
gnc_combo_box_search_add(combo, (fi->is_debcred ?
_("equal to") : _("equals")),
QOF_COMPARE_EQUAL);
gnc_combo_box_search_add(combo, (priv->is_debcred ?
gnc_combo_box_search_add(combo, (fi->is_debcred ?
_("not equal to") : _("does not equal")),
QOF_COMPARE_NEQ);
gnc_combo_box_search_add(combo, (priv->is_debcred ?
gnc_combo_box_search_add(combo, (fi->is_debcred ?
_("greater than") : _("is greater than")),
QOF_COMPARE_GT);
gnc_combo_box_search_add(combo, (priv->is_debcred ?
gnc_combo_box_search_add(combo, (fi->is_debcred ?
_("greater than or equal to") :
_("is greater than or equal to")),
QOF_COMPARE_GTE);
@ -265,28 +246,24 @@ static void
grab_focus (GNCSearchCoreType *fe)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_NUMERIC (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_widget_grab_focus (priv->entry);
if (fi->entry)
gtk_widget_grab_focus (fi->entry);
}
static void
editable_enters (GNCSearchCoreType *fe)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_NUMERIC (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_entry_set_activates_default(GTK_ENTRY (priv->entry), TRUE);
if (fi->entry)
gtk_entry_set_activates_default(GTK_ENTRY (fi->entry), TRUE);
}
static GtkWidget *
@ -294,17 +271,15 @@ gncs_get_widget (GNCSearchCoreType *fe)
{
GtkWidget *entry, *menu, *box;
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_NUMERIC (fi), NULL);
priv = _PRIVATE(fi);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
/* Build and connect the option menu(s) */
if (priv->is_debcred)
if (fi->is_debcred)
{
menu = make_option_menu (fe);
gtk_box_pack_start (GTK_BOX (box), menu, FALSE, FALSE, 3);
@ -318,8 +293,8 @@ gncs_get_widget (GNCSearchCoreType *fe)
gnc_amount_edit_set_amount (GNC_AMOUNT_EDIT (entry), fi->value);
g_signal_connect (G_OBJECT (entry), "amount_changed", G_CALLBACK (entry_changed), fe);
gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3);
priv->gae = GNC_AMOUNT_EDIT (entry);
priv->entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (entry));
fi->gae = GNC_AMOUNT_EDIT (entry);
fi->entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (entry));
/* And return the box */
return box;
@ -328,14 +303,12 @@ gncs_get_widget (GNCSearchCoreType *fe)
static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_NUMERIC (fi), NULL);
/* force the computation of the entry, because we may not get the signal */
priv = _PRIVATE(fi);
entry_changed (priv->gae, fi);
entry_changed (fi->gae, fi);
return qof_query_numeric_predicate (fi->how, fi->option, fi->value);
}
@ -343,18 +316,15 @@ static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe)
{
GNCSearchNumeric *se, *fse = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *se_priv, *fse_priv;
g_return_val_if_fail (fse, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_NUMERIC (fse), NULL);
fse_priv = _PRIVATE(fse);
se = gnc_search_numeric_new ();
gnc_search_numeric_set_value (se, fse->value);
gnc_search_numeric_set_how (se, fse->how);
se_priv = _PRIVATE(se);
gnc_search_numeric_set_option (se, fse->option);
se_priv->is_debcred = fse_priv->is_debcred;
se->is_debcred = fse->is_debcred;
return (GNCSearchCoreType *)se;
}

@ -47,24 +47,15 @@ static void gnc_search_reconciled_finalize (GObject *obj);
struct _GNCSearchReconciled
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
QofCharMatch how;
cleared_match_t value;
};
typedef struct _GNCSearchReconciledPrivate GNCSearchReconciledPrivate;
struct _GNCSearchReconciledPrivate
{
GtkWindow *parent;
gpointer dummy;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchReconciled, gnc_search_reconciled, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchReconciledPrivate*)gnc_search_reconciled_get_instance_private((GNCSearchReconciled*)o))
G_DEFINE_TYPE(GNCSearchReconciled, gnc_search_reconciled, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_reconciled_class_init (GNCSearchReconciledClass *klass)
@ -135,13 +126,11 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchReconciled *fi = (GNCSearchReconciled *)fe;
GNCSearchReconciledPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_RECONCILED (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static gboolean

@ -49,25 +49,17 @@ static void gnc_search_string_finalize (GObject *obj);
struct _GNCSearchString
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
GNCSearchString_Type how;
gboolean ign_case;
char * value;
};
typedef struct _GNCSearchStringPrivate GNCSearchStringPrivate;
struct _GNCSearchStringPrivate
{
GtkWidget *entry;
GtkWindow *parent;
};
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchString, gnc_search_string, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchStringPrivate*)gnc_search_string_get_instance_private((GNCSearchString*)o))
G_DEFINE_TYPE(GNCSearchString, gnc_search_string, GNC_TYPE_SEARCH_CORE_TYPE)
static void
gnc_search_string_class_init (GNCSearchStringClass *klass)
@ -154,18 +146,15 @@ static gboolean
gncs_validate (GNCSearchCoreType *fe)
{
GNCSearchString *fi = (GNCSearchString *)fe;
GNCSearchStringPrivate *priv;
gboolean valid = TRUE;
g_return_val_if_fail (fi, FALSE);
g_return_val_if_fail (GNC_IS_SEARCH_STRING (fi), FALSE);
priv = _PRIVATE(fi);
if (!fi->value || *(fi->value) == '\0')
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (GTK_WINDOW(priv->parent),
dialog = gtk_message_dialog_new (GTK_WINDOW(fi->parent),
GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_OK,
@ -203,7 +192,7 @@ gncs_validate (GNCSearchCoreType *fe)
fi->value, regmsg);
g_free (regmsg);
dialog = gtk_message_dialog_new (GTK_WINDOW(priv->parent),
dialog = gtk_message_dialog_new (GTK_WINDOW(fi->parent),
GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_OK,
@ -259,41 +248,35 @@ static void
grab_focus (GNCSearchCoreType *fe)
{
GNCSearchString *fi = (GNCSearchString *)fe;
GNCSearchStringPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_STRING (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_widget_grab_focus (priv->entry);
if (fi->entry)
gtk_widget_grab_focus (fi->entry);
}
static void
editable_enters (GNCSearchCoreType *fe)
{
GNCSearchString *fi = (GNCSearchString *)fe;
GNCSearchStringPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_STRING (fi));
priv = _PRIVATE(fi);
if (priv->entry)
gtk_entry_set_activates_default(GTK_ENTRY (priv->entry), TRUE);
if (fi->entry)
gtk_entry_set_activates_default(GTK_ENTRY (fi->entry), TRUE);
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchString *fi = (GNCSearchString *)fe;
GNCSearchStringPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_STRING (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static GtkWidget *
@ -301,12 +284,10 @@ gncs_get_widget (GNCSearchCoreType *fe)
{
GtkWidget *entry, *toggle, *menu, *box;
GNCSearchString *fi = (GNCSearchString *)fe;
GNCSearchStringPrivate *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_STRING (fi), NULL);
priv = _PRIVATE(fi);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
@ -320,7 +301,7 @@ gncs_get_widget (GNCSearchCoreType *fe)
gtk_entry_set_text (GTK_ENTRY (entry), fi->value);
g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (entry_changed), fe);
gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 3);
priv->entry = entry;
fi->entry = entry;
/* Build and connect the case-sensitive check button; defaults to off */
toggle = gtk_check_button_new_with_label (_("Match case"));

@ -49,23 +49,17 @@ static void gnc_search_owner_finalize (GObject *obj);
struct _GNCSearchOwner
{
GNCSearchCoreType parent;
GNCSearchCoreType parent_instance;
QofGuidMatch how;
};
typedef struct _GNCSearchOwnerPrivate
{
GncOwner owner;
GtkWindow * parent;
GtkWidget * owner_box;
GtkWidget * owner_choice;
} GNCSearchOwnerPrivate;
G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchOwner, gnc_search_owner, GNC_TYPE_SEARCH_CORE_TYPE)
#define _PRIVATE(o) \
((GNCSearchOwnerPrivate*)gnc_search_owner_get_instance_private((GNCSearchOwner*)o))
G_DEFINE_TYPE(GNCSearchOwner, gnc_search_owner, GNC_TYPE_SEARCH_CORE_TYPE)
enum
{
@ -125,17 +119,15 @@ static gboolean
gncs_validate (GNCSearchCoreType *fe)
{
GNCSearchOwner *fi = (GNCSearchOwner *)fe;
GNCSearchOwnerPrivate *priv;
gboolean valid = TRUE;
g_return_val_if_fail (fi, FALSE);
g_return_val_if_fail (GNC_IS_SEARCH_OWNER (fi), FALSE);
priv = _PRIVATE(fi);
if (priv->owner.owner.undefined == NULL)
if (fi->owner.owner.undefined == NULL)
{
valid = FALSE;
gnc_error_dialog (GTK_WINDOW(priv->parent), "%s", _("You have not selected an owner"));
gnc_error_dialog (GTK_WINDOW(fi->parent), "%s", _("You have not selected an owner"));
}
/* XXX */
@ -147,39 +139,33 @@ static int
owner_changed_cb (GtkWidget *widget, gpointer data)
{
GNCSearchOwner *fe = data;
GNCSearchOwnerPrivate *priv;
priv = _PRIVATE(fe);
gnc_owner_get_owner (priv->owner_choice, &(priv->owner));
gnc_owner_get_owner (fe->owner_choice, &(fe->owner));
return FALSE;
}
static void
set_owner_widget (GNCSearchOwner *fe)
{
GNCSearchOwnerPrivate *priv;
/* Remove the old choice widget */
priv = _PRIVATE(fe);
if (priv->owner_choice)
gtk_container_remove (GTK_CONTAINER (priv->owner_box), priv->owner_choice);
if (fe->owner_choice)
gtk_container_remove (GTK_CONTAINER (fe->owner_box), fe->owner_choice);
/* Create a new choice widget */
priv->owner_choice =
gnc_owner_select_create (NULL, priv->owner_box,
gnc_get_current_book(), &(priv->owner));
fe->owner_choice =
gnc_owner_select_create (NULL, fe->owner_box,
gnc_get_current_book(), &(fe->owner));
/* Setup the "changed" callback */
g_signal_connect (G_OBJECT (priv->owner_choice), "changed",
g_signal_connect (G_OBJECT (fe->owner_choice), "changed",
G_CALLBACK (owner_changed_cb), fe);
gtk_widget_show_all (priv->owner_choice);
gtk_widget_show_all (fe->owner_choice);
}
static void
type_combo_changed (GtkWidget *widget, GNCSearchOwner *fe)
{
GNCSearchOwnerPrivate *priv;
GncOwnerType type;
g_return_if_fail(GTK_IS_COMBO_BOX(widget));
@ -187,14 +173,13 @@ type_combo_changed (GtkWidget *widget, GNCSearchOwner *fe)
type = gnc_combo_box_search_get_active(GTK_COMBO_BOX(widget));
/* If the type changed or if we don't have a type create the owner_choice */
priv = _PRIVATE(fe);
if (type != gncOwnerGetType (&(priv->owner)))
if (type != gncOwnerGetType (&(fe->owner)))
{
priv->owner.type = type;
priv->owner.owner.undefined = NULL;
fe->owner.type = type;
fe->owner.owner.undefined = NULL;
set_owner_widget (fe);
}
else if (priv->owner_choice == NULL)
else if (fe->owner_choice == NULL)
set_owner_widget (fe);
}
@ -202,12 +187,10 @@ static GtkWidget *
make_type_menu (GNCSearchCoreType *fe)
{
GNCSearchOwner *fi = (GNCSearchOwner *)fe;
GNCSearchOwnerPrivate *priv;
GtkComboBox *combo;
GncOwnerType type;
priv = _PRIVATE(fi);
type = gncOwnerGetType (&(priv->owner));
type = gncOwnerGetType (&(fi->owner));
combo = GTK_COMBO_BOX(gnc_combo_box_new_search());
gnc_combo_box_search_add(combo, _("Customer"), GNC_OWNER_CUSTOMER);
@ -242,13 +225,11 @@ static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchOwner *fi = (GNCSearchOwner *)fe;
GNCSearchOwnerPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (GNC_IS_SEARCH_OWNER (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
fi->parent = GTK_WINDOW(parent);
}
static GtkWidget *
@ -256,12 +237,10 @@ gncs_get_widget (GNCSearchCoreType *fe)
{
GtkWidget *how_menu, *type_menu, *box;
GNCSearchOwner *fi = (GNCSearchOwner *)fe;
GNCSearchOwnerPrivate *priv;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_OWNER (fi), NULL);
priv = _PRIVATE(fi);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
@ -270,8 +249,8 @@ gncs_get_widget (GNCSearchCoreType *fe)
gtk_box_pack_start (GTK_BOX (box), how_menu, FALSE, FALSE, 3);
/* Create the owner box */
priv->owner_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous (GTK_BOX (priv->owner_box), FALSE);
fi->owner_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_set_homogeneous (GTK_BOX (fi->owner_box), FALSE);
/* Build and connect the "type" option menu.
* Note that this will build the owner_choice and
@ -281,7 +260,7 @@ gncs_get_widget (GNCSearchCoreType *fe)
gtk_box_pack_start (GTK_BOX (box), type_menu, FALSE, FALSE, 3);
/* connect the owner box */
gtk_box_pack_start (GTK_BOX (box), priv->owner_box, FALSE, FALSE, 3);
gtk_box_pack_start (GTK_BOX (box), fi->owner_box, FALSE, FALSE, 3);
/* And return the box */
return box;
@ -290,15 +269,13 @@ gncs_get_widget (GNCSearchCoreType *fe)
static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
{
GNCSearchOwner *fi = (GNCSearchOwner *)fe;
GNCSearchOwnerPrivate *priv;
const GncGUID *guid;
GList *l = NULL;
g_return_val_if_fail (fi, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_OWNER (fi), NULL);
priv = _PRIVATE(fi);
guid = gncOwnerGetGUID (&(priv->owner));
guid = gncOwnerGetGUID (&(fi->owner));
l = g_list_prepend (l, (gpointer)guid);
return qof_query_guid_predicate (fi->how, l);
@ -307,16 +284,13 @@ static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe)
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe)
{
GNCSearchOwner *se, *fse = (GNCSearchOwner *)fe;
GNCSearchOwnerPrivate *se_priv, *fse_priv;
g_return_val_if_fail (fse, NULL);
g_return_val_if_fail (GNC_IS_SEARCH_OWNER (fse), NULL);
se = gnc_search_owner_new ();
se->how = fse->how;
se_priv = _PRIVATE(se);
fse_priv = _PRIVATE(fse);
gncOwnerCopy (&(fse_priv->owner), &(se_priv->owner));
gncOwnerCopy (&(fse->owner), &(se->owner));
return (GNCSearchCoreType *)se;
}

Loading…
Cancel
Save