Modificados VnGrid y DbIterator para mejorar el comportamiento de las inserciones

This commit is contained in:
Alejandro T. Colombini Gómez 2014-01-10 15:08:52 +01:00
parent 2d850f41c8
commit e5e83eaa91
17 changed files with 193 additions and 142 deletions

View File

@ -1,8 +1,8 @@
# Definition of the install directories
# Libraries
if ENABLE_INSTALL
hedera_libdir = $(libdir)/$(PACKAGE)
hedera_datadir = $(datadir)/$(PACKAGE)
hedera_libdir = $(pkglibdir)
hedera_datadir = $(pkgdatadir)
else
hedera_libdir = $(abs_top_builddir)
hedera_datadir = $(abs_top_srcdir)
@ -30,7 +30,7 @@ pg_libdir = $(plugin_libdir)/pg
hedera_bindir = $(bindir)
# Headers and development files
hedera_includedir = $(includedir)/$(PACKAGE)
hedera_includedir = $(pkgincludedir)
gvn_includedir = $(hedera_includedir)/gvn
sql_includedir = $(hedera_includedir)/sql

View File

@ -24,7 +24,7 @@ Configuration list=1:Default:build%%%1:Debug:build%%%1:Uninstalled:build%%%1:Opt
Selected Configuration=Debug
BuildArgs/Default=
BuildArgs/Debug=--enable-debug
BuildArgs/Uninstalled=UNINSTALLED_DIR=~/hedera --enable-uninstalled
BuildArgs/Uninstalled=UNINSTALLED_DIR=~/hedera
BuildArgs/Optimized=
BuildArgs/Profiling=

View File

@ -64,20 +64,11 @@ AC_SUBST([[+NameCLower+]_datadir], ['$(datadir)/hedera/module'])
LT_INIT
AC_ARG_VAR([UNINSTALLED_DIR], [the directory of the uninstalled hedera project])
dnl This requires the user to specify the UNINSTALLED_DIR variable, with the
dnl path to the directory of the unsinstalled hedera project.
AC_MSG_CHECKING([use uninstalled Hedera])
AC_ARG_ENABLE([uninstalled],
[AS_HELP_STRING([--enable-uninstalled],
[Enable the use of uninstalled Hedera located in the UNINSTALLED_DIR
directory, which must be defined [default = no]])],
[UNINSTALLED="$enableval"],
[UNINSTALLED=no])
AC_MSG_RESULT([$UNINSTALLED])
: ${UNINSTALLED_DIR=''}
PKG_PROG_PKG_CONFIG
if test x"$UNINSTALLED" = x"yes"; then
if test $UNINSTALLED_DIR; then
PKG_CHECK_MODULES([+NameCUpper+], [gtk+-3.0])
[+NameCUpper+]_CFLAGS+=-I$UNINSTALLED_DIR
[+NameCUpper+]_LIBS+=$UNINSTALLED_DIR/build/main/libhedera.la

View File

@ -327,7 +327,7 @@ void db_iterator_set_mode (DbIterator * obj, DbIteratorMode mode)
/**
* db_iterator_get_iter:
* @obj: a #DbIterator
* @iter: (allow-none): return location for selected row iter, or %NULL.
* @iter: (allow-none) (out): return location for selected row iter, or %NULL.
*
* Gets the currently selected iter.
*
@ -361,7 +361,12 @@ void db_iterator_move_iter (DbIterator * obj, DbIter * iter)
return;
if (obj->mode != DB_ITERATOR_MODE_ON_DEMAND)
{
if (db_model_get_row_operations (obj->model, &obj->iter) == DB_MODEL_ROW_OP_INSERT)
db_model_reverse_operations (obj->model);
db_model_perform_operations (obj->model, FALSE);
}
db_iterator_set_iter (obj, iter);
}
@ -493,9 +498,14 @@ void db_iterator_insert (DbIterator * obj)
g_return_if_fail (DB_IS_ITERATOR (obj));
g_return_if_fail (obj->model);
if (obj->mode != DB_ITERATOR_MODE_ON_DEMAND)
{
if (db_model_get_row_operations (obj->model, &obj->iter) == DB_MODEL_ROW_OP_INSERT)
return;
db_model_perform_operations (obj->model, FALSE);
}
if (db_model_insert (obj->model, &iter))
db_iterator_set_iter (obj, &iter);

View File

@ -2996,7 +2996,7 @@ gint db_model_get_path (DbModel * obj, DbIter * iter)
/**
* db_model_get_iter:
* @obj: a #DbModel
* @iter: (out): an unitialized #DbIter
* @iter: (out): an uninitialized #DbIter
* @path: the number of the row being accessed
*
* Sets @iter pointing to the row of @obj specified by @path.

View File

@ -121,7 +121,7 @@ DbModelStatus;
/**
* DbModelMode:
* @DB_MODEL_MODE_ON_CHANGE: every change made in the model will be inmediatelly
* @DB_MODEL_MODE_ON_CHANGE: every change made in the model will be immediatelly
* sent to the database
* @DB_MODEL_MODE_ON_DEMAND: nothing will be sent to the database since demanded
* by calling db_model_perform_operations()

8
debian/control vendored
View File

@ -20,7 +20,7 @@ Description: Database access and widget provider library (core)
.
The library also has a modular system to add and remove the different widgets
in run time. And includes Glade integration, to design the programs in an
easiest, graphical way.
easy graphical way.
.
This package contains the core of the library. It also provides the plugins to
connect a PostgreSQL or MySQL database.
@ -37,7 +37,7 @@ Description: Database access and widget provider library (runtime)
.
The library also has a modular system to add and remove the different widgets
in run time. And includes Glade integration, to design the programs in an
easiest, graphical way.
easy graphical way.
.
This package contains the executable and data files.
@ -55,7 +55,7 @@ Description: Database access and widget provider library (development)
.
The library also has a modular system to add and remove the different widgets
in run time. And includes Glade integration, to design the programs in an
easiest, graphical way.
easy graphical way.
.
This package contains development files to compile C and Vala programs that
use the hedera library. It also contains the documentation and introspection
@ -72,6 +72,6 @@ Description: Database access and widget provider library (debug)
.
The library also has a modular system to add and remove the different widgets
in run time. And includes Glade integration, to design the programs in an
easiest, graphical way.
easy graphical way.
.
This package contains the debugging symbols for hedera.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<!-- interface-requires vn 0.0 -->
<!-- interface-requires gtk+ 3.0 -->
<!-- interface-local-resource-path ../image -->
<object class="GtkActionGroup" id="actions">
<child>
@ -217,13 +217,14 @@
<object class="VnHandler" id="handler">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<property name="layout_style">end</property>
<property name="show_flags">VN_HANDLER_SHOW_REFRESH | VN_HANDLER_SHOW_UNDO | VN_HANDLER_SHOW_SAVE | VN_HANDLER_SHOW_REMOVE | VN_HANDLER_SHOW_ADD</property>
<property name="show_flags">VN_HANDLER_SHOW_REFRESH | VN_HANDLER_SHOW_UNDO | VN_HANDLER_SHOW_SAVE | VN_HANDLER_SHOW_REMOVE | VN_HANDLER_SHOW_ADD | VN_HANDLER_SHOW_SCROLL</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
</object>

View File

@ -201,8 +201,7 @@ static void vn_consulter_open (VnConsulter * obj)
,obj->file
,"/*pg*/ SELECT id1, id2, name, ok, date, number, floating, image "
"FROM prueben"
,"/*pg*/ SELECT id1, id2, floating "
"FROM prueben"
,"/*pg*/ SELECT id1, id2, floating FROM prueben LIMIT 1"
,NULL
};

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-31 13:28+0100\n"
"POT-Creation-Date: 2014-01-10 15:00+0100\n"
"PO-Revision-Date: 2013-06-04 13:38+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Catalan\n"
@ -132,7 +132,7 @@ msgstr ""
msgid "The master GvnParam of this parameter"
msgstr ""
#: ../gvn/gvn-param.c:457 ../db/db-iterator.c:987
#: ../gvn/gvn-param.c:457 ../db/db-iterator.c:997
msgid "Mode"
msgstr ""
@ -226,16 +226,16 @@ msgstr ""
msgid "Can't allocate the needed memory"
msgstr ""
#: ../db/db-iterator.c:988
#: ../db/db-iterator.c:998
msgid "The mode in which the iterator is working"
msgstr ""
#: ../db/db-iterator.c:995
#: ../db/db-iterator.c:1005
#, fuzzy
msgid "Remember selection"
msgstr "Recordar"
#: ../db/db-iterator.c:996
#: ../db/db-iterator.c:1006
msgid "Wether to rememeber the selection when model is refreshed"
msgstr ""
@ -342,7 +342,7 @@ msgstr ""
msgid "A column to apply the operations over it"
msgstr ""
#: ../db/db-param.c:251 ../vn/vn-grid.c:470 ../vn/vn-field.c:532
#: ../db/db-param.c:251 ../vn/vn-grid.c:483 ../vn/vn-field.c:532
msgid "Iterator"
msgstr ""
@ -566,7 +566,7 @@ msgstr "Funció vn_model_set_sort_func no implementada"
msgid "Function vn_model_set_default_sort_func not implemented"
msgstr "Funció vn_model_set_default_sort_func no implementada"
#: ../vn/vn-grid.c:471
#: ../vn/vn-grid.c:484
msgid "The iterator used by VnGrid"
msgstr ""
@ -705,28 +705,28 @@ msgid "Whether the field value can be of type GVN_TYPE_NULL"
msgstr ""
#: ../vn/field/vn-entry.c:153 ../vn/field/vn-spin.c:172
#: ../vn/column/vn-column-entry.c:119 ../vn/column/vn-column-spin.c:179
#: ../vn/column/vn-column-entry.c:119 ../vn/column/vn-column-spin.c:183
msgid "Digits"
msgstr ""
#: ../vn/field/vn-entry.c:154 ../vn/field/vn-spin.c:173
#: ../vn/column/vn-column-entry.c:120 ../vn/column/vn-column-spin.c:180
#: ../vn/column/vn-column-entry.c:120 ../vn/column/vn-column-spin.c:184
msgid "The number of decimal places to display."
msgstr ""
#: ../vn/field/vn-combo.c:286 ../vn/column/vn-column-combo.c:361
#: ../vn/field/vn-combo.c:286 ../vn/column/vn-column-combo.c:329
msgid "Index column"
msgstr ""
#: ../vn/field/vn-combo.c:287 ../vn/column/vn-column-combo.c:362
#: ../vn/field/vn-combo.c:287 ../vn/column/vn-column-combo.c:330
msgid "The column index of the model"
msgstr ""
#: ../vn/field/vn-combo.c:293 ../vn/column/vn-column-combo.c:368
#: ../vn/field/vn-combo.c:293 ../vn/column/vn-column-combo.c:336
msgid "Show column"
msgstr ""
#: ../vn/field/vn-combo.c:294 ../vn/column/vn-column-combo.c:369
#: ../vn/field/vn-combo.c:294 ../vn/column/vn-column-combo.c:337
msgid "The column of the model shown by combo"
msgstr ""
@ -805,54 +805,46 @@ msgstr ""
msgid "Order in which the tab selects the columns for edition"
msgstr ""
#: ../vn/column/vn-column-spin.c:171
#: ../vn/column/vn-column-spin.c:175
msgid "Climb rate"
msgstr ""
#: ../vn/column/vn-column-spin.c:172
#: ../vn/column/vn-column-spin.c:176
msgid "The acceleration rate when you hold down a button."
msgstr ""
#: ../vn/column/vn-column-spin.c:187
#: ../vn/column/vn-column-spin.c:191
msgid "Minimum value"
msgstr ""
#: ../vn/column/vn-column-spin.c:188
#: ../vn/column/vn-column-spin.c:192
msgid "The minimum value of the adjustment."
msgstr ""
#: ../vn/column/vn-column-spin.c:195
#: ../vn/column/vn-column-spin.c:199
msgid "Maximum value"
msgstr ""
#: ../vn/column/vn-column-spin.c:196
#: ../vn/column/vn-column-spin.c:200
msgid "The maximum value of the adjustment."
msgstr ""
#: ../vn/column/vn-column-spin.c:203
#: ../vn/column/vn-column-spin.c:207
msgid "Step Increment"
msgstr ""
#: ../vn/column/vn-column-spin.c:204
#: ../vn/column/vn-column-spin.c:208
msgid "The step increment of the adjustment"
msgstr ""
#: ../vn/column/vn-column-combo.c:375
#: ../vn/column/vn-column-combo.c:343
msgid "Sort column"
msgstr ""
#: ../vn/column/vn-column-combo.c:376
#: ../vn/column/vn-column-combo.c:344
msgid "The field number of the Grid model used to sort the column"
msgstr ""
#: ../vn/column/vn-column-combo.c:382
msgid "Filter field"
msgstr ""
#: ../vn/column/vn-column-combo.c:383
msgid "Name of the field to be used as query filter by the model"
msgstr ""
#: ../vn/column/vn-column-image.c:502
msgid "Base path from the host where the images will be downloaded"
msgstr ""
@ -1121,10 +1113,10 @@ msgstr ""
msgid "Immediate changes"
msgstr ""
#: ../module/src/vn-consulter.c:216
#: ../module/src/vn-consulter.c:215
msgid "Type or select a query"
msgstr ""
#: ../module/src/vn-consulter.c:218
#: ../module/src/vn-consulter.c:217
msgid "Message"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-31 13:28+0100\n"
"POT-Creation-Date: 2014-01-10 15:00+0100\n"
"PO-Revision-Date: 2013-06-04 13:36+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Spanish\n"
@ -134,7 +134,7 @@ msgstr "Maestro"
msgid "The master GvnParam of this parameter"
msgstr "El GvnParam maestro de este parámetro"
#: ../gvn/gvn-param.c:457 ../db/db-iterator.c:987
#: ../gvn/gvn-param.c:457 ../db/db-iterator.c:997
msgid "Mode"
msgstr "Modo"
@ -228,15 +228,15 @@ msgstr "Una cadena SQL arbitraria"
msgid "Can't allocate the needed memory"
msgstr "No es posible asignar la memoria necesaria"
#: ../db/db-iterator.c:988
#: ../db/db-iterator.c:998
msgid "The mode in which the iterator is working"
msgstr "El modo en el que está trabajando el Iterator"
#: ../db/db-iterator.c:995
#: ../db/db-iterator.c:1005
msgid "Remember selection"
msgstr "Recordar fila seleccionada"
#: ../db/db-iterator.c:996
#: ../db/db-iterator.c:1006
msgid "Wether to rememeber the selection when model is refreshed"
msgstr ""
"Si se recordará o no la fila seleccionado cuando se refresque el modelo"
@ -350,7 +350,7 @@ msgstr "Columna"
msgid "A column to apply the operations over it"
msgstr "Una columna sobre la que se aplicarán las operaciones"
#: ../db/db-param.c:251 ../vn/vn-grid.c:470 ../vn/vn-field.c:532
#: ../db/db-param.c:251 ../vn/vn-grid.c:483 ../vn/vn-field.c:532
msgid "Iterator"
msgstr "Iterator"
@ -578,7 +578,7 @@ msgstr "Función vn_model_set_sort_func no implementada"
msgid "Function vn_model_set_default_sort_func not implemented"
msgstr "Función vn_model_set_default_sort_func no implementada"
#: ../vn/vn-grid.c:471
#: ../vn/vn-grid.c:484
msgid "The iterator used by VnGrid"
msgstr "El Iterator empleado por VnGrid"
@ -717,28 +717,28 @@ msgid "Whether the field value can be of type GVN_TYPE_NULL"
msgstr "Si el campo puede ser del tipo GVN_TYPE_NULL"
#: ../vn/field/vn-entry.c:153 ../vn/field/vn-spin.c:172
#: ../vn/column/vn-column-entry.c:119 ../vn/column/vn-column-spin.c:179
#: ../vn/column/vn-column-entry.c:119 ../vn/column/vn-column-spin.c:183
msgid "Digits"
msgstr "Dígitos"
#: ../vn/field/vn-entry.c:154 ../vn/field/vn-spin.c:173
#: ../vn/column/vn-column-entry.c:120 ../vn/column/vn-column-spin.c:180
#: ../vn/column/vn-column-entry.c:120 ../vn/column/vn-column-spin.c:184
msgid "The number of decimal places to display."
msgstr "El número de posiciones decimales que se muestran"
#: ../vn/field/vn-combo.c:286 ../vn/column/vn-column-combo.c:361
#: ../vn/field/vn-combo.c:286 ../vn/column/vn-column-combo.c:329
msgid "Index column"
msgstr "Columna índice"
#: ../vn/field/vn-combo.c:287 ../vn/column/vn-column-combo.c:362
#: ../vn/field/vn-combo.c:287 ../vn/column/vn-column-combo.c:330
msgid "The column index of the model"
msgstr "La columna índice del modelo"
#: ../vn/field/vn-combo.c:293 ../vn/column/vn-column-combo.c:368
#: ../vn/field/vn-combo.c:293 ../vn/column/vn-column-combo.c:336
msgid "Show column"
msgstr "Columna visible"
#: ../vn/field/vn-combo.c:294 ../vn/column/vn-column-combo.c:369
#: ../vn/field/vn-combo.c:294 ../vn/column/vn-column-combo.c:337
msgid "The column of the model shown by combo"
msgstr "La columna del modelo que se mostrará en el combo"
@ -817,55 +817,47 @@ msgstr "Tab index"
msgid "Order in which the tab selects the columns for edition"
msgstr "Orden en el cual el tabulador selecciona las columnas para editar"
#: ../vn/column/vn-column-spin.c:171
#: ../vn/column/vn-column-spin.c:175
msgid "Climb rate"
msgstr "Tasa de subida"
#: ../vn/column/vn-column-spin.c:172
#: ../vn/column/vn-column-spin.c:176
msgid "The acceleration rate when you hold down a button."
msgstr "La tasa de aceleración cuando se mantiene apretado el botón."
#: ../vn/column/vn-column-spin.c:187
#: ../vn/column/vn-column-spin.c:191
msgid "Minimum value"
msgstr "Valor mínimo"
#: ../vn/column/vn-column-spin.c:188
#: ../vn/column/vn-column-spin.c:192
msgid "The minimum value of the adjustment."
msgstr "Valor mínimo del ajuste."
#: ../vn/column/vn-column-spin.c:195
#: ../vn/column/vn-column-spin.c:199
msgid "Maximum value"
msgstr "Valor máximo"
#: ../vn/column/vn-column-spin.c:196
#: ../vn/column/vn-column-spin.c:200
msgid "The maximum value of the adjustment."
msgstr "Valor máximo del ajuste"
#: ../vn/column/vn-column-spin.c:203
#: ../vn/column/vn-column-spin.c:207
msgid "Step Increment"
msgstr "Incremento del paso"
#: ../vn/column/vn-column-spin.c:204
#: ../vn/column/vn-column-spin.c:208
msgid "The step increment of the adjustment"
msgstr "El incremento del paso del ajuste"
#: ../vn/column/vn-column-combo.c:375
#: ../vn/column/vn-column-combo.c:343
msgid "Sort column"
msgstr "Columna de ordenación"
#: ../vn/column/vn-column-combo.c:376
#: ../vn/column/vn-column-combo.c:344
msgid "The field number of the Grid model used to sort the column"
msgstr ""
"El número de campo del modelo del Grid que se usa para ordenar la columna"
#: ../vn/column/vn-column-combo.c:382
msgid "Filter field"
msgstr "Campo de filtro"
#: ../vn/column/vn-column-combo.c:383
msgid "Name of the field to be used as query filter by the model"
msgstr "Nombre del campo que se usará como filtro en la consulta del modelo"
#: ../vn/column/vn-column-image.c:502
msgid "Base path from the host where the images will be downloaded"
msgstr "La ruta base del servidor desde donde se descargarán las imágenes."
@ -1156,10 +1148,16 @@ msgstr "Consulta:"
msgid "Immediate changes"
msgstr "Cambios inmediatos"
#: ../module/src/vn-consulter.c:216
#: ../module/src/vn-consulter.c:215
msgid "Type or select a query"
msgstr "Escribe o selecciona la consulta"
#: ../module/src/vn-consulter.c:218
#: ../module/src/vn-consulter.c:217
msgid "Message"
msgstr "Mensaje"
#~ msgid "Filter field"
#~ msgstr "Campo de filtro"
#~ msgid "Name of the field to be used as query filter by the model"
#~ msgstr "Nombre del campo que se usará como filtro en la consulta del modelo"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-31 13:28+0100\n"
"POT-Creation-Date: 2014-01-10 15:00+0100\n"
"PO-Revision-Date: 2012-10-09 11:38+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Dutch\n"
@ -134,7 +134,7 @@ msgstr ""
msgid "The master GvnParam of this parameter"
msgstr ""
#: ../gvn/gvn-param.c:457 ../db/db-iterator.c:987
#: ../gvn/gvn-param.c:457 ../db/db-iterator.c:997
msgid "Mode"
msgstr ""
@ -228,15 +228,15 @@ msgstr ""
msgid "Can't allocate the needed memory"
msgstr ""
#: ../db/db-iterator.c:988
#: ../db/db-iterator.c:998
msgid "The mode in which the iterator is working"
msgstr ""
#: ../db/db-iterator.c:995
#: ../db/db-iterator.c:1005
msgid "Remember selection"
msgstr ""
#: ../db/db-iterator.c:996
#: ../db/db-iterator.c:1006
msgid "Wether to rememeber the selection when model is refreshed"
msgstr ""
@ -343,7 +343,7 @@ msgstr ""
msgid "A column to apply the operations over it"
msgstr ""
#: ../db/db-param.c:251 ../vn/vn-grid.c:470 ../vn/vn-field.c:532
#: ../db/db-param.c:251 ../vn/vn-grid.c:483 ../vn/vn-field.c:532
msgid "Iterator"
msgstr ""
@ -567,7 +567,7 @@ msgstr ""
msgid "Function vn_model_set_default_sort_func not implemented"
msgstr ""
#: ../vn/vn-grid.c:471
#: ../vn/vn-grid.c:484
msgid "The iterator used by VnGrid"
msgstr ""
@ -706,28 +706,28 @@ msgid "Whether the field value can be of type GVN_TYPE_NULL"
msgstr ""
#: ../vn/field/vn-entry.c:153 ../vn/field/vn-spin.c:172
#: ../vn/column/vn-column-entry.c:119 ../vn/column/vn-column-spin.c:179
#: ../vn/column/vn-column-entry.c:119 ../vn/column/vn-column-spin.c:183
msgid "Digits"
msgstr ""
#: ../vn/field/vn-entry.c:154 ../vn/field/vn-spin.c:173
#: ../vn/column/vn-column-entry.c:120 ../vn/column/vn-column-spin.c:180
#: ../vn/column/vn-column-entry.c:120 ../vn/column/vn-column-spin.c:184
msgid "The number of decimal places to display."
msgstr ""
#: ../vn/field/vn-combo.c:286 ../vn/column/vn-column-combo.c:361
#: ../vn/field/vn-combo.c:286 ../vn/column/vn-column-combo.c:329
msgid "Index column"
msgstr ""
#: ../vn/field/vn-combo.c:287 ../vn/column/vn-column-combo.c:362
#: ../vn/field/vn-combo.c:287 ../vn/column/vn-column-combo.c:330
msgid "The column index of the model"
msgstr ""
#: ../vn/field/vn-combo.c:293 ../vn/column/vn-column-combo.c:368
#: ../vn/field/vn-combo.c:293 ../vn/column/vn-column-combo.c:336
msgid "Show column"
msgstr ""
#: ../vn/field/vn-combo.c:294 ../vn/column/vn-column-combo.c:369
#: ../vn/field/vn-combo.c:294 ../vn/column/vn-column-combo.c:337
msgid "The column of the model shown by combo"
msgstr ""
@ -806,54 +806,46 @@ msgstr ""
msgid "Order in which the tab selects the columns for edition"
msgstr ""
#: ../vn/column/vn-column-spin.c:171
#: ../vn/column/vn-column-spin.c:175
msgid "Climb rate"
msgstr ""
#: ../vn/column/vn-column-spin.c:172
#: ../vn/column/vn-column-spin.c:176
msgid "The acceleration rate when you hold down a button."
msgstr ""
#: ../vn/column/vn-column-spin.c:187
#: ../vn/column/vn-column-spin.c:191
msgid "Minimum value"
msgstr ""
#: ../vn/column/vn-column-spin.c:188
#: ../vn/column/vn-column-spin.c:192
msgid "The minimum value of the adjustment."
msgstr ""
#: ../vn/column/vn-column-spin.c:195
#: ../vn/column/vn-column-spin.c:199
msgid "Maximum value"
msgstr ""
#: ../vn/column/vn-column-spin.c:196
#: ../vn/column/vn-column-spin.c:200
msgid "The maximum value of the adjustment."
msgstr ""
#: ../vn/column/vn-column-spin.c:203
#: ../vn/column/vn-column-spin.c:207
msgid "Step Increment"
msgstr ""
#: ../vn/column/vn-column-spin.c:204
#: ../vn/column/vn-column-spin.c:208
msgid "The step increment of the adjustment"
msgstr ""
#: ../vn/column/vn-column-combo.c:375
#: ../vn/column/vn-column-combo.c:343
msgid "Sort column"
msgstr ""
#: ../vn/column/vn-column-combo.c:376
#: ../vn/column/vn-column-combo.c:344
msgid "The field number of the Grid model used to sort the column"
msgstr ""
#: ../vn/column/vn-column-combo.c:382
msgid "Filter field"
msgstr ""
#: ../vn/column/vn-column-combo.c:383
msgid "Name of the field to be used as query filter by the model"
msgstr ""
#: ../vn/column/vn-column-image.c:502
msgid "Base path from the host where the images will be downloaded"
msgstr ""
@ -1121,10 +1113,10 @@ msgstr ""
msgid "Immediate changes"
msgstr ""
#: ../module/src/vn-consulter.c:216
#: ../module/src/vn-consulter.c:215
msgid "Type or select a query"
msgstr ""
#: ../module/src/vn-consulter.c:218
#: ../module/src/vn-consulter.c:217
msgid "Message"
msgstr ""

View File

@ -6,4 +6,4 @@ value_get_valist skip=false
Param.value_changed#method name="emit_value_changed"
//FIXME
//ParamSpec struct
//ParamSpec struct

View File

@ -5,4 +5,4 @@ Render.add_object.object#parameter type="GLib.Object"
Render.get_string.object#parameter type="GLib.Object"
RenderFunc.obj#parameter type="GLib.Object"
parser_parse name="parse"
parser_parse name="parse"

View File

@ -16,6 +16,7 @@
*/
#include "vn-column-spin.h"
#include "../vn-model.h"
G_DEFINE_TYPE (VnColumnSpin, vn_column_spin, VN_TYPE_COLUMN);
@ -23,6 +24,10 @@ static void vn_column_spin_on_edited (GtkCellRendererSpin * cell,
const gchar * path, gchar * text, VnColumnSpin * obj)
{
GValue value = {0};
DbModelStatus status = db_model_get_status (vn_column_get_model (VN_COLUMN (obj)));
if (status != DB_MODEL_STATUS_READY)
return;
if (g_strcmp0 (text, ""))
{
@ -53,16 +58,58 @@ static void vn_column_spin_on_edited (GtkCellRendererSpin * cell,
g_value_unset (&value);
}
void vn_column_spin_on_editing_started (GtkCellRenderer * renderer,
GtkEntry * entry, gchar * path, GtkTreeViewColumn * obj)
{
GtkTreeIter iter;
GtkTreeModel * model;
GtkTreeView * tree;
if (!GTK_IS_SPIN_BUTTON (entry))
return;
tree = GTK_TREE_VIEW (gtk_tree_view_column_get_tree_view (obj));
model = gtk_tree_view_get_model (tree);
if (gtk_tree_model_get_iter_from_string (model, &iter, path))
{
gint i = 0;
GList * columns, * n;
GValue value;
VnColumn * column = VN_COLUMN (obj);
columns = gtk_tree_view_get_columns (tree);
for (n = columns; n; n = n->next, i++)
if (n->data == column)
break;
gtk_tree_model_get_value (model, &iter, i, &value);
g_list_free (columns);
if (gvn_value_is_null (&value))
gtk_entry_set_text (entry, "");
}
}
static void vn_column_spin_set_editable (VnColumn * obj, gboolean editable)
{
g_object_set (obj->cell, "editable", editable, NULL);
if (editable)
{
g_signal_connect (obj->cell, "editing-started",
G_CALLBACK (vn_column_spin_on_editing_started), obj);
g_signal_connect (obj->cell, "edited",
G_CALLBACK (vn_column_spin_on_edited), obj);
}
else
{
g_signal_handlers_disconnect_by_func (obj->cell,
vn_column_spin_on_editing_started, obj);
g_signal_handlers_disconnect_by_func (obj->cell,
vn_column_spin_on_edited, obj);
}
g_object_set (obj->cell, "editable", editable, NULL);
}
static void vn_column_spin_set_value (VnColumnSpin * obj, GtkTreeModel * model,

View File

@ -227,7 +227,7 @@ static void vn_date_chooser_on_toggled (GtkToggleButton * button, VnDateChooser
gtk_window_move (GTK_WINDOW (obj->popup), x, y);
gtk_widget_show_all (obj->popup);
// Graving the focus on the popup window
// Grabbing the focus on the popup window
obj->device = gtk_get_current_event_device ();

View File

@ -202,16 +202,24 @@ static gboolean vn_grid_on_cursor_key_pressed (GtkTreeView * obj,
leave = !gtk_tree_path_prev (path);
else
{
gtk_tree_path_next (path);
DbIter iter;
if (gtk_tree_path_get_indices (path)[0] >=
db_model_get_nrows (VN_GRID (obj)->model))
if (db_model_get_iter (VN_GRID (obj)->model, &iter, gtk_tree_path_get_indices (path)[0])
&& db_model_get_row_operations (VN_GRID (obj)->model, &iter) == DB_MODEL_ROW_OP_INSERT)
leave = TRUE;
else
{
if (db_model_get_update_flags (VN_GRID (obj)->model) &
DB_MODEL_INSERT)
db_iterator_insert (VN_GRID (obj)->iterator);
else
leave = TRUE;
gtk_tree_path_next (path);
if (gtk_tree_path_get_indices (path)[0] >=
db_model_get_nrows (VN_GRID (obj)->model))
{
if (db_model_get_update_flags (VN_GRID (obj)->model) &
DB_MODEL_INSERT)
db_iterator_insert (VN_GRID (obj)->iterator);
else
leave = TRUE;
}
}
}
@ -229,6 +237,17 @@ static gboolean vn_grid_on_cursor_key_pressed (GtkTreeView * obj,
return TRUE;
}
static gboolean vn_grid_on_escape_pressed (VnGrid * obj,
GdkEventKey * event, gpointer data)
{
if (event->type == GDK_KEY_PRESS
&& event->keyval == GDK_KEY_Escape
&& db_iterator_get_mode (obj->iterator) != DB_ITERATOR_MODE_ON_DEMAND)
db_iterator_reverse_operations (obj->iterator);
return FALSE;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Public
/**
@ -279,10 +298,11 @@ void vn_grid_set_iterator (VnGrid * obj, DbIterator * iterator)
,"signal::status-changed", vn_grid_on_status_changed, obj
,NULL
);
vn_grid_on_status_changed (iterator,
db_iterator_is_ready (iterator), obj);
g_signal_connect (obj, "cursor-changed",
g_signal_connect_after (obj, "cursor-changed",
G_CALLBACK (vn_grid_on_cursor_changed), iterator);
}
}
@ -446,9 +466,10 @@ static void vn_grid_init (VnGrid * obj)
g_signal_connect (obj, "notify::model",
G_CALLBACK (vn_grid_on_model_changed), NULL);
g_signal_connect (obj, "key-press-event",
G_CALLBACK (vn_grid_on_cursor_key_pressed), NULL);
g_signal_connect (obj, "key-press-event",
G_CALLBACK (vn_grid_on_escape_pressed), NULL);
}
static void vn_grid_finalize (VnGrid * obj)