From 0703b8b81d9284d307e99792407e6866e8f84755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20T=2E=20Colombini=20G=C3=B3mez?= Date: Tue, 10 Jun 2014 12:48:03 +0200 Subject: [PATCH] VnHandler portado a GAction --- db/db-file-loader.c | 10 +- module/data/consulter.glade | 4 +- po/ca.po | 74 +++---- po/es.po | 74 +++---- po/nl.po | 74 +++---- vn/gui/date-chooser.glade | 30 ++- vn/vn-gui.c | 41 ++-- vn/vn-handler.c | 382 +++++++++++++++++++----------------- vn/vn-handler.h | 103 ++-------- 9 files changed, 367 insertions(+), 425 deletions(-) diff --git a/db/db-file-loader.c b/db/db-file-loader.c index ddf0fc9..9bbd798 100644 --- a/db/db-file-loader.c +++ b/db/db-file-loader.c @@ -367,27 +367,27 @@ static void db_file_loader_thread_download (File * file, DbFileLoader * obj) if (!obj->priv->addr && !db_file_loader_resolve_host (obj, cancel, &error)) { g_mutex_unlock (obj->priv->mutex); - goto final; + goto exit; } g_mutex_unlock (obj->priv->mutex); if (!(connection = db_file_loader_connect (obj, cancel, &error))) - goto final; + goto exit; request = db_file_loader_create_request (obj, file->name); send_stream = g_io_stream_get_output_stream (connection); if (0 > g_output_stream_write (send_stream, request, strlen (request), cancel, &error) || !g_output_stream_close (send_stream, cancel, &error)) - goto final; + goto exit; receive_stream = g_data_input_stream_new (g_io_stream_get_input_stream (connection)); g_data_input_stream_set_newline_type (receive_stream, G_DATA_STREAM_NEWLINE_TYPE_CR_LF); status_line = g_data_input_stream_read_line (receive_stream, &len, cancel, &error); if (!status_line) - goto final; + goto exit; split = g_strsplit (status_line, " ", -1); guint status = g_strv_length (split) >= 2 ? atoi (split[1]) : 0; @@ -454,7 +454,7 @@ static void db_file_loader_thread_download (File * file, DbFileLoader * obj) if (data) file->data = g_bytes_new_take (data, len); -final: +exit: g_free (request); g_free (status_line); diff --git a/module/data/consulter.glade b/module/data/consulter.glade index 7bd4958..7d0935a 100644 --- a/module/data/consulter.glade +++ b/module/data/consulter.glade @@ -1,5 +1,5 @@ - + @@ -220,8 +220,6 @@ True False - 6 - end VN_HANDLER_SHOW_REFRESH | VN_HANDLER_SHOW_UNDO | VN_HANDLER_SHOW_SAVE | VN_HANDLER_SHOW_REMOVE | VN_HANDLER_SHOW_ADD | VN_HANDLER_SHOW_SCROLL diff --git a/po/ca.po b/po/ca.po index baaec03..152855d 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hedera 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-05-27 10:09+0200\n" +"POT-Creation-Date: 2014-06-10 12:46+0200\n" "PO-Revision-Date: 2013-06-04 13:38+0200\n" "Last-Translator: Alejandro T. Colombini Gómez \n" "Language-Team: Catalan\n" @@ -162,7 +162,7 @@ msgstr "Recordar" msgid "Wether to rememeber the selection when model is refreshed" msgstr "" -#: ../db/db-model.c:3429 ../db/db-request.c:454 ../vn/vn-gui.c:1474 +#: ../db/db-model.c:3429 ../db/db-request.c:454 ../vn/vn-gui.c:1470 #: ../vn/vn-form.c:245 msgid "Connection" msgstr "" @@ -423,59 +423,59 @@ msgstr "" msgid "The maximal size for the contents of the cache directory" msgstr "" -#: ../vn/vn-gui.c:517 +#: ../vn/vn-gui.c:516 msgid "Connection has been lost. Do you want to reconnect?" msgstr "" -#: ../vn/vn-gui.c:524 +#: ../vn/vn-gui.c:523 msgid "An error occurred in the connection." msgstr "" -#: ../vn/vn-gui.c:527 +#: ../vn/vn-gui.c:526 msgid "Database error" msgstr "" -#: ../vn/vn-gui.c:534 +#: ../vn/vn-gui.c:533 msgid "Unknown error" msgstr "" -#: ../vn/vn-gui.c:866 +#: ../vn/vn-gui.c:865 msgid "Closing connection" msgstr "" -#: ../vn/vn-gui.c:868 +#: ../vn/vn-gui.c:867 msgid "Transaction started" msgstr "" -#: ../vn/vn-gui.c:870 +#: ../vn/vn-gui.c:869 msgid "Connecting" msgstr "" -#: ../vn/vn-gui.c:872 +#: ../vn/vn-gui.c:871 msgid "Connection lost" msgstr "" -#: ../vn/vn-gui.c:874 +#: ../vn/vn-gui.c:873 msgid "Connection closed" msgstr "" -#: ../vn/vn-gui.c:876 ../vn/field/vn-http-image.c:116 +#: ../vn/vn-gui.c:875 ../vn/field/vn-http-image.c:116 msgid "Loading" msgstr "" -#: ../vn/vn-gui.c:878 ../vn/gui/main.glade.h:2 +#: ../vn/vn-gui.c:877 ../vn/gui/main.glade.h:2 msgid "Ready" msgstr "" -#: ../vn/vn-gui.c:1475 +#: ../vn/vn-gui.c:1471 msgid "The connection used by Gui" msgstr "" -#: ../vn/vn-gui.c:1481 +#: ../vn/vn-gui.c:1477 msgid "Application" msgstr "" -#: ../vn/vn-gui.c:1482 +#: ../vn/vn-gui.c:1478 msgid "The application handler for the entire program" msgstr "" @@ -483,63 +483,67 @@ msgstr "" msgid "The iterator used by VnGrid" msgstr "" -#: ../vn/vn-handler.c:65 +#: ../vn/vn-handler.c:73 msgid "Are you sure you want to delete the current selection?" msgstr "" -#: ../vn/vn-handler.c:90 -msgid "Are you sure that you want to undo all changes?" +#: ../vn/vn-handler.c:81 +msgid "Are you sure you want to save the changes?" msgstr "" -#: ../vn/vn-handler.c:219 +#: ../vn/vn-handler.c:87 +msgid "Are you sure you want to undo all changes?" +msgstr "" + +#: ../vn/vn-handler.c:213 msgid "Undo changes" msgstr "" -#: ../vn/vn-handler.c:226 +#: ../vn/vn-handler.c:216 msgid "Save changes" msgstr "" -#: ../vn/vn-handler.c:233 +#: ../vn/vn-handler.c:219 msgid "Refresh data" msgstr "" -#: ../vn/vn-handler.c:240 +#: ../vn/vn-handler.c:222 msgid "Remove record" msgstr "" -#: ../vn/vn-handler.c:247 +#: ../vn/vn-handler.c:225 msgid "Add record" msgstr "" -#: ../vn/vn-handler.c:254 +#: ../vn/vn-handler.c:228 msgid "Move to the first row" msgstr "" -#: ../vn/vn-handler.c:261 +#: ../vn/vn-handler.c:231 msgid "Move to the previous row" msgstr "" -#: ../vn/vn-handler.c:268 +#: ../vn/vn-handler.c:234 msgid "Move to the next row" msgstr "" -#: ../vn/vn-handler.c:275 +#: ../vn/vn-handler.c:237 msgid "Move to the last row" msgstr "" -#: ../vn/vn-handler.c:514 +#: ../vn/vn-handler.c:495 msgid "Show flags" msgstr "" -#: ../vn/vn-handler.c:515 +#: ../vn/vn-handler.c:496 msgid "Sets the buttons that will be shown on the interface" msgstr "" -#: ../vn/vn-handler.c:522 +#: ../vn/vn-handler.c:503 msgid "Simple record" msgstr "" -#: ../vn/vn-handler.c:523 +#: ../vn/vn-handler.c:504 msgid "Sets if it is used to handle a iterator with a single record" msgstr "" @@ -1001,7 +1005,7 @@ msgstr "" msgid "Add or remove links" msgstr "" -#: ../glade/glade-db-model-editor.c:53 +#: ../glade/glade-db-model-editor.c:54 msgid "List of parameters linked to the model" msgstr "" @@ -1091,11 +1095,11 @@ msgstr "" msgid "Immediate changes" msgstr "" -#: ../module/src/vn-consulter.c:234 +#: ../module/src/vn-consulter.c:233 msgid "Type or select a query" msgstr "" -#: ../module/src/vn-consulter.c:236 +#: ../module/src/vn-consulter.c:235 msgid "Message" msgstr "" diff --git a/po/es.po b/po/es.po index 5621b8b..7cdcffc 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: hedera 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-05-27 10:09+0200\n" +"POT-Creation-Date: 2014-06-10 12:46+0200\n" "PO-Revision-Date: 2013-06-04 13:36+0200\n" "Last-Translator: Alejandro T. Colombini Gómez \n" "Language-Team: Spanish\n" @@ -164,7 +164,7 @@ msgid "Wether to rememeber the selection when model is refreshed" msgstr "" "Si se recordará o no la fila seleccionado cuando se refresque el modelo" -#: ../db/db-model.c:3429 ../db/db-request.c:454 ../vn/vn-gui.c:1474 +#: ../db/db-model.c:3429 ../db/db-request.c:454 ../vn/vn-gui.c:1470 #: ../vn/vn-form.c:245 msgid "Connection" msgstr "Conexión" @@ -435,59 +435,59 @@ msgstr "Tamaño máximo de la caché" msgid "The maximal size for the contents of the cache directory" msgstr "El tamaño máximo para los contenidos del directorio de caché" -#: ../vn/vn-gui.c:517 +#: ../vn/vn-gui.c:516 msgid "Connection has been lost. Do you want to reconnect?" msgstr "Se ha perdido la conexión. ¿Quieres reconectar?" -#: ../vn/vn-gui.c:524 +#: ../vn/vn-gui.c:523 msgid "An error occurred in the connection." msgstr "Ha habido un error en la conexión." -#: ../vn/vn-gui.c:527 +#: ../vn/vn-gui.c:526 msgid "Database error" msgstr "Error en la base de datos" -#: ../vn/vn-gui.c:534 +#: ../vn/vn-gui.c:533 msgid "Unknown error" msgstr "Error desconocido" -#: ../vn/vn-gui.c:866 +#: ../vn/vn-gui.c:865 msgid "Closing connection" msgstr "Cerrando conexión" -#: ../vn/vn-gui.c:868 +#: ../vn/vn-gui.c:867 msgid "Transaction started" msgstr "Transacción iniciada" -#: ../vn/vn-gui.c:870 +#: ../vn/vn-gui.c:869 msgid "Connecting" msgstr "Conectando" -#: ../vn/vn-gui.c:872 +#: ../vn/vn-gui.c:871 msgid "Connection lost" msgstr "Conexión perdida" -#: ../vn/vn-gui.c:874 +#: ../vn/vn-gui.c:873 msgid "Connection closed" msgstr "Conexión cerrada" -#: ../vn/vn-gui.c:876 ../vn/field/vn-http-image.c:116 +#: ../vn/vn-gui.c:875 ../vn/field/vn-http-image.c:116 msgid "Loading" msgstr "Cargando" -#: ../vn/vn-gui.c:878 ../vn/gui/main.glade.h:2 +#: ../vn/vn-gui.c:877 ../vn/gui/main.glade.h:2 msgid "Ready" msgstr "Listo" -#: ../vn/vn-gui.c:1475 +#: ../vn/vn-gui.c:1471 msgid "The connection used by Gui" msgstr "La conexión empleada por Gui" -#: ../vn/vn-gui.c:1481 +#: ../vn/vn-gui.c:1477 msgid "Application" msgstr "Aplicación" -#: ../vn/vn-gui.c:1482 +#: ../vn/vn-gui.c:1478 msgid "The application handler for the entire program" msgstr "El manejador de la aplicación para todo el programa" @@ -495,63 +495,67 @@ msgstr "El manejador de la aplicación para todo el programa" msgid "The iterator used by VnGrid" msgstr "El Iterator empleado por VnGrid" -#: ../vn/vn-handler.c:65 +#: ../vn/vn-handler.c:73 msgid "Are you sure you want to delete the current selection?" msgstr "¿Estás seguro de que quieres eliminar los registros seleccionados?" -#: ../vn/vn-handler.c:90 -msgid "Are you sure that you want to undo all changes?" +#: ../vn/vn-handler.c:81 +msgid "Are you sure you want to save the changes?" +msgstr "¿Estás seguro de que quieres guardar los cambios?" + +#: ../vn/vn-handler.c:87 +msgid "Are you sure you want to undo all changes?" msgstr "¿Estás seguro de que quieres deshacer todos los cambios?" -#: ../vn/vn-handler.c:219 +#: ../vn/vn-handler.c:213 msgid "Undo changes" msgstr "Deshacer cambios" -#: ../vn/vn-handler.c:226 +#: ../vn/vn-handler.c:216 msgid "Save changes" msgstr "Guardar cambios" -#: ../vn/vn-handler.c:233 +#: ../vn/vn-handler.c:219 msgid "Refresh data" msgstr "Refrescar datos" -#: ../vn/vn-handler.c:240 +#: ../vn/vn-handler.c:222 msgid "Remove record" msgstr "Eliminar registro" -#: ../vn/vn-handler.c:247 +#: ../vn/vn-handler.c:225 msgid "Add record" msgstr "Añadir registro" -#: ../vn/vn-handler.c:254 +#: ../vn/vn-handler.c:228 msgid "Move to the first row" msgstr "Mover a la primera fila" -#: ../vn/vn-handler.c:261 +#: ../vn/vn-handler.c:231 msgid "Move to the previous row" msgstr "Mover a la fila anterior" -#: ../vn/vn-handler.c:268 +#: ../vn/vn-handler.c:234 msgid "Move to the next row" msgstr "Mover a la siguiente fila" -#: ../vn/vn-handler.c:275 +#: ../vn/vn-handler.c:237 msgid "Move to the last row" msgstr "Mover a la última fila" -#: ../vn/vn-handler.c:514 +#: ../vn/vn-handler.c:495 msgid "Show flags" msgstr "Visibilidad" -#: ../vn/vn-handler.c:515 +#: ../vn/vn-handler.c:496 msgid "Sets the buttons that will be shown on the interface" msgstr "Indica los botones que se mostrarán en la interfaz" -#: ../vn/vn-handler.c:522 +#: ../vn/vn-handler.c:503 msgid "Simple record" msgstr "Registro simple" -#: ../vn/vn-handler.c:523 +#: ../vn/vn-handler.c:504 msgid "Sets if it is used to handle a iterator with a single record" msgstr "Indica si se utiliza para manejar solo un registro" @@ -1040,7 +1044,7 @@ msgstr "Necesitas crear por lo menos un GvnParam o algun objeto derivado" msgid "Add or remove links" msgstr "Añadir o quitar enlaces" -#: ../glade/glade-db-model-editor.c:53 +#: ../glade/glade-db-model-editor.c:54 msgid "List of parameters linked to the model" msgstr "Lista de parámetros vinculados al modelo" @@ -1130,11 +1134,11 @@ msgstr "Consulta:" msgid "Immediate changes" msgstr "Cambios inmediatos" -#: ../module/src/vn-consulter.c:234 +#: ../module/src/vn-consulter.c:233 msgid "Type or select a query" msgstr "Escribe o elige una consulta" -#: ../module/src/vn-consulter.c:236 +#: ../module/src/vn-consulter.c:235 msgid "Message" msgstr "Mensaje" diff --git a/po/nl.po b/po/nl.po index e14c144..346b057 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: hedera 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-05-27 10:09+0200\n" +"POT-Creation-Date: 2014-06-10 12:46+0200\n" "PO-Revision-Date: 2012-10-09 11:38+0200\n" "Last-Translator: Alejandro T. Colombini Gómez \n" "Language-Team: Dutch\n" @@ -163,7 +163,7 @@ msgstr "" msgid "Wether to rememeber the selection when model is refreshed" msgstr "" -#: ../db/db-model.c:3429 ../db/db-request.c:454 ../vn/vn-gui.c:1474 +#: ../db/db-model.c:3429 ../db/db-request.c:454 ../vn/vn-gui.c:1470 #: ../vn/vn-form.c:245 msgid "Connection" msgstr "" @@ -424,59 +424,59 @@ msgstr "" msgid "The maximal size for the contents of the cache directory" msgstr "" -#: ../vn/vn-gui.c:517 +#: ../vn/vn-gui.c:516 msgid "Connection has been lost. Do you want to reconnect?" msgstr "" -#: ../vn/vn-gui.c:524 +#: ../vn/vn-gui.c:523 msgid "An error occurred in the connection." msgstr "" -#: ../vn/vn-gui.c:527 +#: ../vn/vn-gui.c:526 msgid "Database error" msgstr "" -#: ../vn/vn-gui.c:534 +#: ../vn/vn-gui.c:533 msgid "Unknown error" msgstr "" -#: ../vn/vn-gui.c:866 +#: ../vn/vn-gui.c:865 msgid "Closing connection" msgstr "" -#: ../vn/vn-gui.c:868 +#: ../vn/vn-gui.c:867 msgid "Transaction started" msgstr "" -#: ../vn/vn-gui.c:870 +#: ../vn/vn-gui.c:869 msgid "Connecting" msgstr "" -#: ../vn/vn-gui.c:872 +#: ../vn/vn-gui.c:871 msgid "Connection lost" msgstr "" -#: ../vn/vn-gui.c:874 +#: ../vn/vn-gui.c:873 msgid "Connection closed" msgstr "" -#: ../vn/vn-gui.c:876 ../vn/field/vn-http-image.c:116 +#: ../vn/vn-gui.c:875 ../vn/field/vn-http-image.c:116 msgid "Loading" msgstr "" -#: ../vn/vn-gui.c:878 ../vn/gui/main.glade.h:2 +#: ../vn/vn-gui.c:877 ../vn/gui/main.glade.h:2 msgid "Ready" msgstr "" -#: ../vn/vn-gui.c:1475 +#: ../vn/vn-gui.c:1471 msgid "The connection used by Gui" msgstr "" -#: ../vn/vn-gui.c:1481 +#: ../vn/vn-gui.c:1477 msgid "Application" msgstr "" -#: ../vn/vn-gui.c:1482 +#: ../vn/vn-gui.c:1478 msgid "The application handler for the entire program" msgstr "" @@ -484,63 +484,67 @@ msgstr "" msgid "The iterator used by VnGrid" msgstr "" -#: ../vn/vn-handler.c:65 +#: ../vn/vn-handler.c:73 msgid "Are you sure you want to delete the current selection?" msgstr "" -#: ../vn/vn-handler.c:90 -msgid "Are you sure that you want to undo all changes?" +#: ../vn/vn-handler.c:81 +msgid "Are you sure you want to save the changes?" msgstr "" -#: ../vn/vn-handler.c:219 +#: ../vn/vn-handler.c:87 +msgid "Are you sure you want to undo all changes?" +msgstr "" + +#: ../vn/vn-handler.c:213 msgid "Undo changes" msgstr "" -#: ../vn/vn-handler.c:226 +#: ../vn/vn-handler.c:216 msgid "Save changes" msgstr "" -#: ../vn/vn-handler.c:233 +#: ../vn/vn-handler.c:219 msgid "Refresh data" msgstr "" -#: ../vn/vn-handler.c:240 +#: ../vn/vn-handler.c:222 msgid "Remove record" msgstr "" -#: ../vn/vn-handler.c:247 +#: ../vn/vn-handler.c:225 msgid "Add record" msgstr "" -#: ../vn/vn-handler.c:254 +#: ../vn/vn-handler.c:228 msgid "Move to the first row" msgstr "" -#: ../vn/vn-handler.c:261 +#: ../vn/vn-handler.c:231 msgid "Move to the previous row" msgstr "" -#: ../vn/vn-handler.c:268 +#: ../vn/vn-handler.c:234 msgid "Move to the next row" msgstr "" -#: ../vn/vn-handler.c:275 +#: ../vn/vn-handler.c:237 msgid "Move to the last row" msgstr "" -#: ../vn/vn-handler.c:514 +#: ../vn/vn-handler.c:495 msgid "Show flags" msgstr "" -#: ../vn/vn-handler.c:515 +#: ../vn/vn-handler.c:496 msgid "Sets the buttons that will be shown on the interface" msgstr "" -#: ../vn/vn-handler.c:522 +#: ../vn/vn-handler.c:503 msgid "Simple record" msgstr "" -#: ../vn/vn-handler.c:523 +#: ../vn/vn-handler.c:504 msgid "Sets if it is used to handle a iterator with a single record" msgstr "" @@ -1001,7 +1005,7 @@ msgstr "" msgid "Add or remove links" msgstr "" -#: ../glade/glade-db-model-editor.c:53 +#: ../glade/glade-db-model-editor.c:54 msgid "List of parameters linked to the model" msgstr "" @@ -1091,10 +1095,10 @@ msgstr "" msgid "Immediate changes" msgstr "" -#: ../module/src/vn-consulter.c:234 +#: ../module/src/vn-consulter.c:233 msgid "Type or select a query" msgstr "" -#: ../module/src/vn-consulter.c:236 +#: ../module/src/vn-consulter.c:235 msgid "Message" msgstr "" diff --git a/vn/gui/date-chooser.glade b/vn/gui/date-chooser.glade index 6792649..48e85f8 100644 --- a/vn/gui/date-chooser.glade +++ b/vn/gui/date-chooser.glade @@ -1,11 +1,22 @@ + - + 23 1 10 + + 59 + 1 + 10 + + + 59 + 1 + 10 + True False @@ -19,7 +30,7 @@ True expand - + OK True True @@ -27,7 +38,7 @@ - True + False True 0 @@ -94,7 +105,6 @@ True 0.5 - True vertical hour True @@ -124,7 +134,6 @@ True 0.5 - True vertical minute True @@ -154,7 +163,6 @@ True 0.5 - True vertical second True @@ -174,14 +182,4 @@ - - 59 - 1 - 10 - - - 59 - 1 - 10 - diff --git a/vn/vn-gui.c b/vn/vn-gui.c index bf14af8..1dfed6a 100644 --- a/vn/vn-gui.c +++ b/vn/vn-gui.c @@ -41,27 +41,6 @@ **/ G_DEFINE_TYPE (VnGui, vn_gui, G_TYPE_OBJECT); -// TODO global en vn-actions.h? -void vn_gui_on_logout_activated (GSimpleAction * a, GVariant * v, gpointer obj); -void vn_gui_on_open_activated (GSimpleAction * a, GVariant * v, gpointer obj); -void vn_gui_on_about_activated (GSimpleAction * a, GVariant * v, gpointer obj); -void vn_gui_on_exit_activated (GSimpleAction * a, GVariant * v, gpointer obj); - -static const GActionEntry app_entries[] = -{ - {"logout", vn_gui_on_logout_activated} - ,{"connect", vn_gui_on_open_activated} - ,{"about", vn_gui_on_about_activated} - ,{"quit", vn_gui_on_exit_activated} -}; - -void vn_gui_on_close_tab_activated (GSimpleAction * a, GVariant * v, gpointer obj); - -static const GActionEntry win_entries[] = -{ - {"close", vn_gui_on_close_tab_activated} -}; - struct _VnWindow { VnGui * obj; @@ -98,6 +77,26 @@ typedef struct } GuiData; +void vn_gui_on_logout_activated (GSimpleAction * a, GVariant * v, gpointer obj); +void vn_gui_on_open_activated (GSimpleAction * a, GVariant * v, gpointer obj); +void vn_gui_on_about_activated (GSimpleAction * a, GVariant * v, gpointer obj); +void vn_gui_on_exit_activated (GSimpleAction * a, GVariant * v, gpointer obj); + +static const GActionEntry app_entries[] = +{ + {"logout", vn_gui_on_logout_activated} + ,{"connect", vn_gui_on_open_activated} + ,{"about", vn_gui_on_about_activated} + ,{"quit", vn_gui_on_exit_activated} +}; + +void vn_gui_on_close_tab_activated (GSimpleAction * a, GVariant * v, gpointer obj); + +static const GActionEntry win_entries[] = +{ + {"close", vn_gui_on_close_tab_activated} +}; + static void vn_gui_reconnect (VnGui * obj); static void vn_gui_on_conn_error (DbConn * conn, const GError * error, VnGui * obj); static void vn_gui_on_conn_status_changed (DbConn * conn, DbConnStatus status, VnGui * obj); diff --git a/vn/vn-handler.c b/vn/vn-handler.c index 092d134..b40df20 100644 --- a/vn/vn-handler.c +++ b/vn/vn-handler.c @@ -17,7 +17,9 @@ #include "vn-handler.h" -G_DEFINE_TYPE (VnHandler, vn_handler, GTK_TYPE_BUTTON_BOX); +#define ACTION_GROUP_NAME "handler" + +G_DEFINE_TYPE (VnHandler, vn_handler, GTK_TYPE_BIN); /** * vn_handler_new: @@ -46,63 +48,55 @@ GtkWidget * vn_handler_new_with_iterator (DbIterator * iterator) //+++++++++++++++++++++++++++++++++++++++++++++++++++ Private -static void vn_handler_on_add_activated (GtkAction * action, VnHandler * obj) +static gboolean vn_handler_dialog (VnHandler * obj, gchar * message) { - db_iterator_insert (obj->iterator); -} - -static void vn_handler_on_remove_activated (GtkAction * action, VnHandler * obj) -{ - GtkWidget * toplevel; - GtkWidget * dialog; - - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (obj)); - - dialog = gtk_message_dialog_new (GTK_WINDOW (toplevel) + GtkWidget * toplevel = gtk_widget_get_toplevel (GTK_WIDGET (obj)), + * dialog = gtk_message_dialog_new (GTK_WINDOW (toplevel) ,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT ,GTK_MESSAGE_QUESTION ,GTK_BUTTONS_OK_CANCEL - ,_("Are you sure you want to delete the current selection?") + ,"%s" + ,message ); - - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) - db_iterator_delete (obj->iterator); - + gint response = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); + return response == GTK_RESPONSE_OK; } -static void vn_handler_on_save_activated (GtkAction * action, VnHandler * obj) +static void vn_handler_on_add_activated (GSimpleAction * a, GVariant * p, gpointer obj) { - db_iterator_perform_operations (obj->iterator); + db_iterator_insert (VN_HANDLER (obj)->iterator); } -static void vn_handler_on_undo_activated (GtkAction * action, VnHandler * obj) +static void vn_handler_on_remove_activated (GSimpleAction * a, GVariant * p, gpointer obj) { - GtkWidget * toplevel; - GtkWidget * dialog; - - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (obj)); - - dialog = gtk_message_dialog_new (GTK_WINDOW (toplevel) - ,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT - ,GTK_MESSAGE_QUESTION - ,GTK_BUTTONS_OK_CANCEL - ,_("Are you sure that you want to undo all changes?") - ); - - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) - db_iterator_reverse_operations (obj->iterator); - - gtk_widget_destroy (dialog); + if (db_iterator_get_mode (VN_HANDLER (obj)->iterator) == DB_ITERATOR_MODE_ON_DEMAND + || vn_handler_dialog (obj, _("Are you sure you want to delete the current selection?"))) + db_iterator_delete (VN_HANDLER (obj)->iterator); } -static void vn_handler_on_refresh_activated (GtkAction * action, VnHandler * obj) +static void vn_handler_on_save_activated (GSimpleAction * a, GVariant * p, gpointer obj) { - db_iterator_refresh (obj->iterator); + if (db_iterator_get_mode (VN_HANDLER (obj)->iterator) != DB_ITERATOR_MODE_ON_DEMAND) + db_iterator_perform_operations (VN_HANDLER (obj)->iterator); + else if (vn_handler_dialog (obj, _("Are you sure you want to save the changes?"))) + db_iterator_perform_operations (VN_HANDLER (obj)->iterator); } -static void vn_handler_on_move_activated (GtkAction * action, VnHandler * obj) +static void vn_handler_on_undo_activated (GSimpleAction * a, GVariant * p, gpointer obj) { + if (vn_handler_dialog (obj, _("Are you sure you want to undo all changes?"))) + db_iterator_reverse_operations (VN_HANDLER (obj)->iterator); +} + +static void vn_handler_on_refresh_activated (GSimpleAction * a, GVariant * p, gpointer obj) +{ + db_iterator_refresh (VN_HANDLER (obj)->iterator); +} + +static void vn_handler_on_move_activated (GSimpleAction * action, GVariant * p, gpointer o) +{ + VnHandler * obj = o; DbIteratorMove move; if (action == obj->move_previous) @@ -119,30 +113,30 @@ static void vn_handler_on_move_activated (GtkAction * action, VnHandler * obj) static void vn_handler_refresh_save_undo_status (VnHandler * obj) { - gboolean sensitive = obj->iterator + gboolean enabled = obj->iterator && db_iterator_has_pending_operations (obj->iterator); - + if (obj->show_flags & VN_HANDLER_SHOW_SAVE) - gtk_action_set_sensitive (obj->save, sensitive); + g_simple_action_set_enabled (obj->save, enabled); if (obj->show_flags & VN_HANDLER_SHOW_UNDO) - gtk_action_set_sensitive (obj->undo, sensitive); + g_simple_action_set_enabled (obj->undo, enabled); } static void vn_handler_refresh_scroll_status (VnHandler * obj) { if (obj->show_flags & VN_HANDLER_SHOW_SCROLL) { - gboolean sensitive; + gboolean enabled; gint row = db_iterator_get_row (obj->iterator); - sensitive = row > 0; - gtk_action_set_sensitive (obj->move_first, sensitive); - gtk_action_set_sensitive (obj->move_previous, sensitive); + enabled = row > 0; + g_simple_action_set_enabled (obj->move_first, enabled); + g_simple_action_set_enabled (obj->move_previous, enabled); - sensitive = row != -1 && row < db_iterator_get_nrows (obj->iterator) - 1; - gtk_action_set_sensitive (obj->move_next, sensitive); - gtk_action_set_sensitive (obj->move_last, sensitive); + enabled = row != -1 && row < db_iterator_get_nrows (obj->iterator) - 1; + g_simple_action_set_enabled (obj->move_next, enabled); + g_simple_action_set_enabled (obj->move_last, enabled); } } @@ -150,13 +144,13 @@ static void vn_handler_on_data_changed (DbIterator * iterator, VnHandler * obj) { if (obj->show_flags & VN_HANDLER_SHOW_ADD) { - gboolean sensitive = + gboolean enabled = db_iterator_get_update_flags (iterator) & DB_MODEL_INSERT && (db_iterator_get_nrows (iterator) < 1 || !obj->simple_record); - gtk_action_set_sensitive (obj->add, sensitive); + g_simple_action_set_enabled (obj->add, enabled); } - + vn_handler_refresh_save_undo_status (obj); vn_handler_refresh_scroll_status (obj); } @@ -165,11 +159,11 @@ static void vn_handler_on_row_num_changed (DbIterator * iterator, VnHandler * ob { if (obj->show_flags & VN_HANDLER_SHOW_REMOVE) { - gboolean sensitive = + gboolean enabled = db_iterator_get_update_flags (iterator) & DB_MODEL_DELETE && db_iterator_get_nrows (iterator) > 0; - gtk_action_set_sensitive (obj->remove, sensitive); + g_simple_action_set_enabled (obj->remove, enabled); } vn_handler_refresh_scroll_status (obj); @@ -180,9 +174,21 @@ static void vn_handler_on_operations_done (DbIterator * iterator, VnHandler * ob vn_handler_refresh_save_undo_status (obj); } +static void action_group_set_enabled (GActionGroup * group, gboolean enabled) +{ + gint i; + gchar ** actions = g_action_group_list_actions (group); + + for (i = 0; actions[i]; i++) + { + GAction * a = g_action_map_lookup_action (G_ACTION_MAP (group), actions[i]); + g_simple_action_set_enabled (G_SIMPLE_ACTION (a), enabled); + } +} + static void vn_handler_on_status_changed (DbIterator * iterator, gboolean ready, VnHandler * obj) { - gtk_action_group_set_sensitive (obj->group, ready); + action_group_set_enabled (obj->group, ready); vn_handler_on_row_num_changed (iterator, obj); vn_handler_on_data_changed (iterator, obj); } @@ -190,12 +196,49 @@ static void vn_handler_on_status_changed (DbIterator * iterator, gboolean ready, static void vn_handler_refresh_status (VnHandler * obj) { if (!obj->iterator) - gtk_action_group_set_sensitive (obj->group, FALSE); + action_group_set_enabled (obj->group, FALSE); else vn_handler_on_status_changed (obj->iterator, db_iterator_is_ready (obj->iterator), obj); } +static struct +{ + gchar * icon; + gchar * tooltip; +} +actions_data[] = +{ + { + "edit-undo-symbolic" + ,N_("Undo changes") + },{ + "document-save-symbolic" + ,N_("Save changes") + },{ + "view-refresh-symbolic" + ,N_("Refresh data") + },{ + "list-remove-symbolic" + ,N_("Remove record") + },{ + "list-add-symbolic" + ,N_("Add record") + },{ + "go-first-symbolic" + ,N_("Move to the first row") + },{ + "go-previous-symbolic" + ,N_("Move to the previous row") + },{ + "go-next-symbolic" + ,N_("Move to the next row") + },{ + "go-last-symbolic" + ,N_("Move to the last row") + } +}; + static VnHandlerShowFlags entries_flags[] = { VN_HANDLER_SHOW_UNDO @@ -209,71 +252,35 @@ static VnHandlerShowFlags entries_flags[] = ,VN_HANDLER_SHOW_SCROLL }; -static GtkActionEntry entries[] = +static GActionEntry entries[] = { { "undo" - ,"edit-undo" - ,NULL - ,NULL - ,N_("Undo changes") - ,G_CALLBACK (vn_handler_on_undo_activated) + ,vn_handler_on_undo_activated },{ "save" - ,"document-save" - ,NULL - ,NULL - ,N_("Save changes") - ,G_CALLBACK (vn_handler_on_save_activated) + ,vn_handler_on_save_activated },{ "refresh" - ,"view-refresh" - ,NULL - ,NULL - ,N_("Refresh data") - ,G_CALLBACK (vn_handler_on_refresh_activated) + ,vn_handler_on_refresh_activated },{ "remove" - ,"list-remove" - ,NULL - ,NULL - ,N_("Remove record") - ,G_CALLBACK (vn_handler_on_remove_activated) + ,vn_handler_on_remove_activated },{ "add" - ,"list-add" - ,NULL - ,NULL - ,N_("Add record") - ,G_CALLBACK (vn_handler_on_add_activated) + ,vn_handler_on_add_activated },{ "move-first" - ,"go-first" - ,NULL - ,NULL - ,N_("Move to the first row") - ,G_CALLBACK (vn_handler_on_move_activated) + ,vn_handler_on_move_activated },{ "move-previous" - ,"go-previous" - ,NULL - ,NULL - ,N_("Move to the previous row") - ,G_CALLBACK (vn_handler_on_move_activated) + ,vn_handler_on_move_activated },{ "move-next" - ,"go-next" - ,NULL - ,NULL - ,N_("Move to the next row") - ,G_CALLBACK (vn_handler_on_move_activated) + ,vn_handler_on_move_activated },{ "move-last" - ,"go-last" - ,NULL - ,NULL - ,N_("Move to the last row") - ,G_CALLBACK (vn_handler_on_move_activated) + ,vn_handler_on_move_activated } }; @@ -281,6 +288,55 @@ static guint n_entries = G_N_ELEMENTS (entries); //+++++++++++++++++++++++++++++++++++++++++++++++++++ Public +/** + * vn_handler_set_show_flags: + * @obj: a #VnHandler + * @show_flags: the buttons to be shown + * + * Sets the buttons that will be shown on the interface. + **/ +void vn_handler_set_show_flags (VnHandler * obj, VnHandlerShowFlags show_flags) +{ + gint i; + GList * list = gtk_container_get_children (GTK_CONTAINER (obj->buttons)), + * l = list; + obj->show_flags = show_flags; + + for (i = 0; i < n_entries && l; i++) + { + GtkWidget * button = l->data; + + if (obj->show_flags & entries_flags[i]) + gtk_widget_show (button); + else + gtk_widget_hide (button); + + l = l->next; + } + + if (obj->show_flags & VN_HANDLER_SHOW_ADD) + obj->add = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "add")); + + if (obj->show_flags & VN_HANDLER_SHOW_REMOVE) + obj->remove = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "remove")); + + if (obj->show_flags & VN_HANDLER_SHOW_SAVE) + obj->save = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "save")); + + if (obj->show_flags & VN_HANDLER_SHOW_UNDO) + obj->undo = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "undo")); + + if (obj->show_flags & VN_HANDLER_SHOW_SCROLL) + { + obj->move_first = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "move-first")); + obj->move_previous = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "move-previous")); + obj->move_next = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "move-next")); + obj->move_last = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (obj->group), "move-last")); + } + + vn_handler_refresh_status (obj); +} + /** * vn_handler_get_iterator: * @obj: a #VnHandler @@ -332,71 +388,6 @@ void vn_handler_set_iterator (VnHandler * obj, DbIterator * iterator) vn_handler_refresh_status (obj); } -/** - * vn_handler_set_show_flags: - * @obj: a #VnHandler - * @show_flags: the buttons to be shown - * - * Sets the buttons that will be shown on the interface. - **/ -void vn_handler_set_show_flags (VnHandler * obj, VnHandlerShowFlags show_flags) -{ - gint i; - gint items; - GList * j; - - g_return_if_fail (VN_IS_HANDLER (obj)); - - for (j = gtk_action_group_list_actions (obj->group); j; j = j->next) - gtk_action_group_remove_action (obj->group, j->data); - - items = gtk_toolbar_get_n_items (obj->toolbar); - - for (i = 0; i < items; i++) - { - GtkToolItem * tool_item = gtk_toolbar_get_nth_item (obj->toolbar, 0); - gtk_container_remove (GTK_CONTAINER (obj->toolbar), GTK_WIDGET (tool_item)); - } - - obj->show_flags = show_flags; - - for (i = 0; i < n_entries; i++) - { - if (obj->show_flags & entries_flags[i]) - { - gtk_action_group_add_actions (obj->group, &entries[i], 1, obj); - - GtkAction * action = gtk_action_group_get_action (obj->group, entries[i].name); - - GtkToolItem * item = GTK_TOOL_ITEM (gtk_action_create_tool_item (action)); - gtk_tool_item_set_homogeneous (item, TRUE); - gtk_toolbar_insert (obj->toolbar, item, -1); - } - } - - if (obj->show_flags & VN_HANDLER_SHOW_ADD) - obj->add = gtk_action_group_get_action (obj->group, "add"); - - if (obj->show_flags & VN_HANDLER_SHOW_REMOVE) - obj->remove = gtk_action_group_get_action (obj->group, "remove"); - - if (obj->show_flags & VN_HANDLER_SHOW_SAVE) - obj->save = gtk_action_group_get_action (obj->group, "save"); - - if (obj->show_flags & VN_HANDLER_SHOW_UNDO) - obj->undo = gtk_action_group_get_action (obj->group, "undo"); - - if (obj->show_flags & VN_HANDLER_SHOW_SCROLL) - { - obj->move_first = gtk_action_group_get_action (obj->group, "move-first"); - obj->move_previous = gtk_action_group_get_action (obj->group, "move-previous"); - obj->move_next = gtk_action_group_get_action (obj->group, "move-next"); - obj->move_last = gtk_action_group_get_action (obj->group, "move-last"); - } - - vn_handler_refresh_status (obj); -} - /** * vn_handler_set_simple_record: * @obj: a #VnHandler @@ -462,7 +453,10 @@ static void vn_handler_get_property (VnHandler * obj, guint id, static void vn_handler_init (VnHandler * obj) { - GdkRGBA color = {0.0, 0.0, 0.0, 0.0}; + gint i; + gchar * css; + GtkStyleContext * context; + GtkCssProvider * provider; obj->add = NULL; obj->remove = NULL; @@ -472,22 +466,42 @@ static void vn_handler_init (VnHandler * obj) obj->move_last = NULL; obj->iterator = NULL; - gtk_box_set_spacing (GTK_BOX (obj), 6); - gtk_box_set_homogeneous (GTK_BOX (obj), FALSE); - gtk_button_box_set_layout (GTK_BUTTON_BOX (obj), GTK_BUTTONBOX_END); - gtk_orientable_set_orientation (GTK_ORIENTABLE (obj), GTK_ORIENTATION_HORIZONTAL); + obj->group = G_ACTION_GROUP (g_simple_action_group_new ()); + g_action_map_add_action_entries (G_ACTION_MAP (obj->group), entries, n_entries, obj); + gtk_widget_insert_action_group (GTK_WIDGET (obj), ACTION_GROUP_NAME, obj->group); - obj->group = gtk_action_group_new ("form-handler"); + obj->buttons = GTK_WIDGET (g_object_new (GTK_TYPE_BUTTON_BOX + ,"layout-style", GTK_BUTTONBOX_EXPAND + ,"homogeneous", FALSE + ,NULL)); - obj->toolbar = GTK_TOOLBAR (g_object_new (GTK_TYPE_TOOLBAR - ,"icon-size", GTK_ICON_SIZE_LARGE_TOOLBAR - ,"toolbar-style", GTK_TOOLBAR_BOTH_HORIZ - ,"show-arrow", FALSE - ,NULL - )); - gtk_widget_override_background_color (GTK_WIDGET (obj->toolbar), - GTK_STATE_FLAG_NORMAL, &color); - gtk_box_pack_end (GTK_BOX (obj), GTK_WIDGET (obj->toolbar), FALSE, FALSE, 0); + context = gtk_widget_get_style_context (obj->buttons); + provider = gtk_css_provider_get_default (); + css = + "VnHandler GtkButtonBox\n" + "{\n" + " -GtkButtonBox-child-min-width: 0;\n" + " -GtkButtonBox-child-internal-pad-x: 0;\n" + "}"; + + if (gtk_css_provider_load_from_data (provider, css, -1, NULL)) + gtk_style_context_add_provider (context, GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + else + g_object_unref (provider); + + gtk_container_add (GTK_CONTAINER (obj), obj->buttons); + + for (i = 0; i < n_entries; i++) + { + GtkWidget * button = gtk_button_new_from_icon_name (actions_data[i].icon, GTK_ICON_SIZE_BUTTON); + gchar * action_name = g_strconcat (ACTION_GROUP_NAME, ".", entries[i].name, NULL); + gtk_actionable_set_action_name (GTK_ACTIONABLE (button), action_name); + g_free (action_name); + gtk_widget_set_tooltip_text (button, actions_data[i].tooltip); + gtk_widget_set_no_show_all (button, TRUE); + gtk_box_pack_start (GTK_BOX (obj->buttons), button, FALSE, FALSE, 0); + } } static void vn_handler_finalize (VnHandler * obj) diff --git a/vn/vn-handler.h b/vn/vn-handler.h index 68b4b13..4cb9196 100644 --- a/vn/vn-handler.h +++ b/vn/vn-handler.h @@ -45,105 +45,26 @@ VnHandlerShowFlags; struct _VnHandler { - GtkButtonBox parent; - DbIterator * iterator; - VnHandlerShowFlags show_flags;/* - * Copyright (C) 2012 - Juan Ferrer Toribio - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef VN_HANDLER_H -#define VN_HANDLER_H - -#include -#include - -#define VN_TYPE_HANDLER (vn_handler_get_type ()) -#define VN_IS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_HANDLER)) -#define VN_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_HANDLER , VnHandler)) -#define VN_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_HANDLER, VnHandlerClass)) -#define VN_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_HANDLER, VnHandlerClass)) - -#define VN_TYPE_HANDLER_SHOW_FLAGS (vn_handler_show_flags_get_type ()) - -typedef struct _VnHandler VnHandler; -typedef struct _VnHandlerClass VnHandlerClass; - -typedef enum -{ - VN_HANDLER_SHOW_REFRESH = 1 << 0 - ,VN_HANDLER_SHOW_UNDO = 1 << 1 - ,VN_HANDLER_SHOW_SAVE = 1 << 2 - ,VN_HANDLER_SHOW_REMOVE = 1 << 3 - ,VN_HANDLER_SHOW_ADD = 1 << 4 - ,VN_HANDLER_SHOW_SCROLL = 1 << 5 -} -VnHandlerShowFlags; - -struct _VnHandler -{ - GtkButtonBox parent; + GtkBin parent; DbIterator * iterator; VnHandlerShowFlags show_flags; gboolean simple_record; - GtkToolbar * toolbar; - GtkActionGroup * group; - GtkAction * move_first; - GtkAction * move_previous; - GtkAction * move_next; - GtkAction * move_last; - GtkAction * add; - GtkAction * remove; - GtkAction * save; - GtkAction * undo; -}; - -struct _VnHandlerClass -{ - /* */ - GtkButtonBoxClass parent; -}; - -GType vn_handler_get_type (); -GType vn_handler_show_flags_get_type () G_GNUC_CONST; - -GtkWidget * vn_handler_new (); -GtkWidget * vn_handler_new_with_iterator (DbIterator * iterator); -DbIterator * vn_handler_get_iterator (VnHandler * obj); -void vn_handler_set_iterator (VnHandler * obj, DbIterator * iterator); -void vn_handler_set_show_flags (VnHandler * obj, VnHandlerShowFlags show_flags); -void vn_handler_set_simple_record (VnHandler * obj, gboolean simple); - -#endif - gboolean simple_record; - GtkToolbar * toolbar; + GtkWidget * buttons; GActionGroup * group; - GAction * move_first; - GAction * move_previous; - GAction * move_next; - GAction * move_last; - GAction * add; - GAction * remove; - GAction * save; - GAction * undo; + GSimpleAction * undo; + GSimpleAction * save; + GSimpleAction * remove; + GSimpleAction * add; + GSimpleAction * move_first; + GSimpleAction * move_previous; + GSimpleAction * move_next; + GSimpleAction * move_last; }; struct _VnHandlerClass { /* */ - GtkButtonBoxClass parent; + GtkBinClass parent; }; GType vn_handler_get_type (); @@ -156,4 +77,4 @@ void vn_handler_set_iterator (VnHandler * obj, DbIterator * iterator); void vn_handler_set_show_flags (VnHandler * obj, VnHandlerShowFlags show_flags); void vn_handler_set_simple_record (VnHandler * obj, gboolean simple); -#endif +#endif \ No newline at end of file