Fix Transient parent warnings in search dialogue

pull/390/head
Robert Fewell 8 years ago
parent e851f249fc
commit cd7a55a9cc

@ -716,6 +716,8 @@ attach_element (GtkWidget *element, GNCSearchWindow *sw, int row)
data = g_object_get_data (G_OBJECT (element), "data");
gnc_search_core_type_pass_parent (data->element, GTK_WINDOW(sw->dialog));
gtk_grid_attach (GTK_GRID (sw->criteria_table), element, 0, row, 1, 1);
gtk_widget_set_hexpand (element, TRUE);
gtk_widget_set_halign (element, GTK_ALIGN_FILL);
@ -774,6 +776,8 @@ combo_box_changed (GtkComboBox *combo_box, struct _crit_data *data)
FALSE, FALSE, 0);
}
gnc_search_core_type_pass_parent (data->element, GTK_WINDOW(data->dialog));
/* Make sure it's visible */
gtk_widget_show_all (data->container);

@ -39,6 +39,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
static gboolean gncs_validate (GNCSearchCoreType *fe);
static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
@ -54,6 +55,7 @@ struct _GNCSearchAccountPrivate
{
gboolean match_all;
GList * selected_accounts;
GtkWindow *parent;
};
#define _PRIVATE(o) \
@ -102,6 +104,7 @@ gnc_search_account_class_init (GNCSearchAccountClass *klass)
object_class->finalize = gnc_search_account_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->validate = gncs_validate;
gnc_search_core_type->get_widget = gncs_get_widget;
gnc_search_core_type->get_predicate = gncs_get_predicate;
@ -170,10 +173,11 @@ gncs_validate (GNCSearchCoreType *fe)
g_return_val_if_fail (IS_GNCSEARCH_ACCOUNT (fi), FALSE);
priv = _PRIVATE(fi);
if (priv->selected_accounts == NULL && fi->how )
{
valid = FALSE;
gnc_error_dialog (NULL, "%s", _("You have not selected any accounts"));
gnc_error_dialog (GTK_WINDOW(priv->parent), "%s", _("You have not selected any accounts"));
}
/* XXX */
@ -257,7 +261,7 @@ button_clicked (GtkButton *button, GNCSearchAccount *fi)
/* Create the dialog */
dialog =
GTK_DIALOG(gtk_dialog_new_with_buttons(_("Select the Accounts to Compare"),
NULL,
GTK_WINDOW(priv->parent),
0,
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_OK,
@ -356,3 +360,16 @@ static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe)
return (GNCSearchCoreType *)se;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchAccount *fi = (GNCSearchAccount *)fe;
GNCSearchAccountPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_ACCOUNT (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}

@ -35,6 +35,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
static gboolean gncs_validate (GNCSearchCoreType *fe);
static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
@ -48,6 +49,7 @@ typedef struct _GNCSearchBooleanPrivate GNCSearchBooleanPrivate;
struct _GNCSearchBooleanPrivate
{
GtkWindow *parent;
gpointer dummy;
};
@ -96,6 +98,7 @@ gnc_search_boolean_class_init (GNCSearchBooleanClass *klass)
object_class->finalize = gnc_search_boolean_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->validate = gncs_validate;
gnc_search_core_type->get_widget = gncs_get_widget;
gnc_search_core_type->get_predicate = gncs_get_predicate;
@ -142,6 +145,19 @@ gnc_search_boolean_set_value (GNCSearchBoolean *fi, gboolean value)
fi->value = value;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchBoolean *fi = (GNCSearchBoolean *)fe;
GNCSearchBooleanPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_BOOLEAN (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{

@ -149,6 +149,12 @@ gnc_search_core_type_grab_focus (GNCSearchCoreType *fe)
GNC_SEARCH_CORE_TYPE_GET_CLASS (fe)->grab_focus (fe);
}
void
gnc_search_core_type_pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNC_SEARCH_CORE_TYPE_GET_CLASS (fe)->pass_parent (fe, parent);
}
gboolean
gnc_search_core_type_validate (GNCSearchCoreType *fe)
{

@ -46,6 +46,7 @@ typedef struct
/* virtual methods */
void (*grab_focus) (GNCSearchCoreType *fe);
void (*editable_enters) (GNCSearchCoreType *fe);
void (*pass_parent) (GNCSearchCoreType *fe, gpointer parent);
gboolean (*validate) (GNCSearchCoreType *fe);
GNCSearchCoreType * (*clone) (GNCSearchCoreType *fe);
GtkWidget * (*get_widget) (GNCSearchCoreType *);
@ -64,6 +65,7 @@ GNCSearchCoreType * gnc_search_core_type_new_type_name (const char *type);
/* methods */
void gnc_search_core_type_grab_focus (GNCSearchCoreType *fe);
void gnc_search_core_type_editable_enters (GNCSearchCoreType *fe);
void gnc_search_core_type_pass_parent (GNCSearchCoreType *fe, gpointer parent);
gboolean gnc_search_core_type_validate (GNCSearchCoreType *fe);
GNCSearchCoreType * gnc_search_core_type_clone (GNCSearchCoreType *fe);
GtkWidget * gnc_search_core_type_get_widget (GNCSearchCoreType *fe);

@ -37,6 +37,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static void editable_enters (GNCSearchCoreType *fe);
static void grab_focus (GNCSearchCoreType *fe);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
@ -53,6 +54,7 @@ typedef struct _GNCSearchDatePrivate GNCSearchDatePrivate;
struct _GNCSearchDatePrivate
{
GtkWidget *entry;
GtkWindow *parent;
};
#define _PRIVATE(o) \
@ -100,6 +102,7 @@ gnc_search_date_class_init (GNCSearchDateClass *klass)
object_class->finalize = gnc_search_date_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->editable_enters = editable_enters;
gnc_search_core_type->grab_focus = grab_focus;
gnc_search_core_type->validate = gncs_validate;
@ -164,6 +167,19 @@ gnc_search_date_set_how (GNCSearchDate *fi, QofQueryCompare how)
fi->how = how;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchDate *fi = (GNCSearchDate *)fe;
GNCSearchDatePrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_DATE (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{

@ -36,6 +36,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static void editable_enters (GNCSearchCoreType *fe);
static void grab_focus (GNCSearchCoreType *fe);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
@ -53,6 +54,7 @@ struct _GNCSearchDoublePrivate
{
GtkWidget * entry;
GNCAmountEdit *gae;
GtkWindow *parent;
};
#define _PRIVATE(o) \
@ -100,6 +102,7 @@ gnc_search_double_class_init (GNCSearchDoubleClass *klass)
object_class->finalize = gnc_search_double_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->editable_enters = editable_enters;
gnc_search_core_type->grab_focus = grab_focus;
gnc_search_core_type->validate = gncs_validate;
@ -156,6 +159,19 @@ gnc_search_double_set_how (GNCSearchDouble *fi, QofQueryCompare how)
fi->how = how;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchDouble *fi = (GNCSearchDouble *)fe;
GNCSearchDoublePrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_DOUBLE (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{

@ -36,6 +36,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static void editable_enters (GNCSearchCoreType *fe);
static void grab_focus (GNCSearchCoreType *fe);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
@ -54,6 +55,7 @@ struct _GNCSearchInt64Private
{
GtkWidget *entry;
GNCAmountEdit *gae;
GtkWindow *parent;
};
#define _PRIVATE(o) \
@ -101,6 +103,7 @@ gnc_search_int64_class_init (GNCSearchInt64Class *klass)
object_class->finalize = gnc_search_int64_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->editable_enters = editable_enters;
gnc_search_core_type->grab_focus = grab_focus;
gnc_search_core_type->validate = gncs_validate;
@ -157,6 +160,19 @@ gnc_search_int64_set_how (GNCSearchInt64 *fi, QofQueryCompare how)
fi->how = how;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchInt64 *fi = (GNCSearchInt64 *)fe;
GNCSearchInt64Private *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_INT64 (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{

@ -36,6 +36,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static void editable_enters (GNCSearchCoreType *fe);
static void grab_focus (GNCSearchCoreType *fe);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
@ -54,6 +55,7 @@ struct _GNCSearchNumericPrivate
gboolean is_debcred;
GtkWidget * entry;
GNCAmountEdit *gae;
GtkWindow *parent;
};
#define _PRIVATE(o) \
@ -101,6 +103,7 @@ gnc_search_numeric_class_init (GNCSearchNumericClass *klass)
object_class->finalize = gnc_search_numeric_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->editable_enters = editable_enters;
gnc_search_core_type->grab_focus = grab_focus;
gnc_search_core_type->validate = gncs_validate;
@ -186,6 +189,19 @@ gnc_search_numeric_set_option (GNCSearchNumeric *fi, QofNumericMatch option)
fi->option = option;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchNumeric *fi = (GNCSearchNumeric *)fe;
GNCSearchNumericPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_NUMERIC (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{

@ -36,6 +36,7 @@
#define d(x)
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
static gboolean gncs_validate (GNCSearchCoreType *fe);
static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
@ -49,6 +50,7 @@ typedef struct _GNCSearchReconciledPrivate GNCSearchReconciledPrivate;
struct _GNCSearchReconciledPrivate
{
GtkWindow *parent;
gpointer dummy;
};
@ -97,6 +99,7 @@ gnc_search_reconciled_class_init (GNCSearchReconciledClass *klass)
object_class->finalize = gnc_search_reconciled_finalize;
/* override methods */
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->validate = gncs_validate;
gnc_search_core_type->get_widget = gncs_get_widget;
gnc_search_core_type->get_predicate = gncs_get_predicate;
@ -152,6 +155,19 @@ gnc_search_reconciled_set_how (GNCSearchReconciled *fi, QofCharMatch how)
fi->how = how;
}
static void
pass_parent (GNCSearchCoreType *fe, gpointer parent)
{
GNCSearchReconciled *fi = (GNCSearchReconciled *)fe;
GNCSearchReconciledPrivate *priv;
g_return_if_fail (fi);
g_return_if_fail (IS_GNCSEARCH_RECONCILED (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static gboolean
gncs_validate (GNCSearchCoreType *fe)
{

@ -38,6 +38,7 @@
#define d(x)
static void editable_enters (GNCSearchCoreType *fe);
static void pass_parent (GNCSearchCoreType *fe, gpointer parent);
static void grab_focus (GNCSearchCoreType *fe);
static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe);
static gboolean gncs_validate (GNCSearchCoreType *fe);
@ -53,6 +54,7 @@ typedef struct _GNCSearchStringPrivate GNCSearchStringPrivate;
struct _GNCSearchStringPrivate
{
GtkWidget *entry;
GtkWindow *parent;
};
#define _PRIVATE(o) \
@ -101,6 +103,7 @@ gnc_search_string_class_init (GNCSearchStringClass *klass)
/* override methods */
gnc_search_core_type->editable_enters = editable_enters;
gnc_search_core_type->pass_parent = pass_parent;
gnc_search_core_type->grab_focus = grab_focus;
gnc_search_core_type->validate = gncs_validate;
gnc_search_core_type->get_widget = gncs_get_widget;
@ -175,15 +178,18 @@ 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 (IS_GNCSEARCH_STRING (fi), FALSE);
priv = _PRIVATE(fi);
if (!fi->value || *(fi->value) == '\0')
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (NULL,
dialog = gtk_message_dialog_new (GTK_WINDOW(priv->parent),
GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_OK,
@ -221,7 +227,7 @@ gncs_validate (GNCSearchCoreType *fe)
fi->value, regmsg);
g_free (regmsg);
dialog = gtk_message_dialog_new (NULL,
dialog = gtk_message_dialog_new (GTK_WINDOW(priv->parent),
GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_OK,
@ -301,6 +307,19 @@ editable_enters (GNCSearchCoreType *fe)
gtk_entry_set_activates_default(GTK_ENTRY (priv->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 (IS_GNCSEARCH_STRING (fi));
priv = _PRIVATE(fi);
priv->parent = GTK_WINDOW(parent);
}
static GtkWidget *
gncs_get_widget (GNCSearchCoreType *fe)
{

Loading…
Cancel
Save