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
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
Briefly, the shell command `./configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented

View File

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

View File

@ -43,7 +43,6 @@ if test x"$RAGEL" = x"no" ; then
fi
# 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_ARG_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/glade/modules
#usr/lib/girepository-1.0
usr/share/gir-1.0
#usr/share/gir-1.0
usr/share/glade/catalogs
usr/share/vala-0.22/vapi
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/glade/modules/libgladevn.so
#usr/lib/girepository-1.0/*
usr/share/gir-1.0/*
#usr/share/gir-1.0/*
usr/share/glade/catalogs/*
usr/share/vala-0.22/vapi/*
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)
{
GDateTime * date_time = g_date_time_new_utc (
GDateTime * date_time = g_date_time_new_local (
g_date_get_year (date)
,g_date_get_month (date)
,g_date_get_day (date)

View File

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

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\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"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Catalan\n"
@ -31,7 +31,7 @@ msgstr "El parametre no pot ser nul"
msgid "Incompatible type for this param"
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"
msgstr ""
@ -71,15 +71,15 @@ msgstr ""
msgid "The spec of the parameter"
msgstr ""
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:557
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:566
msgid "Glib Type"
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"
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"
msgstr ""
@ -87,7 +87,7 @@ msgstr ""
msgid "Whether the param value can be modified"
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"
msgstr ""
@ -95,11 +95,11 @@ msgstr ""
msgid "Whether the param value can be of type GVN_TYPE_NULL"
msgstr ""
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:578
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:587
msgid "Default Value"
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"
msgstr ""
@ -116,11 +116,11 @@ msgstr ""
msgid "No"
msgstr ""
#: ../sql/sql-render.c:420
#: ../sql/sql-render.c:413
msgid "Delimiter"
msgstr ""
#: ../sql/sql-render.c:421
#: ../sql/sql-render.c:414
msgid "The character used for delimite the name of fields, tables..."
msgstr ""
@ -265,7 +265,7 @@ msgstr ""
msgid "A column to apply the operations over it"
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"
msgstr ""
@ -281,7 +281,7 @@ msgstr ""
msgid "The referenced column index"
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"
msgstr "Nom de la columna"
@ -588,45 +588,45 @@ msgstr ""
msgid "The application identifier"
msgstr ""
#: ../vn/vn-field.c:530
#: ../vn/vn-field.c:539
msgid "The current value of the field"
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
msgid "Parameter"
msgstr ""
#: ../vn/vn-field.c:537
#: ../vn/vn-field.c:546
msgid "The param where the field can read/write its value"
msgstr ""
#: ../vn/vn-field.c:544
#: ../vn/vn-field.c:553
msgid "The iterator used to get the field param"
msgstr ""
#: ../vn/vn-field.c:551
#: ../vn/vn-field.c:560
msgid "The column name on the iterator"
msgstr ""
#: ../vn/vn-field.c:565
#: ../vn/vn-field.c:574
msgid "Whether the field value is user editable"
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"
msgstr ""
#: ../vn/vn-field.c:585 ../vn/vn-column.c:488
#: ../vn/vn-field.c:594 ../vn/vn-column.c:488
msgid "Style function"
msgstr ""
#: ../vn/vn-field.c:586
#: ../vn/vn-field.c:595
msgid ""
"A VnFieldStyleFunc to set the properties of each field depending on its value"
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
msgid "Format"
msgstr ""
@ -668,34 +668,34 @@ msgstr ""
msgid "The name of the field used for the search"
msgstr ""
#: ../vn/field/vn-date-chooser.c:319
#: ../vn/field/vn-date-chooser.c:407
msgid "Change date"
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."
msgstr ""
#: ../vn/field/vn-date-chooser.c:365
#: ../vn/field/vn-date-chooser.c:463
msgctxt "Default date format string"
msgid "%a, %d %b %Y"
msgstr ""
#: ../vn/field/vn-date-chooser.c:371
#: ../vn/field/vn-date-chooser.c:469
msgid "Show time"
msgstr ""
#: ../vn/field/vn-date-chooser.c:372
#: ../vn/field/vn-date-chooser.c:470
msgid ""
"Whether to show the hour, minute and second fields to set the time of the "
"day in the popup."
msgstr ""
#: ../vn/field/vn-date-chooser.c:380
#: ../vn/field/vn-date-chooser.c:478
msgid "Show date"
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."
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\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"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Spanish\n"
@ -33,7 +33,7 @@ msgstr "El parámetro no puede ser nulo"
msgid "Incompatible type for this param"
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"
msgstr "Valor"
@ -73,15 +73,15 @@ msgstr "Spec"
msgid "The spec of the parameter"
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"
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"
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"
msgstr "Editable"
@ -89,7 +89,7 @@ msgstr "Editable"
msgid "Whether the param value can be modified"
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"
msgstr "Nulo"
@ -97,11 +97,11 @@ msgstr "Nulo"
msgid "Whether the param value can be of type GVN_TYPE_NULL"
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"
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"
msgstr "El valor por defecto"
@ -118,11 +118,11 @@ msgstr "Sí"
msgid "No"
msgstr "No"
#: ../sql/sql-render.c:420
#: ../sql/sql-render.c:413
msgid "Delimiter"
msgstr "Delimitador"
#: ../sql/sql-render.c:421
#: ../sql/sql-render.c:414
msgid "The character used for delimite the name of fields, tables..."
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"
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"
msgstr "Iterator"
@ -289,7 +289,7 @@ msgstr "Posición"
msgid "The referenced column index"
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"
msgstr "Nombre de la columna"
@ -600,47 +600,47 @@ msgstr "Id de la aplicación"
msgid "The application identifier"
msgstr "El identificador de la aplicación"
#: ../vn/vn-field.c:530
#: ../vn/vn-field.c:539
msgid "The current value of the field"
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
msgid "Parameter"
msgstr "Parámetro"
#: ../vn/vn-field.c:537
#: ../vn/vn-field.c:546
msgid "The param where the field can read/write its value"
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"
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"
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"
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"
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"
msgstr "Función de estilo"
#: ../vn/vn-field.c:586
#: ../vn/vn-field.c:595
msgid ""
"A VnFieldStyleFunc to set the properties of each field depending on its value"
msgstr ""
"Una VnFieldStyleFunc para configurar las propiedades de cada campo dependiendo"
" de su valor"
"Una VnFieldStyleFunc para configurar las propiedades de cada campo "
"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
msgid "Format"
msgstr "Formato"
@ -682,25 +682,25 @@ msgstr "Campo"
msgid "The name of the field used for the search"
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"
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."
msgstr ""
"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"
msgid "%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"
msgstr "Mostrar tiempo"
#: ../vn/field/vn-date-chooser.c:372
#: ../vn/field/vn-date-chooser.c:470
msgid ""
"Whether to show the hour, minute and second fields to set the time of the "
"day in the popup."
@ -708,11 +708,11 @@ msgstr ""
"Si se muestran los campos para hora, minuto y segundo para indicar el "
"instante del día en el emergente"
#: ../vn/field/vn-date-chooser.c:380
#: ../vn/field/vn-date-chooser.c:478
msgid "Show date"
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."
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 ""
"A VnColumnStyleFunc to set the properties of each cell depending on its value"
msgstr ""
"Una VnColumnStyleFunc para configurar las propiedadesde cada celda dependiendo"
" de su valor"
"Una VnColumnStyleFunc para configurar las propiedadesde cada celda "
"dependiendo de su valor"
#: ../vn/column/vn-column-spin.c:238
msgid "Climb rate"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\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"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Dutch\n"
@ -33,7 +33,7 @@ msgstr ""
msgid "Incompatible type for this param"
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"
msgstr ""
@ -73,15 +73,15 @@ msgstr ""
msgid "The spec of the parameter"
msgstr ""
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:557
#: ../gvn/gvn-param.c:478 ../vn/vn-field.c:566
msgid "Glib Type"
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"
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"
msgstr ""
@ -89,7 +89,7 @@ msgstr ""
msgid "Whether the param value can be modified"
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"
msgstr ""
@ -97,11 +97,11 @@ msgstr ""
msgid "Whether the param value can be of type GVN_TYPE_NULL"
msgstr ""
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:578
#: ../gvn/gvn-param.c:499 ../vn/vn-field.c:587
msgid "Default Value"
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"
msgstr ""
@ -118,11 +118,11 @@ msgstr ""
msgid "No"
msgstr ""
#: ../sql/sql-render.c:420
#: ../sql/sql-render.c:413
msgid "Delimiter"
msgstr ""
#: ../sql/sql-render.c:421
#: ../sql/sql-render.c:414
msgid "The character used for delimite the name of fields, tables..."
msgstr ""
@ -266,7 +266,7 @@ msgstr ""
msgid "A column to apply the operations over it"
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"
msgstr ""
@ -282,7 +282,7 @@ msgstr ""
msgid "The referenced column index"
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"
msgstr ""
@ -589,45 +589,45 @@ msgstr ""
msgid "The application identifier"
msgstr ""
#: ../vn/vn-field.c:530
#: ../vn/vn-field.c:539
msgid "The current value of the field"
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
msgid "Parameter"
msgstr ""
#: ../vn/vn-field.c:537
#: ../vn/vn-field.c:546
msgid "The param where the field can read/write its value"
msgstr ""
#: ../vn/vn-field.c:544
#: ../vn/vn-field.c:553
msgid "The iterator used to get the field param"
msgstr ""
#: ../vn/vn-field.c:551
#: ../vn/vn-field.c:560
msgid "The column name on the iterator"
msgstr ""
#: ../vn/vn-field.c:565
#: ../vn/vn-field.c:574
msgid "Whether the field value is user editable"
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"
msgstr ""
#: ../vn/vn-field.c:585 ../vn/vn-column.c:488
#: ../vn/vn-field.c:594 ../vn/vn-column.c:488
msgid "Style function"
msgstr ""
#: ../vn/vn-field.c:586
#: ../vn/vn-field.c:595
msgid ""
"A VnFieldStyleFunc to set the properties of each field depending on its value"
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
msgid "Format"
msgstr ""
@ -669,34 +669,34 @@ msgstr ""
msgid "The name of the field used for the search"
msgstr ""
#: ../vn/field/vn-date-chooser.c:319
#: ../vn/field/vn-date-chooser.c:407
msgid "Change date"
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."
msgstr ""
#: ../vn/field/vn-date-chooser.c:365
#: ../vn/field/vn-date-chooser.c:463
msgctxt "Default date format string"
msgid "%a, %d %b %Y"
msgstr ""
#: ../vn/field/vn-date-chooser.c:371
#: ../vn/field/vn-date-chooser.c:469
msgid "Show time"
msgstr ""
#: ../vn/field/vn-date-chooser.c:372
#: ../vn/field/vn-date-chooser.c:470
msgid ""
"Whether to show the hour, minute and second fields to set the time of the "
"day in the popup."
msgstr ""
#: ../vn/field/vn-date-chooser.c:380
#: ../vn/field/vn-date-chooser.c:478
msgid "Show date"
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."
msgstr ""

View File

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

View File

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

View File

@ -18,6 +18,8 @@
#include "vn-date-chooser.h"
#include <db/db.h>
#define GUI_FILE _GUI_DIR"/date-chooser.glade"
#define DATE_SIZE 50
/**
@ -59,13 +61,13 @@ static void vn_date_chooser_hide_popup (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];
g_date_strftime (str, DATE_SIZE, obj->format, date);
gchar * str = g_date_time_format (datetime, obj->format);
gtk_label_set_text (obj->label, str);
g_free (str);
}
else
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)
{
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;
g_value_init (&new_value, G_TYPE_DATE);
g_value_init (&new_value, G_TYPE_DATE_TIME);
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)
obj->date = *date;
if (datetime)
{
if (gvn_value_is_null (datetime))
obj->datetime = datetime;
else
g_date_clear (&obj->date, 1);
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);
}
static void vn_date_chooser_on_day_selected (GtkCalendar * calendar, VnDateChooser * obj)
static GDateTime * vn_date_chooser_get_datetime (VnDateChooser * obj)
{
guint year;
guint month;
guint day;
GDate new_date;
GValue value = G_VALUE_INIT;
guint year, month, day, hour = 0, minute = 0;
gdouble second = 0.0;
gtk_calendar_get_date (calendar, &year, &month, &day);
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))
if (obj->show_date)
{
g_date_set_julian (&obj->date, g_date_get_julian (&new_date));
g_value_init (&value, G_TYPE_DATE);
g_value_set_boxed (&value, &obj->date);
gtk_calendar_get_date (obj->calendar, &year, &month, &day);
month++;
}
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
{
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);
@ -126,14 +154,70 @@ static void vn_date_chooser_on_day_selected (GtkCalendar * calendar, VnDateChoos
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,
GdkEventButton * event, VnDateChooser * obj)
{
gint x, y;
GtkAllocation allocation;
gdk_window_get_origin (
gtk_widget_get_window (obj->popup), &x, &y);
gdk_window_get_origin (gtk_widget_get_window (obj->popup), &x, &y);
gtk_widget_get_allocation (obj->popup, &allocation);
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
if (g_date_valid (&obj->date))
if (obj->datetime)
{
if (obj->show_date)
{
gtk_calendar_select_month (obj->calendar
,g_date_get_month (&obj->date) - 1
,g_date_get_year (&obj->date)
,g_date_time_get_month (obj->datetime) - 1
,g_date_time_get_year (obj->datetime)
);
gtk_calendar_select_day (obj->calendar,
g_date_get_day (&obj->date));
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
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
window = gtk_widget_get_window (widget);
@ -239,7 +347,6 @@ static void vn_date_chooser_on_toggled (GtkToggleButton * button, VnDateChooser
g_list_free (devices);
}
// gtk_widget_grab_focus (obj->popup);
gtk_device_grab_add (obj->popup, obj->device, TRUE);
gdk_device_grab (obj->device
,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);
}
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
enum
@ -304,12 +421,14 @@ static void vn_date_chooser_get_property (VnDateChooser * obj, guint id,
static void vn_date_chooser_init (VnDateChooser * obj)
{
GtkWidget * image;
GtkBuilder * builder;
obj->show_time = FALSE;
obj->show_date = TRUE;
obj->format = NULL;
obj->popup = NULL;
obj->device = NULL;
g_date_clear (&obj->date, 1);
obj->datetime = NULL;
obj->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
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_CALLBACK (vn_date_chooser_on_toggled), obj);
gtk_box_pack_start (GTK_BOX (obj->box),
GTK_WIDGET (obj->button), FALSE, FALSE, 0);
image = gtk_image_new_from_icon_name ("gtk-edit", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON (obj->button), image);
GTK_WIDGET (obj->button), TRUE, TRUE, 0);
g_object_set (obj->button, "relief", GTK_RELIEF_HALF, NULL);
obj->label = GTK_LABEL (gtk_label_new (NULL));
gtk_misc_set_alignment (GTK_MISC (obj->label), 0, 0.5);
gtk_box_pack_end (GTK_BOX (obj->box),
GTK_WIDGET (obj->label), TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (obj->button), GTK_WIDGET (obj->label));
obj->popup = gtk_window_new (GTK_WINDOW_POPUP);
g_object_connect (obj->popup
@ -337,14 +453,24 @@ static void vn_date_chooser_init (VnDateChooser * obj)
,NULL
);
obj->calendar = GTK_CALENDAR (gtk_calendar_new ());
g_signal_connect (obj->calendar, "day-selected-double-click",
G_CALLBACK (vn_date_chooser_on_day_selected), obj);
gtk_container_add (GTK_CONTAINER (obj->popup), GTK_WIDGET (obj->calendar));
builder = gtk_builder_new_from_file (GUI_FILE);
gtk_builder_connect_signals (builder, obj);
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)
{
if (obj->datetime)
g_date_time_unref (obj->datetime);
g_free (obj->format);
gtk_widget_destroy (obj->popup);
G_OBJECT_CLASS (vn_date_chooser_parent_class)->finalize (G_OBJECT (obj));

View File

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

View File

@ -92,7 +92,7 @@ static const GMarkupParser vn_model_parser =
vn_model_start_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,
GtkBuilder * builder, GObject * child, const gchar * tag,
GMarkupParser * parser, gpointer * data)
@ -117,12 +117,23 @@ static gboolean vn_model_buildable_custom_tag_start (GtkBuildable * buildable,
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)
{
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
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)
{
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)

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">
<property name="width_request">25</property>
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="active">True</property>
</object>
<packing>
@ -386,21 +387,6 @@
<property name="position">1</property>
</packing>
</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>
<packing>
<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->remember = BUILDER_GET (builder, "remember");
obj->connect = BUILDER_GET (builder, "connect");
obj->stop = BUILDER_GET (builder, "stop");
obj->settings_button = BUILDER_GET (builder, "settings");
obj->spinner = BUILDER_GET (builder, "spinner");
obj->settings_dialog = BUILDER_GET (builder, "settings-dialog");
@ -122,10 +121,9 @@ static void vn_login_show (VnLogin * obj)
g_object_unref (builder);
}
// gtk_widget_show (GTK_WIDGET (obj->window));
gtk_widget_show_all (GTK_WIDGET (obj->window));
gtk_widget_grab_focus (GTK_WIDGET (obj->user));
gtk_widget_hide (obj->spinner);
gtk_widget_hide (obj->stop);
if (autologin)
gtk_button_clicked (obj->connect);
@ -145,13 +143,11 @@ static void vn_login_set_loading (VnLogin * obj, gboolean loading)
if (loading)
{
gtk_widget_show (obj->spinner);
gtk_widget_show (obj->stop);
gtk_widget_hide (GTK_WIDGET (obj->connect));
}
else
{
gtk_widget_hide (obj->spinner);
gtk_widget_hide (obj->stop);
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);
}
/*
* Stops trying to connect.
*/
void vn_login_cb_stop_clicked (GtkButton * button, VnLogin * obj)
{
}
/*
* Closes the application when login window is destroyed.
*/