Ahora VnDateChooser también modifica horas y usa GDateTime internamente

This commit is contained in:
Alejandro T. Colombini Gómez 2014-04-22 13:33:14 +02:00
parent c71abbb4f3
commit 986e748a82
18 changed files with 511 additions and 215 deletions

View File

@ -12,8 +12,8 @@ without warranty of any kind.
Basic Installation Basic Installation
================== ==================
Briefly, the shell commands `./configure; make; make install' should Briefly, the shell command `./configure && make && make install'
configure, build, and install this package. The following should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented `INSTALL' file but do not implement all of the features documented

View File

@ -59,7 +59,6 @@ fi
AC_SUBST([CFLAGS]) AC_SUBST([CFLAGS])
AC_SUBST([VALAFLAGS]) AC_SUBST([VALAFLAGS])
AC_SUBST([[+NameCLower+]_datadir], ['$(datadir)/hedera/module'])
LT_INIT LT_INIT
@ -69,23 +68,19 @@ AC_ARG_VAR([UNINSTALLED_DIR], [the directory of the uninstalled hedera project])
PKG_PROG_PKG_CONFIG PKG_PROG_PKG_CONFIG
if test $UNINSTALLED_DIR; then if test $UNINSTALLED_DIR; then
PKG_CHECK_MODULES([+NameCUpper+], [gtk+-3.0]) VALA_CHECK_MODULES([+NameCUpper+], [gtk+-3.0 [+PackageModule2+]])
[+NameCUpper+]_CFLAGS+=-I$UNINSTALLED_DIR [+NameCUpper+]_CFLAGS+=-I$UNINSTALLED_DIR
[+NameCUpper+]_LIBS+=$UNINSTALLED_DIR/build/main/libhedera.la [+NameCUpper+]_LIBS+=$UNINSTALLED_DIR/build/main/libhedera.la
VALAFLAGS+=$[+NameCUpper+]_VALAFLAGS '--pkg gtk+-3.0 \
VALA_CHECK_PACKAGES([gtk+-3.0 [+PackageModule2+]])
VALAFLAGS+='--pkg gtk+-3.0 \
--pkg gvn --pkg sql --pkg db --pkg vn \ --pkg gvn --pkg sql --pkg db --pkg vn \
--vapidir $(UNINSTALLED_DIR)/build/vapi ' --vapidir $(UNINSTALLED_DIR)/build/vapi '
AC_SUBST([+NameCLower+]_libdir, $libdir/hedera/module) AC_SUBST([+NameCLower+]_libdir, $libdir/hedera/module)
AC_SUBST([+NameCLower+]_datadir,$datadir/hedera/module) AC_SUBST([+NameCLower+]_datadir, $datadir/hedera/module)
AC_SUBST(querydir,$account_datadir/sql) AC_SUBST(querydir, $account_datadir/sql)
else else
PKG_CHECK_MODULES([+NameCUpper+], [hedera]) VALA_CHECK_MODULES([+NameCUpper+], [hedera [+PackageModule2+]])
VALAFLAGS+=$[+NameCUpper+]_VALAFLAGS '--pkg hedera '
VALA_CHECK_PACKAGES([hedera [+PackageModule2+]])
VALAFLAGS+='--pkg hedera '
PKG_CHECK_VAR([[+NameCLower+]_libdir], [hedera], [modulelibdir]) PKG_CHECK_VAR([[+NameCLower+]_libdir], [hedera], [modulelibdir])
PKG_CHECK_VAR([[+NameCLower+]_datadir], [hedera], [moduledatadir]) PKG_CHECK_VAR([[+NameCLower+]_datadir], [hedera], [moduledatadir])

View File

@ -43,7 +43,6 @@ if test x"$RAGEL" = x"no" ; then
fi fi
# Checks if Vala bindings should be generated # Checks if Vala bindings should be generated
dnl TODO: Use AC_ARG_WITH to pick the Vala version?
AC_MSG_CHECKING([wether to generate Vala bindings...]) AC_MSG_CHECKING([wether to generate Vala bindings...])
AC_ARG_ENABLE([vala], AC_ARG_ENABLE([vala],
[AS_HELP_STRING([--enable-vala], [AS_HELP_STRING([--enable-vala],

View File

@ -10,7 +10,7 @@ usr/lib/x86_64-linux-gnu/hedera
usr/lib/x86_64-linux-gnu/pkgconfig usr/lib/x86_64-linux-gnu/pkgconfig
usr/lib/glade/modules usr/lib/glade/modules
#usr/lib/girepository-1.0 #usr/lib/girepository-1.0
usr/share/gir-1.0 #usr/share/gir-1.0
usr/share/glade/catalogs usr/share/glade/catalogs
usr/share/vala-0.22/vapi usr/share/vala-0.22/vapi
usr/share/gtk-doc/html/hedera usr/share/gtk-doc/html/hedera

View File

@ -22,7 +22,7 @@ usr/lib/x86_64-linux-gnu/hedera/libvncolumn.so
usr/lib/x86_64-linux-gnu/pkgconfig/* usr/lib/x86_64-linux-gnu/pkgconfig/*
usr/lib/glade/modules/libgladevn.so usr/lib/glade/modules/libgladevn.so
#usr/lib/girepository-1.0/* #usr/lib/girepository-1.0/*
usr/share/gir-1.0/* #usr/share/gir-1.0/*
usr/share/glade/catalogs/* usr/share/glade/catalogs/*
usr/share/vala-0.22/vapi/* usr/share/vala-0.22/vapi/*
usr/share/gtk-doc/html/hedera/* usr/share/gtk-doc/html/hedera/*

View File

@ -171,7 +171,7 @@ static void gvn_value_transform_date_to_date_time (const GValue * src, GValue *
if (date) if (date)
{ {
GDateTime * date_time = g_date_time_new_utc ( GDateTime * date_time = g_date_time_new_local (
g_date_get_year (date) g_date_get_year (date)
,g_date_get_month (date) ,g_date_get_month (date)
,g_date_get_day (date) ,g_date_get_day (date)

View File

@ -171,8 +171,6 @@ static GType db_pg_get_g_type (Oid type)
case CHAROID: case CHAROID:
case TEXTOID: case TEXTOID:
case NAMEOID: case NAMEOID:
// case XMLOID:
// case CSTRINGOID:
case BPCHAROID: case BPCHAROID:
case VARCHAROID: case VARCHAROID:
default: default:

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: hedera 1.0\n" "Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-15 10:53+0200\n" "POT-Creation-Date: 2014-04-22 12:12+0200\n"
"PO-Revision-Date: 2013-06-04 13:38+0200\n" "PO-Revision-Date: 2013-06-04 13:38+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n" "Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Catalan\n" "Language-Team: Catalan\n"
@ -31,7 +31,7 @@ msgstr "El parametre no pot ser nul"
msgid "Incompatible type for this param" msgid "Incompatible type for this param"
msgstr "Tipus incompatible per a aquest parametre" msgstr "Tipus incompatible per a aquest parametre"
#: ../gvn/gvn-param.c:443 ../sql/sql-value.c:235 ../vn/vn-field.c:529 #: ../gvn/gvn-param.c:443 ../sql/sql-value.c:235 ../vn/vn-field.c:538
msgid "Value" msgid "Value"
msgstr "" msgstr ""
@ -71,15 +71,15 @@ msgstr ""
msgid "The spec of the parameter" msgid "The spec of the parameter"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:557 #: ../gvn/gvn-param.c:478 ../vn/vn-field.c:566
msgid "Glib Type" msgid "Glib Type"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:479 ../vn/vn-field.c:558 #: ../gvn/gvn-param.c:479 ../vn/vn-field.c:567
msgid "The type of the value" msgid "The type of the value"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:485 ../vn/vn-field.c:564 ../vn/vn-column.c:467 #: ../gvn/gvn-param.c:485 ../vn/vn-field.c:573 ../vn/vn-column.c:467
msgid "Editable" msgid "Editable"
msgstr "" msgstr ""
@ -87,7 +87,7 @@ msgstr ""
msgid "Whether the param value can be modified" msgid "Whether the param value can be modified"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:492 ../vn/vn-field.c:571 ../vn/vn-column.c:474 #: ../gvn/gvn-param.c:492 ../vn/vn-field.c:580 ../vn/vn-column.c:474
msgid "Null" msgid "Null"
msgstr "" msgstr ""
@ -95,11 +95,11 @@ msgstr ""
msgid "Whether the param value can be of type GVN_TYPE_NULL" msgid "Whether the param value can be of type GVN_TYPE_NULL"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:578 #: ../gvn/gvn-param.c:499 ../vn/vn-field.c:587
msgid "Default Value" msgid "Default Value"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:500 ../vn/vn-field.c:579 #: ../gvn/gvn-param.c:500 ../vn/vn-field.c:588
msgid "The default value" msgid "The default value"
msgstr "" msgstr ""
@ -116,11 +116,11 @@ msgstr ""
msgid "No" msgid "No"
msgstr "" msgstr ""
#: ../sql/sql-render.c:420 #: ../sql/sql-render.c:413
msgid "Delimiter" msgid "Delimiter"
msgstr "" msgstr ""
#: ../sql/sql-render.c:421 #: ../sql/sql-render.c:414
msgid "The character used for delimite the name of fields, tables..." msgid "The character used for delimite the name of fields, tables..."
msgstr "" msgstr ""
@ -265,7 +265,7 @@ msgstr ""
msgid "A column to apply the operations over it" msgid "A column to apply the operations over it"
msgstr "" msgstr ""
#: ../db/db-param.c:251 ../vn/vn-grid.c:518 ../vn/vn-field.c:543 #: ../db/db-param.c:251 ../vn/vn-grid.c:518 ../vn/vn-field.c:552
msgid "Iterator" msgid "Iterator"
msgstr "" msgstr ""
@ -281,7 +281,7 @@ msgstr ""
msgid "The referenced column index" msgid "The referenced column index"
msgstr "" msgstr ""
#: ../db/db-param.c:265 ../vn/vn-field.c:550 ../vn/vn-column.c:460 #: ../db/db-param.c:265 ../vn/vn-field.c:559 ../vn/vn-column.c:460
msgid "Column name" msgid "Column name"
msgstr "Nom de la columna" msgstr "Nom de la columna"
@ -588,45 +588,45 @@ msgstr ""
msgid "The application identifier" msgid "The application identifier"
msgstr "" msgstr ""
#: ../vn/vn-field.c:530 #: ../vn/vn-field.c:539
msgid "The current value of the field" msgid "The current value of the field"
msgstr "" msgstr ""
#: ../vn/vn-field.c:536 ../glade/glade-db-iterator.c:71 #: ../vn/vn-field.c:545 ../glade/glade-db-iterator.c:71
#: ../glade/glade-db-iterator.c:116 #: ../glade/glade-db-iterator.c:116
msgid "Parameter" msgid "Parameter"
msgstr "" msgstr ""
#: ../vn/vn-field.c:537 #: ../vn/vn-field.c:546
msgid "The param where the field can read/write its value" msgid "The param where the field can read/write its value"
msgstr "" msgstr ""
#: ../vn/vn-field.c:544 #: ../vn/vn-field.c:553
msgid "The iterator used to get the field param" msgid "The iterator used to get the field param"
msgstr "" msgstr ""
#: ../vn/vn-field.c:551 #: ../vn/vn-field.c:560
msgid "The column name on the iterator" msgid "The column name on the iterator"
msgstr "" msgstr ""
#: ../vn/vn-field.c:565 #: ../vn/vn-field.c:574
msgid "Whether the field value is user editable" msgid "Whether the field value is user editable"
msgstr "" msgstr ""
#: ../vn/vn-field.c:572 ../vn/vn-column.c:475 #: ../vn/vn-field.c:581 ../vn/vn-column.c:475
msgid "Whether the field value can be of type GVN_TYPE_NULL" msgid "Whether the field value can be of type GVN_TYPE_NULL"
msgstr "" msgstr ""
#: ../vn/vn-field.c:585 ../vn/vn-column.c:488 #: ../vn/vn-field.c:594 ../vn/vn-column.c:488
msgid "Style function" msgid "Style function"
msgstr "" msgstr ""
#: ../vn/vn-field.c:586 #: ../vn/vn-field.c:595
msgid "" msgid ""
"A VnFieldStyleFunc to set the properties of each field depending on its value" "A VnFieldStyleFunc to set the properties of each field depending on its value"
msgstr "" msgstr ""
#: ../vn/field/vn-entry.c:156 ../vn/field/vn-date-chooser.c:363 #: ../vn/field/vn-entry.c:156 ../vn/field/vn-date-chooser.c:461
#: ../vn/field/vn-label.c:114 ../vn/column/vn-column-entry.c:122 #: ../vn/field/vn-label.c:114 ../vn/column/vn-column-entry.c:122
msgid "Format" msgid "Format"
msgstr "" msgstr ""
@ -668,34 +668,34 @@ msgstr ""
msgid "The name of the field used for the search" msgid "The name of the field used for the search"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:319 #: ../vn/field/vn-date-chooser.c:407
msgid "Change date" msgid "Change date"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:364 #: ../vn/field/vn-date-chooser.c:462
msgid "The date format string describing the order of the elements." msgid "The date format string describing the order of the elements."
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:365 #: ../vn/field/vn-date-chooser.c:463
msgctxt "Default date format string" msgctxt "Default date format string"
msgid "%a, %d %b %Y" msgid "%a, %d %b %Y"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:371 #: ../vn/field/vn-date-chooser.c:469
msgid "Show time" msgid "Show time"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:372 #: ../vn/field/vn-date-chooser.c:470
msgid "" msgid ""
"Whether to show the hour, minute and second fields to set the time of the " "Whether to show the hour, minute and second fields to set the time of the "
"day in the popup." "day in the popup."
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:380 #: ../vn/field/vn-date-chooser.c:478
msgid "Show date" msgid "Show date"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:381 #: ../vn/field/vn-date-chooser.c:479
msgid "Whether to show the calendar to set the date in the popup." msgid "Whether to show the calendar to set the date in the popup."
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: hedera 1.0\n" "Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-15 10:53+0200\n" "POT-Creation-Date: 2014-04-22 12:12+0200\n"
"PO-Revision-Date: 2013-06-04 13:36+0200\n" "PO-Revision-Date: 2013-06-04 13:36+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n" "Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
@ -33,7 +33,7 @@ msgstr "El parámetro no puede ser nulo"
msgid "Incompatible type for this param" msgid "Incompatible type for this param"
msgstr "Tipo incompatible para este parametro" msgstr "Tipo incompatible para este parametro"
#: ../gvn/gvn-param.c:443 ../sql/sql-value.c:235 ../vn/vn-field.c:529 #: ../gvn/gvn-param.c:443 ../sql/sql-value.c:235 ../vn/vn-field.c:538
msgid "Value" msgid "Value"
msgstr "Valor" msgstr "Valor"
@ -73,15 +73,15 @@ msgstr "Spec"
msgid "The spec of the parameter" msgid "The spec of the parameter"
msgstr "Datos específicos del parámetro" msgstr "Datos específicos del parámetro"
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:557 #: ../gvn/gvn-param.c:478 ../vn/vn-field.c:566
msgid "Glib Type" msgid "Glib Type"
msgstr "Tipo Glib" msgstr "Tipo Glib"
#: ../gvn/gvn-param.c:479 ../vn/vn-field.c:558 #: ../gvn/gvn-param.c:479 ../vn/vn-field.c:567
msgid "The type of the value" msgid "The type of the value"
msgstr "El tipo del valor" msgstr "El tipo del valor"
#: ../gvn/gvn-param.c:485 ../vn/vn-field.c:564 ../vn/vn-column.c:467 #: ../gvn/gvn-param.c:485 ../vn/vn-field.c:573 ../vn/vn-column.c:467
msgid "Editable" msgid "Editable"
msgstr "Editable" msgstr "Editable"
@ -89,7 +89,7 @@ msgstr "Editable"
msgid "Whether the param value can be modified" msgid "Whether the param value can be modified"
msgstr "Indica si el parámetro puede modificarse" msgstr "Indica si el parámetro puede modificarse"
#: ../gvn/gvn-param.c:492 ../vn/vn-field.c:571 ../vn/vn-column.c:474 #: ../gvn/gvn-param.c:492 ../vn/vn-field.c:580 ../vn/vn-column.c:474
msgid "Null" msgid "Null"
msgstr "Nulo" msgstr "Nulo"
@ -97,11 +97,11 @@ msgstr "Nulo"
msgid "Whether the param value can be of type GVN_TYPE_NULL" msgid "Whether the param value can be of type GVN_TYPE_NULL"
msgstr "Indica si el parámetro puede ser nulo" msgstr "Indica si el parámetro puede ser nulo"
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:578 #: ../gvn/gvn-param.c:499 ../vn/vn-field.c:587
msgid "Default Value" msgid "Default Value"
msgstr "Valor por defecto" msgstr "Valor por defecto"
#: ../gvn/gvn-param.c:500 ../vn/vn-field.c:579 #: ../gvn/gvn-param.c:500 ../vn/vn-field.c:588
msgid "The default value" msgid "The default value"
msgstr "El valor por defecto" msgstr "El valor por defecto"
@ -118,11 +118,11 @@ msgstr "Sí"
msgid "No" msgid "No"
msgstr "No" msgstr "No"
#: ../sql/sql-render.c:420 #: ../sql/sql-render.c:413
msgid "Delimiter" msgid "Delimiter"
msgstr "Delimitador" msgstr "Delimitador"
#: ../sql/sql-render.c:421 #: ../sql/sql-render.c:414
msgid "The character used for delimite the name of fields, tables..." msgid "The character used for delimite the name of fields, tables..."
msgstr "El carácter usado para delimitar los nombres de campos, tablas..." msgstr "El carácter usado para delimitar los nombres de campos, tablas..."
@ -273,7 +273,7 @@ msgstr "Columna"
msgid "A column to apply the operations over it" msgid "A column to apply the operations over it"
msgstr "Una columna sobre la que se aplicarán las operaciones" msgstr "Una columna sobre la que se aplicarán las operaciones"
#: ../db/db-param.c:251 ../vn/vn-grid.c:518 ../vn/vn-field.c:543 #: ../db/db-param.c:251 ../vn/vn-grid.c:518 ../vn/vn-field.c:552
msgid "Iterator" msgid "Iterator"
msgstr "Iterator" msgstr "Iterator"
@ -289,7 +289,7 @@ msgstr "Posición"
msgid "The referenced column index" msgid "The referenced column index"
msgstr "La posición de la columna en el Grid" msgstr "La posición de la columna en el Grid"
#: ../db/db-param.c:265 ../vn/vn-field.c:550 ../vn/vn-column.c:460 #: ../db/db-param.c:265 ../vn/vn-field.c:559 ../vn/vn-column.c:460
msgid "Column name" msgid "Column name"
msgstr "Nombre de la columna" msgstr "Nombre de la columna"
@ -600,47 +600,47 @@ msgstr "Id de la aplicación"
msgid "The application identifier" msgid "The application identifier"
msgstr "El identificador de la aplicación" msgstr "El identificador de la aplicación"
#: ../vn/vn-field.c:530 #: ../vn/vn-field.c:539
msgid "The current value of the field" msgid "The current value of the field"
msgstr "El valor actual del campo" msgstr "El valor actual del campo"
#: ../vn/vn-field.c:536 ../glade/glade-db-iterator.c:71 #: ../vn/vn-field.c:545 ../glade/glade-db-iterator.c:71
#: ../glade/glade-db-iterator.c:116 #: ../glade/glade-db-iterator.c:116
msgid "Parameter" msgid "Parameter"
msgstr "Parámetro" msgstr "Parámetro"
#: ../vn/vn-field.c:537 #: ../vn/vn-field.c:546
msgid "The param where the field can read/write its value" msgid "The param where the field can read/write its value"
msgstr "El parámetro en el que el campo escribe/lee su valor" msgstr "El parámetro en el que el campo escribe/lee su valor"
#: ../vn/vn-field.c:544 #: ../vn/vn-field.c:553
msgid "The iterator used to get the field param" msgid "The iterator used to get the field param"
msgstr "El Iterator con el que se obtiene el parámetro" msgstr "El Iterator con el que se obtiene el parámetro"
#: ../vn/vn-field.c:551 #: ../vn/vn-field.c:560
msgid "The column name on the iterator" msgid "The column name on the iterator"
msgstr "El nombre de la columna en el Iterator" msgstr "El nombre de la columna en el Iterator"
#: ../vn/vn-field.c:565 #: ../vn/vn-field.c:574
msgid "Whether the field value is user editable" msgid "Whether the field value is user editable"
msgstr "Si el valor de campo puede ser editado por el usuario" msgstr "Si el valor de campo puede ser editado por el usuario"
#: ../vn/vn-field.c:572 ../vn/vn-column.c:475 #: ../vn/vn-field.c:581 ../vn/vn-column.c:475
msgid "Whether the field value can be of type GVN_TYPE_NULL" msgid "Whether the field value can be of type GVN_TYPE_NULL"
msgstr "Si el campo puede ser del tipo GVN_TYPE_NULL" msgstr "Si el campo puede ser del tipo GVN_TYPE_NULL"
#: ../vn/vn-field.c:585 ../vn/vn-column.c:488 #: ../vn/vn-field.c:594 ../vn/vn-column.c:488
msgid "Style function" msgid "Style function"
msgstr "Función de estilo" msgstr "Función de estilo"
#: ../vn/vn-field.c:586 #: ../vn/vn-field.c:595
msgid "" msgid ""
"A VnFieldStyleFunc to set the properties of each field depending on its value" "A VnFieldStyleFunc to set the properties of each field depending on its value"
msgstr "" msgstr ""
"Una VnFieldStyleFunc para configurar las propiedades de cada campo dependiendo" "Una VnFieldStyleFunc para configurar las propiedades de cada campo "
" de su valor" "dependiendo de su valor"
#: ../vn/field/vn-entry.c:156 ../vn/field/vn-date-chooser.c:363 #: ../vn/field/vn-entry.c:156 ../vn/field/vn-date-chooser.c:461
#: ../vn/field/vn-label.c:114 ../vn/column/vn-column-entry.c:122 #: ../vn/field/vn-label.c:114 ../vn/column/vn-column-entry.c:122
msgid "Format" msgid "Format"
msgstr "Formato" msgstr "Formato"
@ -682,25 +682,25 @@ msgstr "Campo"
msgid "The name of the field used for the search" msgid "The name of the field used for the search"
msgstr "El nombre del campo usado para la búsqueda" msgstr "El nombre del campo usado para la búsqueda"
#: ../vn/field/vn-date-chooser.c:319 #: ../vn/field/vn-date-chooser.c:407
msgid "Change date" msgid "Change date"
msgstr "Cambiar fecha" msgstr "Cambiar fecha"
#: ../vn/field/vn-date-chooser.c:364 #: ../vn/field/vn-date-chooser.c:462
msgid "The date format string describing the order of the elements." msgid "The date format string describing the order of the elements."
msgstr "" msgstr ""
"La cadena de formato de fechas que describe la salida del campo de texto." "La cadena de formato de fechas que describe la salida del campo de texto."
#: ../vn/field/vn-date-chooser.c:365 #: ../vn/field/vn-date-chooser.c:463
msgctxt "Default date format string" msgctxt "Default date format string"
msgid "%a, %d %b %Y" msgid "%a, %d %b %Y"
msgstr "%a, %d %b %Y" msgstr "%a, %d %b %Y"
#: ../vn/field/vn-date-chooser.c:371 #: ../vn/field/vn-date-chooser.c:469
msgid "Show time" msgid "Show time"
msgstr "Mostrar tiempo" msgstr "Mostrar tiempo"
#: ../vn/field/vn-date-chooser.c:372 #: ../vn/field/vn-date-chooser.c:470
msgid "" msgid ""
"Whether to show the hour, minute and second fields to set the time of the " "Whether to show the hour, minute and second fields to set the time of the "
"day in the popup." "day in the popup."
@ -708,11 +708,11 @@ msgstr ""
"Si se muestran los campos para hora, minuto y segundo para indicar el " "Si se muestran los campos para hora, minuto y segundo para indicar el "
"instante del día en el emergente" "instante del día en el emergente"
#: ../vn/field/vn-date-chooser.c:380 #: ../vn/field/vn-date-chooser.c:478
msgid "Show date" msgid "Show date"
msgstr "Mostrar fecha" msgstr "Mostrar fecha"
#: ../vn/field/vn-date-chooser.c:381 #: ../vn/field/vn-date-chooser.c:479
msgid "Whether to show the calendar to set the date in the popup." msgid "Whether to show the calendar to set the date in the popup."
msgstr "Si se debe mostrar el calendario para poner la fecha en el emergente." msgstr "Si se debe mostrar el calendario para poner la fecha en el emergente."
@ -778,8 +778,8 @@ msgstr "Orden en el cual el tabulador selecciona las columnas para editar"
msgid "" msgid ""
"A VnColumnStyleFunc to set the properties of each cell depending on its value" "A VnColumnStyleFunc to set the properties of each cell depending on its value"
msgstr "" msgstr ""
"Una VnColumnStyleFunc para configurar las propiedadesde cada celda dependiendo" "Una VnColumnStyleFunc para configurar las propiedadesde cada celda "
" de su valor" "dependiendo de su valor"
#: ../vn/column/vn-column-spin.c:238 #: ../vn/column/vn-column-spin.c:238
msgid "Climb rate" msgid "Climb rate"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: hedera 1.0\n" "Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-15 10:53+0200\n" "POT-Creation-Date: 2014-04-22 12:12+0200\n"
"PO-Revision-Date: 2012-10-09 11:38+0200\n" "PO-Revision-Date: 2012-10-09 11:38+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n" "Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Dutch\n" "Language-Team: Dutch\n"
@ -33,7 +33,7 @@ msgstr ""
msgid "Incompatible type for this param" msgid "Incompatible type for this param"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:443 ../sql/sql-value.c:235 ../vn/vn-field.c:529 #: ../gvn/gvn-param.c:443 ../sql/sql-value.c:235 ../vn/vn-field.c:538
msgid "Value" msgid "Value"
msgstr "" msgstr ""
@ -73,15 +73,15 @@ msgstr ""
msgid "The spec of the parameter" msgid "The spec of the parameter"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:557 #: ../gvn/gvn-param.c:478 ../vn/vn-field.c:566
msgid "Glib Type" msgid "Glib Type"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:479 ../vn/vn-field.c:558 #: ../gvn/gvn-param.c:479 ../vn/vn-field.c:567
msgid "The type of the value" msgid "The type of the value"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:485 ../vn/vn-field.c:564 ../vn/vn-column.c:467 #: ../gvn/gvn-param.c:485 ../vn/vn-field.c:573 ../vn/vn-column.c:467
msgid "Editable" msgid "Editable"
msgstr "" msgstr ""
@ -89,7 +89,7 @@ msgstr ""
msgid "Whether the param value can be modified" msgid "Whether the param value can be modified"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:492 ../vn/vn-field.c:571 ../vn/vn-column.c:474 #: ../gvn/gvn-param.c:492 ../vn/vn-field.c:580 ../vn/vn-column.c:474
msgid "Null" msgid "Null"
msgstr "" msgstr ""
@ -97,11 +97,11 @@ msgstr ""
msgid "Whether the param value can be of type GVN_TYPE_NULL" msgid "Whether the param value can be of type GVN_TYPE_NULL"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:578 #: ../gvn/gvn-param.c:499 ../vn/vn-field.c:587
msgid "Default Value" msgid "Default Value"
msgstr "" msgstr ""
#: ../gvn/gvn-param.c:500 ../vn/vn-field.c:579 #: ../gvn/gvn-param.c:500 ../vn/vn-field.c:588
msgid "The default value" msgid "The default value"
msgstr "" msgstr ""
@ -118,11 +118,11 @@ msgstr ""
msgid "No" msgid "No"
msgstr "" msgstr ""
#: ../sql/sql-render.c:420 #: ../sql/sql-render.c:413
msgid "Delimiter" msgid "Delimiter"
msgstr "" msgstr ""
#: ../sql/sql-render.c:421 #: ../sql/sql-render.c:414
msgid "The character used for delimite the name of fields, tables..." msgid "The character used for delimite the name of fields, tables..."
msgstr "" msgstr ""
@ -266,7 +266,7 @@ msgstr ""
msgid "A column to apply the operations over it" msgid "A column to apply the operations over it"
msgstr "" msgstr ""
#: ../db/db-param.c:251 ../vn/vn-grid.c:518 ../vn/vn-field.c:543 #: ../db/db-param.c:251 ../vn/vn-grid.c:518 ../vn/vn-field.c:552
msgid "Iterator" msgid "Iterator"
msgstr "" msgstr ""
@ -282,7 +282,7 @@ msgstr ""
msgid "The referenced column index" msgid "The referenced column index"
msgstr "" msgstr ""
#: ../db/db-param.c:265 ../vn/vn-field.c:550 ../vn/vn-column.c:460 #: ../db/db-param.c:265 ../vn/vn-field.c:559 ../vn/vn-column.c:460
msgid "Column name" msgid "Column name"
msgstr "" msgstr ""
@ -589,45 +589,45 @@ msgstr ""
msgid "The application identifier" msgid "The application identifier"
msgstr "" msgstr ""
#: ../vn/vn-field.c:530 #: ../vn/vn-field.c:539
msgid "The current value of the field" msgid "The current value of the field"
msgstr "" msgstr ""
#: ../vn/vn-field.c:536 ../glade/glade-db-iterator.c:71 #: ../vn/vn-field.c:545 ../glade/glade-db-iterator.c:71
#: ../glade/glade-db-iterator.c:116 #: ../glade/glade-db-iterator.c:116
msgid "Parameter" msgid "Parameter"
msgstr "" msgstr ""
#: ../vn/vn-field.c:537 #: ../vn/vn-field.c:546
msgid "The param where the field can read/write its value" msgid "The param where the field can read/write its value"
msgstr "" msgstr ""
#: ../vn/vn-field.c:544 #: ../vn/vn-field.c:553
msgid "The iterator used to get the field param" msgid "The iterator used to get the field param"
msgstr "" msgstr ""
#: ../vn/vn-field.c:551 #: ../vn/vn-field.c:560
msgid "The column name on the iterator" msgid "The column name on the iterator"
msgstr "" msgstr ""
#: ../vn/vn-field.c:565 #: ../vn/vn-field.c:574
msgid "Whether the field value is user editable" msgid "Whether the field value is user editable"
msgstr "" msgstr ""
#: ../vn/vn-field.c:572 ../vn/vn-column.c:475 #: ../vn/vn-field.c:581 ../vn/vn-column.c:475
msgid "Whether the field value can be of type GVN_TYPE_NULL" msgid "Whether the field value can be of type GVN_TYPE_NULL"
msgstr "" msgstr ""
#: ../vn/vn-field.c:585 ../vn/vn-column.c:488 #: ../vn/vn-field.c:594 ../vn/vn-column.c:488
msgid "Style function" msgid "Style function"
msgstr "" msgstr ""
#: ../vn/vn-field.c:586 #: ../vn/vn-field.c:595
msgid "" msgid ""
"A VnFieldStyleFunc to set the properties of each field depending on its value" "A VnFieldStyleFunc to set the properties of each field depending on its value"
msgstr "" msgstr ""
#: ../vn/field/vn-entry.c:156 ../vn/field/vn-date-chooser.c:363 #: ../vn/field/vn-entry.c:156 ../vn/field/vn-date-chooser.c:461
#: ../vn/field/vn-label.c:114 ../vn/column/vn-column-entry.c:122 #: ../vn/field/vn-label.c:114 ../vn/column/vn-column-entry.c:122
msgid "Format" msgid "Format"
msgstr "" msgstr ""
@ -669,34 +669,34 @@ msgstr ""
msgid "The name of the field used for the search" msgid "The name of the field used for the search"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:319 #: ../vn/field/vn-date-chooser.c:407
msgid "Change date" msgid "Change date"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:364 #: ../vn/field/vn-date-chooser.c:462
msgid "The date format string describing the order of the elements." msgid "The date format string describing the order of the elements."
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:365 #: ../vn/field/vn-date-chooser.c:463
msgctxt "Default date format string" msgctxt "Default date format string"
msgid "%a, %d %b %Y" msgid "%a, %d %b %Y"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:371 #: ../vn/field/vn-date-chooser.c:469
msgid "Show time" msgid "Show time"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:372 #: ../vn/field/vn-date-chooser.c:470
msgid "" msgid ""
"Whether to show the hour, minute and second fields to set the time of the " "Whether to show the hour, minute and second fields to set the time of the "
"day in the popup." "day in the popup."
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:380 #: ../vn/field/vn-date-chooser.c:478
msgid "Show date" msgid "Show date"
msgstr "" msgstr ""
#: ../vn/field/vn-date-chooser.c:381 #: ../vn/field/vn-date-chooser.c:479
msgid "Whether to show the calendar to set the date in the popup." msgid "Whether to show the calendar to set the date in the popup."
msgstr "" msgstr ""

View File

@ -67,6 +67,7 @@ vn_gui_DATA = \
gui/main.glade \ gui/main.glade \
gui/child-window.glade \ gui/child-window.glade \
gui/actions.glade \ gui/actions.glade \
gui/date-chooser.glade \
gui/menubar.ui gui/menubar.ui
gsettings_SCHEMAS = $(top_srcdir)/vn/schema/$(PACKAGE).gschema.xml gsettings_SCHEMAS = $(top_srcdir)/vn/schema/$(PACKAGE).gschema.xml

View File

@ -15,6 +15,7 @@ field_include_HEADERS = \
vn-label.h vn-label.h
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-D_GUI_DIR=\"$(vn_guidir)\" \
-D_IMAGE_DIR=\"$(vn_imagedir)\" \ -D_IMAGE_DIR=\"$(vn_imagedir)\" \
-I$(top_srcdir) \ -I$(top_srcdir) \
$(gtk_CFLAGS) $(gtk_CFLAGS)

View File

@ -18,7 +18,9 @@
#include "vn-date-chooser.h" #include "vn-date-chooser.h"
#include <db/db.h> #include <db/db.h>
#define DATE_SIZE 50 #define GUI_FILE _GUI_DIR"/date-chooser.glade"
#define DATE_SIZE 50
/** /**
* SECTION:vn-date-chooser * SECTION:vn-date-chooser
@ -59,13 +61,13 @@ static void vn_date_chooser_hide_popup (VnDateChooser * obj)
static void vn_date_chooser_changed (VnDateChooser * obj) static void vn_date_chooser_changed (VnDateChooser * obj)
{ {
GDate * date = &obj->date; GDateTime * datetime = obj->datetime;
if (g_date_valid (date)) if (datetime)
{ {
gchar str[DATE_SIZE]; gchar * str = g_date_time_format (datetime, obj->format);
g_date_strftime (str, DATE_SIZE, obj->format, date);
gtk_label_set_text (obj->label, str); gtk_label_set_text (obj->label, str);
g_free (str);
} }
else else
gtk_label_set_text (obj->label, ""); gtk_label_set_text (obj->label, "");
@ -73,50 +75,76 @@ static void vn_date_chooser_changed (VnDateChooser * obj)
static void vn_date_chooser_set_value (VnDateChooser * obj, const GValue * value) static void vn_date_chooser_set_value (VnDateChooser * obj, const GValue * value)
{ {
GDate * date = NULL; GDateTime * datetime = NULL;
if (G_VALUE_TYPE (value) != G_TYPE_DATE) if (gvn_value_is_null (value)
|| G_VALUE_TYPE (value) == G_TYPE_DATE_TIME)
datetime = g_value_get_boxed (value);
else
{ {
GValue new_value = G_VALUE_INIT; GValue new_value = G_VALUE_INIT;
g_value_init (&new_value, G_TYPE_DATE); g_value_init (&new_value, G_TYPE_DATE_TIME);
g_value_transform (value, &new_value); g_value_transform (value, &new_value);
date = g_value_get_boxed (&new_value); datetime = g_value_get_boxed (&new_value);
} }
else if (!gvn_value_is_null (value))
date = g_value_get_boxed (value);
if (date) if (datetime)
obj->date = *date; {
else if (gvn_value_is_null (datetime))
g_date_clear (&obj->date, 1); obj->datetime = datetime;
else
obj->datetime = g_date_time_ref (datetime);
}
else if (obj->datetime)
{
g_date_time_unref (obj->datetime);
obj->datetime = NULL;
}
vn_date_chooser_changed (obj); vn_date_chooser_changed (obj);
} }
static void vn_date_chooser_on_day_selected (GtkCalendar * calendar, VnDateChooser * obj) static GDateTime * vn_date_chooser_get_datetime (VnDateChooser * obj)
{ {
guint year; guint year, month, day, hour = 0, minute = 0;
guint month; gdouble second = 0.0;
guint day;
GDate new_date;
GValue value = G_VALUE_INIT;
gtk_calendar_get_date (calendar, &year, &month, &day); if (obj->show_date)
month++;
g_date_clear (&new_date, 1);
g_date_set_dmy (&new_date, day, month, year);
if (!g_date_valid (&obj->date) || g_date_compare (&new_date, &obj->date))
{ {
g_date_set_julian (&obj->date, g_date_get_julian (&new_date)); gtk_calendar_get_date (obj->calendar, &year, &month, &day);
g_value_init (&value, G_TYPE_DATE); month++;
g_value_set_boxed (&value, &obj->date); }
if (obj->show_time)
{
hour = (guint) gtk_adjustment_get_value (obj->hour);
minute = (guint) gtk_adjustment_get_value (obj->minute);
second = gtk_adjustment_get_value (obj->second);
}
return g_date_time_new_local (year, month, day, hour, minute, second);
}
void vn_date_chooser_on_day_selected (GtkCalendar * calendar, VnDateChooser * obj)
{
GValue value = G_VALUE_INIT;
GDateTime * datetime = vn_date_chooser_get_datetime (obj);
if (!obj->datetime
|| (obj->datetime && g_date_time_compare (datetime, obj->datetime)))
{
obj->datetime = datetime;
g_value_init (&value, G_TYPE_DATE_TIME);
g_value_set_boxed (&value, obj->datetime);
} }
else else
{ {
g_value_init (&value, GVN_TYPE_NULL); g_value_init (&value, GVN_TYPE_NULL);
g_date_clear (&obj->date, 1);
if (obj->datetime)
g_date_time_unref (obj->datetime);
obj->datetime = NULL;
} }
VN_FIELD_GET_CLASS (obj)->value_changed (VN_FIELD (obj), &value); VN_FIELD_GET_CLASS (obj)->value_changed (VN_FIELD (obj), &value);
@ -126,14 +154,70 @@ static void vn_date_chooser_on_day_selected (GtkCalendar * calendar, VnDateChoos
vn_date_chooser_changed (obj); vn_date_chooser_changed (obj);
} }
void vn_date_chooser_on_ok_clicked (GtkButton * button, VnDateChooser * obj)
{
GDateTime * datetime = vn_date_chooser_get_datetime (obj);
if (datetime)
{
GValue value = G_VALUE_INIT;
if (obj->datetime)
g_date_time_unref (obj->datetime);
obj->datetime = datetime;
g_value_init (&value, G_TYPE_DATE_TIME);
g_value_set_boxed (&value, datetime);
VN_FIELD_GET_CLASS (obj)->value_changed (VN_FIELD (obj), &value);
g_value_unset (&value);
}
vn_date_chooser_hide_popup (obj);
vn_date_chooser_changed (obj);
}
void vn_date_chooser_on_clear_clicked (GtkButton * button, VnDateChooser * obj)
{
GValue value = G_VALUE_INIT;
g_value_init (&value, GVN_TYPE_NULL);
if (obj->datetime)
g_date_time_unref (obj->datetime);
obj->datetime = NULL;
VN_FIELD_GET_CLASS (obj)->value_changed (VN_FIELD (obj), &value);
g_value_unset (&value);
vn_date_chooser_hide_popup (obj);
vn_date_chooser_changed (obj);
gtk_adjustment_set_value (obj->hour, 0);
gtk_adjustment_set_value (obj->minute, 0);
gtk_adjustment_set_value (obj->second, 0);
}
void vn_date_chooser_on_now_clicked (GtkButton * button, VnDateChooser * obj)
{
GValue value = G_VALUE_INIT;
if (obj->datetime)
g_date_time_unref (obj->datetime);
obj->datetime = g_date_time_new_now_local ();
g_value_init (&value, G_TYPE_DATE_TIME);
g_value_set_boxed (&value, obj->datetime);
VN_FIELD_GET_CLASS (obj)->value_changed (VN_FIELD (obj), &value);
g_value_unset (&value);
vn_date_chooser_hide_popup (obj);
vn_date_chooser_changed (obj);
}
static gboolean vn_date_chooser_on_button_press (GtkWidget * widget, static gboolean vn_date_chooser_on_button_press (GtkWidget * widget,
GdkEventButton * event, VnDateChooser * obj) GdkEventButton * event, VnDateChooser * obj)
{ {
gint x, y; gint x, y;
GtkAllocation allocation; GtkAllocation allocation;
gdk_window_get_origin ( gdk_window_get_origin (gtk_widget_get_window (obj->popup), &x, &y);
gtk_widget_get_window (obj->popup), &x, &y);
gtk_widget_get_allocation (obj->popup, &allocation); gtk_widget_get_allocation (obj->popup, &allocation);
if (!( event->x_root >= x && event->x_root <= x + allocation.width if (!( event->x_root >= x && event->x_root <= x + allocation.width
@ -172,18 +256,42 @@ static void vn_date_chooser_on_toggled (GtkToggleButton * button, VnDateChooser
// Set the date on the calendar // Set the date on the calendar
if (g_date_valid (&obj->date)) if (obj->datetime)
{ {
gtk_calendar_select_month (obj->calendar if (obj->show_date)
,g_date_get_month (&obj->date) - 1 {
,g_date_get_year (&obj->date) gtk_calendar_select_month (obj->calendar
); ,g_date_time_get_month (obj->datetime) - 1
gtk_calendar_select_day (obj->calendar, ,g_date_time_get_year (obj->datetime)
g_date_get_day (&obj->date)); );
gtk_calendar_select_day (obj->calendar,
g_date_time_get_day_of_month (obj->datetime));
}
if (obj->show_time)
{
gtk_adjustment_set_value (obj->hour,
g_date_time_get_hour (obj->datetime));
gtk_adjustment_set_value (obj->minute,
g_date_time_get_minute (obj->datetime));
gtk_adjustment_set_value (obj->second,
g_date_time_get_second (obj->datetime));
gtk_widget_set_no_show_all (GTK_WIDGET (obj->time), obj->show_time);
}
} }
else else
gtk_calendar_select_day (obj->calendar, 0); gtk_calendar_select_day (obj->calendar, 0);
// Set visibility
if (!obj->show_date)
gtk_widget_hide (GTK_WIDGET (obj->calendar));
if (!obj->show_time)
gtk_widget_hide (GTK_WIDGET (obj->time));
gtk_widget_set_no_show_all (GTK_WIDGET (obj->calendar), !obj->show_date);
gtk_widget_set_no_show_all (GTK_WIDGET (obj->time), !obj->show_time);
// Setting the position of the popup // Setting the position of the popup
window = gtk_widget_get_window (widget); window = gtk_widget_get_window (widget);
@ -239,7 +347,6 @@ static void vn_date_chooser_on_toggled (GtkToggleButton * button, VnDateChooser
g_list_free (devices); g_list_free (devices);
} }
// gtk_widget_grab_focus (obj->popup);
gtk_device_grab_add (obj->popup, obj->device, TRUE); gtk_device_grab_add (obj->popup, obj->device, TRUE);
gdk_device_grab (obj->device gdk_device_grab (obj->device
,gtk_widget_get_window (obj->popup) ,gtk_widget_get_window (obj->popup)
@ -252,6 +359,16 @@ static void vn_date_chooser_on_toggled (GtkToggleButton * button, VnDateChooser
vn_date_chooser_hide_popup (obj); vn_date_chooser_hide_popup (obj);
} }
gboolean vn_date_chooser_on_spin_output (GtkSpinButton * spin, VnDateChooser * obj)
{
gchar * format;
GtkAdjustment * adj = gtk_spin_button_get_adjustment (spin);
format = g_strdup_printf ("%02d", (guint) gtk_adjustment_get_value (adj));
gtk_entry_set_text (GTK_ENTRY (spin), format);
g_free (format);
return TRUE;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Properties //+++++++++++++++++++++++++++++++++++++++++++++++++++ Properties
enum enum
@ -304,12 +421,14 @@ static void vn_date_chooser_get_property (VnDateChooser * obj, guint id,
static void vn_date_chooser_init (VnDateChooser * obj) static void vn_date_chooser_init (VnDateChooser * obj)
{ {
GtkWidget * image; GtkBuilder * builder;
obj->show_time = FALSE;
obj->show_date = TRUE;
obj->format = NULL; obj->format = NULL;
obj->popup = NULL; obj->popup = NULL;
obj->device = NULL; obj->device = NULL;
g_date_clear (&obj->date, 1); obj->datetime = NULL;
obj->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); obj->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
gtk_container_add (GTK_CONTAINER (obj), GTK_WIDGET (obj->box)); gtk_container_add (GTK_CONTAINER (obj), GTK_WIDGET (obj->box));
@ -320,15 +439,12 @@ static void vn_date_chooser_init (VnDateChooser * obj)
g_signal_connect (obj->button, "toggled", g_signal_connect (obj->button, "toggled",
G_CALLBACK (vn_date_chooser_on_toggled), obj); G_CALLBACK (vn_date_chooser_on_toggled), obj);
gtk_box_pack_start (GTK_BOX (obj->box), gtk_box_pack_start (GTK_BOX (obj->box),
GTK_WIDGET (obj->button), FALSE, FALSE, 0); GTK_WIDGET (obj->button), TRUE, TRUE, 0);
g_object_set (obj->button, "relief", GTK_RELIEF_HALF, NULL);
image = gtk_image_new_from_icon_name ("gtk-edit", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON (obj->button), image);
obj->label = GTK_LABEL (gtk_label_new (NULL)); obj->label = GTK_LABEL (gtk_label_new (NULL));
gtk_misc_set_alignment (GTK_MISC (obj->label), 0, 0.5); gtk_misc_set_alignment (GTK_MISC (obj->label), 0, 0.5);
gtk_box_pack_end (GTK_BOX (obj->box), gtk_container_add (GTK_CONTAINER (obj->button), GTK_WIDGET (obj->label));
GTK_WIDGET (obj->label), TRUE, TRUE, 0);
obj->popup = gtk_window_new (GTK_WINDOW_POPUP); obj->popup = gtk_window_new (GTK_WINDOW_POPUP);
g_object_connect (obj->popup g_object_connect (obj->popup
@ -337,14 +453,24 @@ static void vn_date_chooser_init (VnDateChooser * obj)
,NULL ,NULL
); );
obj->calendar = GTK_CALENDAR (gtk_calendar_new ()); builder = gtk_builder_new_from_file (GUI_FILE);
g_signal_connect (obj->calendar, "day-selected-double-click", gtk_builder_connect_signals (builder, obj);
G_CALLBACK (vn_date_chooser_on_day_selected), obj);
gtk_container_add (GTK_CONTAINER (obj->popup), GTK_WIDGET (obj->calendar)); obj->calendar = GTK_CALENDAR (gtk_builder_get_object (builder, "calendar"));
obj->hour = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "hour"));
obj->minute = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "minute"));
obj->second = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "second"));
obj->time = GTK_WIDGET (gtk_builder_get_object (builder, "time"));
gtk_container_add (GTK_CONTAINER (obj->popup),
GTK_WIDGET (gtk_builder_get_object (builder, "box")));
} }
static void vn_date_chooser_finalize (VnDateChooser * obj) static void vn_date_chooser_finalize (VnDateChooser * obj)
{ {
if (obj->datetime)
g_date_time_unref (obj->datetime);
g_free (obj->format); g_free (obj->format);
gtk_widget_destroy (obj->popup); gtk_widget_destroy (obj->popup);
G_OBJECT_CLASS (vn_date_chooser_parent_class)->finalize (G_OBJECT (obj)); G_OBJECT_CLASS (vn_date_chooser_parent_class)->finalize (G_OBJECT (obj));

View File

@ -42,7 +42,11 @@ struct _VnDateChooser
GtkWidget * button; GtkWidget * button;
GdkDevice * device; GdkDevice * device;
GtkCalendar * calendar; GtkCalendar * calendar;
GDate date; GtkWidget * time;
GtkAdjustment * hour;
GtkAdjustment * minute;
GtkAdjustment * second;
GDateTime * datetime;
}; };
struct _VnDateChooserClass struct _VnDateChooserClass

View File

@ -92,7 +92,7 @@ static const GMarkupParser vn_model_parser =
vn_model_start_element vn_model_start_element
,vn_model_end_element ,vn_model_end_element
}; };
//FIXME: se pone la propiedad "sql" dos veces en el modelo (entre custom_tag_end y custom_finished)
static gboolean vn_model_buildable_custom_tag_start (GtkBuildable * buildable, static gboolean vn_model_buildable_custom_tag_start (GtkBuildable * buildable,
GtkBuilder * builder, GObject * child, const gchar * tag, GtkBuilder * builder, GObject * child, const gchar * tag,
GMarkupParser * parser, gpointer * data) GMarkupParser * parser, gpointer * data)
@ -117,12 +117,23 @@ static gboolean vn_model_buildable_custom_tag_start (GtkBuildable * buildable,
return FALSE; return FALSE;
} }
/*XXX TEST
static void vn_model_buildable_set_buildable_property (GtkBuildable *buildable, static void vn_model_buildable_set_buildable_property (GtkBuildable * buildable,
GtkBuilder * builder, const gchar * name, const GValue * value) GtkBuilder * builder, const gchar * name, const GValue * value)
{ {
g_message ("set buildable property"); if (!g_strcmp0 (name, "sql"))
}*/ {
static gpointer old_object = NULL;
if (old_object != buildable)
g_object_set_property (G_OBJECT (buildable), name, value);
old_object = buildable;
}
else
g_object_set_property (G_OBJECT (buildable), name, value);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Class //+++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_model_finalize (VnModel * obj) static void vn_model_finalize (VnModel * obj)
@ -139,7 +150,7 @@ static void vn_model_class_init (VnModelClass * klass)
static void vn_model_buildable_init (GtkBuildableIface * iface) static void vn_model_buildable_init (GtkBuildableIface * iface)
{ {
iface->custom_tag_start = vn_model_buildable_custom_tag_start; iface->custom_tag_start = vn_model_buildable_custom_tag_start;
// iface->set_buildable_property = vn_model_buildable_set_buildable_property; iface->set_buildable_property = vn_model_buildable_set_buildable_property;
} }
static void vn_model_init (VnModel * obj) static void vn_model_init (VnModel * obj)

187
vn/gui/date-chooser.glade Normal file
View File

@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkAdjustment" id="hour">
<property name="upper">23</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkBox" id="box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">4</property>
<property name="orientation">vertical</property>
<property name="spacing">4</property>
<child>
<object class="GtkButtonBox" id="buttonbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">True</property>
<property name="layout_style">expand</property>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">OK</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="vn_date_chooser_on_ok_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="clear">
<property name="label" translatable="yes">Clear</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="vn_date_chooser_on_clear_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="now">
<property name="label" translatable="yes">Now</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="vn_date_chooser_on_now_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCalendar" id="calendar">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="year">2014</property>
<property name="month">2</property>
<property name="day">24</property>
<signal name="day-selected-double-click" handler="vn_date_chooser_on_day_selected" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="time">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
<property name="baseline_position">top</property>
<child>
<object class="GtkSpinButton" id="hour-spin">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">●</property>
<property name="xalign">0.5</property>
<property name="invisible_char_set">True</property>
<property name="orientation">vertical</property>
<property name="adjustment">hour</property>
<property name="wrap">True</property>
<signal name="output" handler="vn_date_chooser_on_spin_output" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="minute-spin">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">●</property>
<property name="xalign">0.5</property>
<property name="invisible_char_set">True</property>
<property name="orientation">vertical</property>
<property name="adjustment">minute</property>
<property name="wrap">True</property>
<signal name="output" handler="vn_date_chooser_on_spin_output" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="second-spin">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">●</property>
<property name="xalign">0.5</property>
<property name="invisible_char_set">True</property>
<property name="orientation">vertical</property>
<property name="adjustment">second</property>
<property name="wrap">True</property>
<signal name="output" handler="vn_date_chooser_on_spin_output" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<object class="GtkAdjustment" id="minute">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="second">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
</interface>

View File

@ -231,6 +231,7 @@
<object class="GtkSpinner" id="spinner"> <object class="GtkSpinner" id="spinner">
<property name="width_request">25</property> <property name="width_request">25</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="active">True</property> <property name="active">True</property>
</object> </object>
<packing> <packing>
@ -386,21 +387,6 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="stop">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="vn_login_cb_stop_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>

View File

@ -89,7 +89,6 @@ static void vn_login_show (VnLogin * obj)
obj->pass = BUILDER_GET (builder, "password"); obj->pass = BUILDER_GET (builder, "password");
obj->remember = BUILDER_GET (builder, "remember"); obj->remember = BUILDER_GET (builder, "remember");
obj->connect = BUILDER_GET (builder, "connect"); obj->connect = BUILDER_GET (builder, "connect");
obj->stop = BUILDER_GET (builder, "stop");
obj->settings_button = BUILDER_GET (builder, "settings"); obj->settings_button = BUILDER_GET (builder, "settings");
obj->spinner = BUILDER_GET (builder, "spinner"); obj->spinner = BUILDER_GET (builder, "spinner");
obj->settings_dialog = BUILDER_GET (builder, "settings-dialog"); obj->settings_dialog = BUILDER_GET (builder, "settings-dialog");
@ -122,10 +121,9 @@ static void vn_login_show (VnLogin * obj)
g_object_unref (builder); g_object_unref (builder);
} }
// gtk_widget_show (GTK_WIDGET (obj->window));
gtk_widget_show_all (GTK_WIDGET (obj->window)); gtk_widget_show_all (GTK_WIDGET (obj->window));
gtk_widget_grab_focus (GTK_WIDGET (obj->user)); gtk_widget_grab_focus (GTK_WIDGET (obj->user));
gtk_widget_hide (obj->spinner);
gtk_widget_hide (obj->stop);
if (autologin) if (autologin)
gtk_button_clicked (obj->connect); gtk_button_clicked (obj->connect);
@ -145,13 +143,11 @@ static void vn_login_set_loading (VnLogin * obj, gboolean loading)
if (loading) if (loading)
{ {
gtk_widget_show (obj->spinner); gtk_widget_show (obj->spinner);
gtk_widget_show (obj->stop);
gtk_widget_hide (GTK_WIDGET (obj->connect)); gtk_widget_hide (GTK_WIDGET (obj->connect));
} }
else else
{ {
gtk_widget_hide (obj->spinner); gtk_widget_hide (obj->spinner);
gtk_widget_hide (obj->stop);
gtk_widget_show (GTK_WIDGET (obj->connect)); gtk_widget_show (GTK_WIDGET (obj->connect));
} }
} }
@ -378,14 +374,6 @@ void vn_login_cb_connect_clicked (GtkButton * button, VnLogin * obj)
(GThreadFunc) vn_login_thread, connect_data); (GThreadFunc) vn_login_thread, connect_data);
} }
/*
* Stops trying to connect.
*/
void vn_login_cb_stop_clicked (GtkButton * button, VnLogin * obj)
{
}
/* /*
* Closes the application when login window is destroyed. * Closes the application when login window is destroyed.
*/ */