[libgda] UI corrections when displaying invalid values in grid and form
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] UI corrections when displaying invalid values in grid and form
- Date: Sat, 3 Jul 2010 18:03:26 +0000 (UTC)
commit 0d2e459c3dea62626a35db9796f62c02e89092c4
Author: Vivien Malerba <malerba gnome-db org>
Date: Sat Jul 3 15:56:57 2010 +0200
UI corrections when displaying invalid values in grid and form
.../data-entries/gdaui-data-cell-renderer-bin.c | 2 +-
.../gdaui-data-cell-renderer-boolean.c | 2 +-
.../gdaui-data-cell-renderer-textual.c | 14 +++++---------
.../plugins/gdaui-data-cell-renderer-password.c | 4 +---
.../plugins/gdaui-data-cell-renderer-pict.c | 2 +-
libgda-ui/gdaui-basic-form.c | 15 +++++++++------
libgda-ui/gdaui-data-proxy-info.c | 2 +-
libgda-ui/gdaui-raw-form.c | 5 -----
libgda-ui/gdaui-raw-grid.c | 2 +-
testing/gdaui-test-errors.c | 2 +-
10 files changed, 21 insertions(+), 29 deletions(-)
---
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c
index c0497a0..1c1a514 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-bin.c
@@ -272,7 +272,6 @@ gdaui_data_cell_renderer_bin_set_property (GObject *object,
switch (param_id) {
case PROP_VALUE:
/* Because we don't have a copy of the value, we MUST NOT free it! */
- cell->priv->invalid = FALSE;
if (value) {
GValue *gval = g_value_get_boxed (value);
if (gval && (G_VALUE_TYPE (gval) != GDA_TYPE_NULL))
@@ -290,6 +289,7 @@ gdaui_data_cell_renderer_bin_set_property (GObject *object,
}
break;
case PROP_VALUE_ATTRIBUTES:
+ cell->priv->invalid = g_value_get_flags (value) & GDA_VALUE_ATTR_DATA_NON_VALID ? TRUE : FALSE;
break;
case PROP_EDITABLE:
cell->priv->editable = g_value_get_boolean (value);
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c
index 39a922c..ad0f03e 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-boolean.c
@@ -261,7 +261,6 @@ gdaui_data_cell_renderer_boolean_set_property (GObject *object,
case PROP_VALUE:
/* Because we don't have a copy of the value, we MUST NOT free it! */
cell->priv->value = NULL;
- cell->priv->invalid = FALSE;
if (value) {
GValue *gval = g_value_get_boxed (value);
if (gval && !gda_value_is_null (gval)) {
@@ -296,6 +295,7 @@ gdaui_data_cell_renderer_boolean_set_property (GObject *object,
g_object_notify (object, "value");
break;
case PROP_VALUE_ATTRIBUTES:
+ cell->priv->invalid = g_value_get_flags (value) & GDA_VALUE_ATTR_DATA_NON_VALID ? TRUE : FALSE;
break;
case PROP_EDITABLE:
cell->priv->editable = g_value_get_boolean (value);
diff --git a/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c b/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c
index ddcf74a..db37f07 100644
--- a/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c
+++ b/libgda-ui/data-entries/gdaui-data-cell-renderer-textual.c
@@ -420,7 +420,6 @@ gdaui_data_cell_renderer_textual_set_property (GObject *object,
}
}
- datacell->priv->invalid = FALSE;
if (value) {
GValue *gval = g_value_get_pointer (value);
if (gval && !gda_value_is_null (gval)) {
@@ -492,22 +491,19 @@ gdaui_data_cell_renderer_textual_set_property (GObject *object,
"xalign", xalign, NULL);
}
else if (gval)
- g_object_set (G_OBJECT (object), "text", "", "xalign", xalign, NULL);
+ g_object_set (G_OBJECT (object), "text", "", NULL);
else {
datacell->priv->invalid = TRUE;
- g_object_set (G_OBJECT (object), "text", "", "xalign", xalign, NULL);
+ g_object_set (G_OBJECT (object), "text", "", NULL);
}
}
else {
datacell->priv->invalid = TRUE;
- g_object_set (G_OBJECT (object), "text", "", "xalign", xalign, NULL);
+ g_object_set (G_OBJECT (object), "text", "", NULL);
}
-
- g_object_notify (object, "value");
break;
case PROP_VALUE_ATTRIBUTES:
- /*if (g_value_get_flags (value) & GDA_VALUE_ATTR_IS_DEFAULT)
- g_object_set (G_OBJECT (object), "text", "", NULL);*/
+ datacell->priv->invalid = g_value_get_flags (value) & GDA_VALUE_ATTR_DATA_NON_VALID ? TRUE : FALSE;
break;
case PROP_TO_BE_DELETED:
datacell->priv->to_be_deleted = g_value_get_boolean (value);
@@ -714,7 +710,7 @@ gdaui_data_cell_renderer_textual_start_editing (GtkCellRenderer *cell,
g_object_set (G_OBJECT (entry), "is-cell-renderer", TRUE, "actions", FALSE, NULL);
- if (OPTIMIZE){
+ if (OPTIMIZE) {
GValue *orig;
gchar *text;
diff --git a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c
index bc3808b..26b8a13 100644
--- a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c
+++ b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-password.c
@@ -262,7 +262,6 @@ gdaui_data_cell_renderer_password_set_property (GObject *object,
datacell->priv->value = NULL;
}
- datacell->priv->invalid = FALSE;
if (value) {
GValue *gval = g_value_get_pointer (value);
if (gval && !gda_value_is_null (gval)) {
@@ -313,8 +312,7 @@ gdaui_data_cell_renderer_password_set_property (GObject *object,
g_object_notify (object, "value");
break;
case PROP_VALUE_ATTRIBUTES:
- /*if (g_value_get_flags (value) & GDA_VALUE_ATTR_IS_DEFAULT)
- g_object_set (G_OBJECT (object), "text", "", NULL);*/
+ datacell->priv->invalid = g_value_get_flags (value) & GDA_VALUE_ATTR_DATA_NON_VALID ? TRUE : FALSE;
break;
case PROP_TO_BE_DELETED:
datacell->priv->to_be_deleted = g_value_get_boolean (value);
diff --git a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c
index eb1c5fa..d3fa4a0 100644
--- a/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c
+++ b/libgda-ui/data-entries/plugins/gdaui-data-cell-renderer-pict.c
@@ -272,7 +272,6 @@ gdaui_data_cell_renderer_pict_set_property (GObject *object,
/* Because we don't have a copy of the value, we MUST NOT free it! */
cell->priv->value = NULL;
g_object_set (G_OBJECT (cell), "pixbuf", NULL, "stock-id", NULL, NULL);
- cell->priv->invalid = FALSE;
if (value) {
GValue *gval = g_value_get_boxed (value);
GdkPixbuf *pixbuf = NULL;
@@ -325,6 +324,7 @@ gdaui_data_cell_renderer_pict_set_property (GObject *object,
g_object_notify (object, "value");
break;
case PROP_VALUE_ATTRIBUTES:
+ cell->priv->invalid = g_value_get_flags (value) & GDA_VALUE_ATTR_DATA_NON_VALID ? TRUE : FALSE;
break;
case PROP_EDITABLE:
cell->priv->editable = g_value_get_boolean (value);
diff --git a/libgda-ui/gdaui-basic-form.c b/libgda-ui/gdaui-basic-form.c
index 13e535b..57bda2e 100644
--- a/libgda-ui/gdaui-basic-form.c
+++ b/libgda-ui/gdaui-basic-form.c
@@ -730,11 +730,8 @@ create_entry_widget (SingleEntry *sentry)
/* set current value */
if (gda_holder_is_valid (param))
gdaui_data_entry_set_value (GDAUI_DATA_ENTRY (entry), val);
- else {
- GValue value;
- memset (&value, 0, sizeof (GValue));
- gdaui_data_entry_set_value (GDAUI_DATA_ENTRY (entry), &value);
- }
+ else
+ gdaui_data_entry_set_value (GDAUI_DATA_ENTRY (entry), NULL);
if (!nnul ||
(nnul && value &&
@@ -1402,11 +1399,17 @@ parameter_changed_cb (GdaHolder *param, SingleEntry *sentry)
sentry->entry_contents_modified_id);
g_signal_handler_unblock (G_OBJECT (entry),
sentry->entry_contents_activated_id);
- }
+ }
+
+ gdaui_entry_shell_set_unknown (GDAUI_ENTRY_SHELL (entry),
+ !gda_holder_is_valid (param));
g_signal_emit (G_OBJECT (sentry->form), gdaui_basic_form_signals[HOLDER_CHANGED], 0,
param, FALSE);
}
+ else
+ gdaui_entry_shell_set_unknown (GDAUI_ENTRY_SHELL (entry),
+ !gda_holder_is_valid (param));
}
/**
diff --git a/libgda-ui/gdaui-data-proxy-info.c b/libgda-ui/gdaui-data-proxy-info.c
index 74f7b03..1a444cd 100644
--- a/libgda-ui/gdaui-data-proxy-info.c
+++ b/libgda-ui/gdaui-data-proxy-info.c
@@ -446,11 +446,11 @@ modif_buttons_make (GdauiDataProxyInfo *info)
gtk_toolbar_set_icon_size (GTK_TOOLBAR (info->priv->buttons_bar), GTK_ICON_SIZE_SMALL_TOOLBAR);
g_object_set (G_OBJECT (info->priv->buttons_bar), "toolbar-style", GTK_TOOLBAR_ICONS, NULL);
gtk_widget_set_name (info->priv->buttons_bar, "gdaui-data-proxy-info");
- gtk_toolbar_set_tooltips (GTK_TOOLBAR (info->priv->buttons_bar), TRUE);
gtk_box_pack_start (GTK_BOX (info), info->priv->buttons_bar, TRUE, TRUE, 0);
}
else {
info->priv->buttons_bar = gtk_toolbar_new ();
+ gtk_box_pack_start (GTK_BOX (info), info->priv->buttons_bar, TRUE, TRUE, 0);
}
gtk_widget_show (info->priv->buttons_bar);
diff --git a/libgda-ui/gdaui-raw-form.c b/libgda-ui/gdaui-raw-form.c
index 263a358..b8f70b0 100644
--- a/libgda-ui/gdaui-raw-form.c
+++ b/libgda-ui/gdaui-raw-form.c
@@ -628,11 +628,6 @@ action_new_cb (GtkAction *action, GdauiRawForm *form)
}
else
g_object_unref (param);
-
- GtkWidget *entry;
- entry = gdaui_basic_form_get_entry_widget (GDAUI_BASIC_FORM (form), (GdaHolder*) list->data);
- if (entry)
- gdaui_entry_shell_set_unknown ((GdauiEntryShell*) entry, FALSE);
}
g_signal_handlers_unblock_by_func (form, G_CALLBACK (form_holder_changed_cb), NULL);
diff --git a/libgda-ui/gdaui-raw-grid.c b/libgda-ui/gdaui-raw-grid.c
index 9885a76..3977604 100644
--- a/libgda-ui/gdaui-raw-grid.c
+++ b/libgda-ui/gdaui-raw-grid.c
@@ -1030,8 +1030,8 @@ cell_value_set_attributes (GtkTreeViewColumn *tree_column,
col, &value,
offset + col, &attributes, -1);
g_object_set (G_OBJECT (cell),
- "value", value,
"value-attributes", attributes,
+ "value", value,
"editable",
!cdata->data_locked && !(attributes & GDA_VALUE_ATTR_NO_MODIF),
"cell-background", GDAUI_COLOR_NORMAL_MODIF,
diff --git a/testing/gdaui-test-errors.c b/testing/gdaui-test-errors.c
index 65939eb..e1ccf5e 100644
--- a/testing/gdaui-test-errors.c
+++ b/testing/gdaui-test-errors.c
@@ -31,7 +31,7 @@ main (int argc, char *argv[])
/* main form to list customers */
form = gdaui_form_new (model);
- gtk_box_pack_start (GTK_BOX (vbox), form, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), form, FALSE, FALSE, 0);
g_object_set (G_OBJECT (form),
"info-flags",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]