static void params_form_changed_cb (GdauiBasicForm *form, G_GNUC_UNUSED GdaHolder *param, G_GNUC_UNUSED gboolean is_user_modif, QueryConsolePage *tconsole) { /* if all params are valid => authorize the execute button */ GtkWidget *button; button = g_object_get_data (G_OBJECT (tconsole->priv->params_popup), "exec"); gtk_widget_set_sensitive (button, gdaui_basic_form_is_valid (form)); }
/* * _gdaui_provider_spec_editor_is_valid * @spec: a #GdauiProviderSpecEditor widget * * Tells if the current information displayed in @spec respects the * provider's specifications (about non NULL values for example) * * Returns: */ gboolean _gdaui_provider_spec_editor_is_valid (GdauiProviderSpecEditor *spec) { g_return_val_if_fail (GDAUI_IS_PROVIDER_SPEC_EDITOR (spec), FALSE); g_return_val_if_fail (spec->priv, FALSE); switch (spec->priv->type) { case PROVIDER_FORM: g_assert (spec->priv->form); return gdaui_basic_form_is_valid (GDAUI_BASIC_FORM (spec->priv->form)); default: return FALSE; } }
/* * _gdaui_provider_auth_editor_is_valid * @auth: a #GdauiProviderAuthEditor widget * * Tells if the current information displayed in @auth reauthts the * provider's authifications (about non NULL values for example) * * Returns: */ gboolean _gdaui_provider_auth_editor_is_valid (GdauiProviderAuthEditor *auth) { g_return_val_if_fail (GDAUI_IS_PROVIDER_AUTH_EDITOR (auth), FALSE); g_return_val_if_fail (auth->priv, FALSE); if (!auth->priv->pinfo) return FALSE; if (auth->priv->auth_needed) { g_assert (auth->priv->auth_widget); return gdaui_basic_form_is_valid (GDAUI_BASIC_FORM (auth->priv->auth_widget)); } else return TRUE; }
static void sql_execute_clicked_cb (G_GNUC_UNUSED GtkButton *button, QueryConsolePage *tconsole) { gchar *sql; if (tconsole->priv->params_popup) gtk_widget_hide (tconsole->priv->params_popup); /* compute parameters if necessary */ if (tconsole->priv->params_compute_id > 0) { g_source_remove (tconsole->priv->params_compute_id); tconsole->priv->params_compute_id = 0; compute_params (tconsole); } if (tconsole->priv->params) { if (! gdaui_basic_form_is_valid (GDAUI_BASIC_FORM (tconsole->priv->params_form))) { GtkWidget *form, *cont; if (! tconsole->priv->params_popup) { tconsole->priv->params_popup = popup_container_new_with_func (popup_container_position_func); g_object_set_data (G_OBJECT (tconsole->priv->params_popup), "console", tconsole); GtkWidget *vbox, *label, *bbox, *button; gchar *str; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (tconsole->priv->params_popup), vbox); gtk_container_set_border_width (GTK_CONTAINER (tconsole->priv->params_popup), 10); label = gtk_label_new (""); str = g_strdup_printf ("<b>%s</b>:\n<small>%s</small>", _("Invalid variable's contents"), _("assign values to the following variables")); gtk_label_set_markup (GTK_LABEL (label), str); g_free (str); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); cont = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (vbox), cont, FALSE, FALSE, 10); g_object_set_data (G_OBJECT (tconsole->priv->params_popup), "cont", cont); bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 10); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_END); button = gtk_button_new_from_icon_name ("system-run-symbolic", GTK_ICON_SIZE_BUTTON); gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_hide), tconsole->priv->params_popup); g_signal_connect (button, "clicked", G_CALLBACK (sql_execute_clicked_cb), tconsole); gtk_widget_set_sensitive (button, FALSE); g_object_set_data (G_OBJECT (tconsole->priv->params_popup), "exec", button); button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_hide), tconsole->priv->params_popup); } else { form = g_object_get_data (G_OBJECT (tconsole->priv->params_popup), "form"); if (form) gtk_widget_destroy (form); } cont = g_object_get_data (G_OBJECT (tconsole->priv->params_popup), "cont"); form = gdaui_basic_form_new (tconsole->priv->params); g_object_set ((GObject*) form, "show-actions", TRUE, NULL); g_signal_connect (form, "holder-changed", G_CALLBACK (params_form_changed_cb), tconsole); g_signal_connect (form, "activated", G_CALLBACK (sql_execute_clicked_cb), tconsole); gtk_box_pack_start (GTK_BOX (cont), form, TRUE, TRUE, 0); g_object_set_data (G_OBJECT (tconsole->priv->params_popup), "form", form); gtk_widget_show_all (tconsole->priv->params_popup); return; } } sql = query_editor_get_all_text (tconsole->priv->editor); actually_execute (tconsole, sql, tconsole->priv->params, TRUE); g_free (sql); }