VnHandler portado a GAction

This commit is contained in:
Alejandro T. Colombini Gómez 2014-06-10 12:48:03 +02:00
parent 9a6839a26d
commit 0703b8b81d
9 changed files with 367 additions and 425 deletions

View File

@ -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)) if (!obj->priv->addr && !db_file_loader_resolve_host (obj, cancel, &error))
{ {
g_mutex_unlock (obj->priv->mutex); g_mutex_unlock (obj->priv->mutex);
goto final; goto exit;
} }
g_mutex_unlock (obj->priv->mutex); g_mutex_unlock (obj->priv->mutex);
if (!(connection = db_file_loader_connect (obj, cancel, &error))) if (!(connection = db_file_loader_connect (obj, cancel, &error)))
goto final; goto exit;
request = db_file_loader_create_request (obj, file->name); request = db_file_loader_create_request (obj, file->name);
send_stream = g_io_stream_get_output_stream (connection); send_stream = g_io_stream_get_output_stream (connection);
if (0 > g_output_stream_write (send_stream, request, strlen (request), cancel, &error) if (0 > g_output_stream_write (send_stream, request, strlen (request), cancel, &error)
|| !g_output_stream_close (send_stream, 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)); 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); 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); status_line = g_data_input_stream_read_line (receive_stream, &len, cancel, &error);
if (!status_line) if (!status_line)
goto final; goto exit;
split = g_strsplit (status_line, " ", -1); split = g_strsplit (status_line, " ", -1);
guint status = g_strv_length (split) >= 2 ? atoi (split[1]) : 0; 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) if (data)
file->data = g_bytes_new_take (data, len); file->data = g_bytes_new_take (data, len);
final: exit:
g_free (request); g_free (request);
g_free (status_line); g_free (status_line);

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.2 --> <!-- Generated with glade 3.18.3 -->
<interface> <interface>
<requires lib="gtk+" version="3.0"/> <requires lib="gtk+" version="3.0"/>
<requires lib="vn" version="0.0"/> <requires lib="vn" version="0.0"/>
@ -220,8 +220,6 @@
<object class="VnHandler" id="handler"> <object class="VnHandler" id="handler">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="spacing">6</property>
<property name="layout_style">end</property>
<property name="show_flags">VN_HANDLER_SHOW_REFRESH | VN_HANDLER_SHOW_UNDO | VN_HANDLER_SHOW_SAVE | VN_HANDLER_SHOW_REMOVE | VN_HANDLER_SHOW_ADD | VN_HANDLER_SHOW_SCROLL</property> <property name="show_flags">VN_HANDLER_SHOW_REFRESH | VN_HANDLER_SHOW_UNDO | VN_HANDLER_SHOW_SAVE | VN_HANDLER_SHOW_REMOVE | VN_HANDLER_SHOW_ADD | VN_HANDLER_SHOW_SCROLL</property>
</object> </object>
<packing> <packing>

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-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" "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"
@ -162,7 +162,7 @@ msgstr "Recordar"
msgid "Wether to rememeber the selection when model is refreshed" msgid "Wether to rememeber the selection when model is refreshed"
msgstr "" 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 #: ../vn/vn-form.c:245
msgid "Connection" msgid "Connection"
msgstr "" msgstr ""
@ -423,59 +423,59 @@ msgstr ""
msgid "The maximal size for the contents of the cache directory" msgid "The maximal size for the contents of the cache directory"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:517 #: ../vn/vn-gui.c:516
msgid "Connection has been lost. Do you want to reconnect?" msgid "Connection has been lost. Do you want to reconnect?"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:524 #: ../vn/vn-gui.c:523
msgid "An error occurred in the connection." msgid "An error occurred in the connection."
msgstr "" msgstr ""
#: ../vn/vn-gui.c:527 #: ../vn/vn-gui.c:526
msgid "Database error" msgid "Database error"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:534 #: ../vn/vn-gui.c:533
msgid "Unknown error" msgid "Unknown error"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:866 #: ../vn/vn-gui.c:865
msgid "Closing connection" msgid "Closing connection"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:868 #: ../vn/vn-gui.c:867
msgid "Transaction started" msgid "Transaction started"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:870 #: ../vn/vn-gui.c:869
msgid "Connecting" msgid "Connecting"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:872 #: ../vn/vn-gui.c:871
msgid "Connection lost" msgid "Connection lost"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:874 #: ../vn/vn-gui.c:873
msgid "Connection closed" msgid "Connection closed"
msgstr "" 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" msgid "Loading"
msgstr "" 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" msgid "Ready"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:1475 #: ../vn/vn-gui.c:1471
msgid "The connection used by Gui" msgid "The connection used by Gui"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:1481 #: ../vn/vn-gui.c:1477
msgid "Application" msgid "Application"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:1482 #: ../vn/vn-gui.c:1478
msgid "The application handler for the entire program" msgid "The application handler for the entire program"
msgstr "" msgstr ""
@ -483,63 +483,67 @@ msgstr ""
msgid "The iterator used by VnGrid" msgid "The iterator used by VnGrid"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:65 #: ../vn/vn-handler.c:73
msgid "Are you sure you want to delete the current selection?" msgid "Are you sure you want to delete the current selection?"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:90 #: ../vn/vn-handler.c:81
msgid "Are you sure that you want to undo all changes?" msgid "Are you sure you want to save the changes?"
msgstr "" 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" msgid "Undo changes"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:226 #: ../vn/vn-handler.c:216
msgid "Save changes" msgid "Save changes"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:233 #: ../vn/vn-handler.c:219
msgid "Refresh data" msgid "Refresh data"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:240 #: ../vn/vn-handler.c:222
msgid "Remove record" msgid "Remove record"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:247 #: ../vn/vn-handler.c:225
msgid "Add record" msgid "Add record"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:254 #: ../vn/vn-handler.c:228
msgid "Move to the first row" msgid "Move to the first row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:261 #: ../vn/vn-handler.c:231
msgid "Move to the previous row" msgid "Move to the previous row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:268 #: ../vn/vn-handler.c:234
msgid "Move to the next row" msgid "Move to the next row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:275 #: ../vn/vn-handler.c:237
msgid "Move to the last row" msgid "Move to the last row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:514 #: ../vn/vn-handler.c:495
msgid "Show flags" msgid "Show flags"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:515 #: ../vn/vn-handler.c:496
msgid "Sets the buttons that will be shown on the interface" msgid "Sets the buttons that will be shown on the interface"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:522 #: ../vn/vn-handler.c:503
msgid "Simple record" msgid "Simple record"
msgstr "" 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" msgid "Sets if it is used to handle a iterator with a single record"
msgstr "" msgstr ""
@ -1001,7 +1005,7 @@ msgstr ""
msgid "<b>Add or remove links</b>" msgid "<b>Add or remove links</b>"
msgstr "" msgstr ""
#: ../glade/glade-db-model-editor.c:53 #: ../glade/glade-db-model-editor.c:54
msgid "List of parameters linked to the model" msgid "List of parameters linked to the model"
msgstr "" msgstr ""
@ -1091,11 +1095,11 @@ msgstr ""
msgid "Immediate changes" msgid "Immediate changes"
msgstr "" msgstr ""
#: ../module/src/vn-consulter.c:234 #: ../module/src/vn-consulter.c:233
msgid "Type or select a query" msgid "Type or select a query"
msgstr "" msgstr ""
#: ../module/src/vn-consulter.c:236 #: ../module/src/vn-consulter.c:235
msgid "Message" msgid "Message"
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-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" "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"
@ -164,7 +164,7 @@ msgid "Wether to rememeber the selection when model is refreshed"
msgstr "" msgstr ""
"Si se recordará o no la fila seleccionado cuando se refresque el modelo" "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 #: ../vn/vn-form.c:245
msgid "Connection" msgid "Connection"
msgstr "Conexión" 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" msgid "The maximal size for the contents of the cache directory"
msgstr "El tamaño máximo para los contenidos del directorio de caché" 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?" msgid "Connection has been lost. Do you want to reconnect?"
msgstr "Se ha perdido la conexión. ¿Quieres reconectar?" 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." msgid "An error occurred in the connection."
msgstr "Ha habido un error en la conexión." msgstr "Ha habido un error en la conexión."
#: ../vn/vn-gui.c:527 #: ../vn/vn-gui.c:526
msgid "Database error" msgid "Database error"
msgstr "Error en la base de datos" msgstr "Error en la base de datos"
#: ../vn/vn-gui.c:534 #: ../vn/vn-gui.c:533
msgid "Unknown error" msgid "Unknown error"
msgstr "Error desconocido" msgstr "Error desconocido"
#: ../vn/vn-gui.c:866 #: ../vn/vn-gui.c:865
msgid "Closing connection" msgid "Closing connection"
msgstr "Cerrando conexión" msgstr "Cerrando conexión"
#: ../vn/vn-gui.c:868 #: ../vn/vn-gui.c:867
msgid "Transaction started" msgid "Transaction started"
msgstr "Transacción iniciada" msgstr "Transacción iniciada"
#: ../vn/vn-gui.c:870 #: ../vn/vn-gui.c:869
msgid "Connecting" msgid "Connecting"
msgstr "Conectando" msgstr "Conectando"
#: ../vn/vn-gui.c:872 #: ../vn/vn-gui.c:871
msgid "Connection lost" msgid "Connection lost"
msgstr "Conexión perdida" msgstr "Conexión perdida"
#: ../vn/vn-gui.c:874 #: ../vn/vn-gui.c:873
msgid "Connection closed" msgid "Connection closed"
msgstr "Conexión cerrada" 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" msgid "Loading"
msgstr "Cargando" 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" msgid "Ready"
msgstr "Listo" msgstr "Listo"
#: ../vn/vn-gui.c:1475 #: ../vn/vn-gui.c:1471
msgid "The connection used by Gui" msgid "The connection used by Gui"
msgstr "La conexión empleada por Gui" msgstr "La conexión empleada por Gui"
#: ../vn/vn-gui.c:1481 #: ../vn/vn-gui.c:1477
msgid "Application" msgid "Application"
msgstr "Aplicación" msgstr "Aplicación"
#: ../vn/vn-gui.c:1482 #: ../vn/vn-gui.c:1478
msgid "The application handler for the entire program" msgid "The application handler for the entire program"
msgstr "El manejador de la aplicación para todo el programa" 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" msgid "The iterator used by VnGrid"
msgstr "El Iterator empleado por 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?" msgid "Are you sure you want to delete the current selection?"
msgstr "¿Estás seguro de que quieres eliminar los registros seleccionados?" msgstr "¿Estás seguro de que quieres eliminar los registros seleccionados?"
#: ../vn/vn-handler.c:90 #: ../vn/vn-handler.c:81
msgid "Are you sure that you want to undo all changes?" 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?" msgstr "¿Estás seguro de que quieres deshacer todos los cambios?"
#: ../vn/vn-handler.c:219 #: ../vn/vn-handler.c:213
msgid "Undo changes" msgid "Undo changes"
msgstr "Deshacer cambios" msgstr "Deshacer cambios"
#: ../vn/vn-handler.c:226 #: ../vn/vn-handler.c:216
msgid "Save changes" msgid "Save changes"
msgstr "Guardar cambios" msgstr "Guardar cambios"
#: ../vn/vn-handler.c:233 #: ../vn/vn-handler.c:219
msgid "Refresh data" msgid "Refresh data"
msgstr "Refrescar datos" msgstr "Refrescar datos"
#: ../vn/vn-handler.c:240 #: ../vn/vn-handler.c:222
msgid "Remove record" msgid "Remove record"
msgstr "Eliminar registro" msgstr "Eliminar registro"
#: ../vn/vn-handler.c:247 #: ../vn/vn-handler.c:225
msgid "Add record" msgid "Add record"
msgstr "Añadir registro" msgstr "Añadir registro"
#: ../vn/vn-handler.c:254 #: ../vn/vn-handler.c:228
msgid "Move to the first row" msgid "Move to the first row"
msgstr "Mover a la primera fila" msgstr "Mover a la primera fila"
#: ../vn/vn-handler.c:261 #: ../vn/vn-handler.c:231
msgid "Move to the previous row" msgid "Move to the previous row"
msgstr "Mover a la fila anterior" msgstr "Mover a la fila anterior"
#: ../vn/vn-handler.c:268 #: ../vn/vn-handler.c:234
msgid "Move to the next row" msgid "Move to the next row"
msgstr "Mover a la siguiente fila" msgstr "Mover a la siguiente fila"
#: ../vn/vn-handler.c:275 #: ../vn/vn-handler.c:237
msgid "Move to the last row" msgid "Move to the last row"
msgstr "Mover a la última fila" msgstr "Mover a la última fila"
#: ../vn/vn-handler.c:514 #: ../vn/vn-handler.c:495
msgid "Show flags" msgid "Show flags"
msgstr "Visibilidad" msgstr "Visibilidad"
#: ../vn/vn-handler.c:515 #: ../vn/vn-handler.c:496
msgid "Sets the buttons that will be shown on the interface" msgid "Sets the buttons that will be shown on the interface"
msgstr "Indica los botones que se mostrarán en la interfaz" msgstr "Indica los botones que se mostrarán en la interfaz"
#: ../vn/vn-handler.c:522 #: ../vn/vn-handler.c:503
msgid "Simple record" msgid "Simple record"
msgstr "Registro simple" 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" msgid "Sets if it is used to handle a iterator with a single record"
msgstr "Indica si se utiliza para manejar solo un registro" 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 "<b>Add or remove links</b>" msgid "<b>Add or remove links</b>"
msgstr "<b>Añadir o quitar enlaces</b>" msgstr "<b>Añadir o quitar enlaces</b>"
#: ../glade/glade-db-model-editor.c:53 #: ../glade/glade-db-model-editor.c:54
msgid "List of parameters linked to the model" msgid "List of parameters linked to the model"
msgstr "Lista de parámetros vinculados al modelo" msgstr "Lista de parámetros vinculados al modelo"
@ -1130,11 +1134,11 @@ msgstr "Consulta:"
msgid "Immediate changes" msgid "Immediate changes"
msgstr "Cambios inmediatos" msgstr "Cambios inmediatos"
#: ../module/src/vn-consulter.c:234 #: ../module/src/vn-consulter.c:233
msgid "Type or select a query" msgid "Type or select a query"
msgstr "Escribe o elige una consulta" msgstr "Escribe o elige una consulta"
#: ../module/src/vn-consulter.c:236 #: ../module/src/vn-consulter.c:235
msgid "Message" msgid "Message"
msgstr "Mensaje" msgstr "Mensaje"

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-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" "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"
@ -163,7 +163,7 @@ msgstr ""
msgid "Wether to rememeber the selection when model is refreshed" msgid "Wether to rememeber the selection when model is refreshed"
msgstr "" 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 #: ../vn/vn-form.c:245
msgid "Connection" msgid "Connection"
msgstr "" msgstr ""
@ -424,59 +424,59 @@ msgstr ""
msgid "The maximal size for the contents of the cache directory" msgid "The maximal size for the contents of the cache directory"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:517 #: ../vn/vn-gui.c:516
msgid "Connection has been lost. Do you want to reconnect?" msgid "Connection has been lost. Do you want to reconnect?"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:524 #: ../vn/vn-gui.c:523
msgid "An error occurred in the connection." msgid "An error occurred in the connection."
msgstr "" msgstr ""
#: ../vn/vn-gui.c:527 #: ../vn/vn-gui.c:526
msgid "Database error" msgid "Database error"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:534 #: ../vn/vn-gui.c:533
msgid "Unknown error" msgid "Unknown error"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:866 #: ../vn/vn-gui.c:865
msgid "Closing connection" msgid "Closing connection"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:868 #: ../vn/vn-gui.c:867
msgid "Transaction started" msgid "Transaction started"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:870 #: ../vn/vn-gui.c:869
msgid "Connecting" msgid "Connecting"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:872 #: ../vn/vn-gui.c:871
msgid "Connection lost" msgid "Connection lost"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:874 #: ../vn/vn-gui.c:873
msgid "Connection closed" msgid "Connection closed"
msgstr "" 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" msgid "Loading"
msgstr "" 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" msgid "Ready"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:1475 #: ../vn/vn-gui.c:1471
msgid "The connection used by Gui" msgid "The connection used by Gui"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:1481 #: ../vn/vn-gui.c:1477
msgid "Application" msgid "Application"
msgstr "" msgstr ""
#: ../vn/vn-gui.c:1482 #: ../vn/vn-gui.c:1478
msgid "The application handler for the entire program" msgid "The application handler for the entire program"
msgstr "" msgstr ""
@ -484,63 +484,67 @@ msgstr ""
msgid "The iterator used by VnGrid" msgid "The iterator used by VnGrid"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:65 #: ../vn/vn-handler.c:73
msgid "Are you sure you want to delete the current selection?" msgid "Are you sure you want to delete the current selection?"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:90 #: ../vn/vn-handler.c:81
msgid "Are you sure that you want to undo all changes?" msgid "Are you sure you want to save the changes?"
msgstr "" 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" msgid "Undo changes"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:226 #: ../vn/vn-handler.c:216
msgid "Save changes" msgid "Save changes"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:233 #: ../vn/vn-handler.c:219
msgid "Refresh data" msgid "Refresh data"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:240 #: ../vn/vn-handler.c:222
msgid "Remove record" msgid "Remove record"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:247 #: ../vn/vn-handler.c:225
msgid "Add record" msgid "Add record"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:254 #: ../vn/vn-handler.c:228
msgid "Move to the first row" msgid "Move to the first row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:261 #: ../vn/vn-handler.c:231
msgid "Move to the previous row" msgid "Move to the previous row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:268 #: ../vn/vn-handler.c:234
msgid "Move to the next row" msgid "Move to the next row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:275 #: ../vn/vn-handler.c:237
msgid "Move to the last row" msgid "Move to the last row"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:514 #: ../vn/vn-handler.c:495
msgid "Show flags" msgid "Show flags"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:515 #: ../vn/vn-handler.c:496
msgid "Sets the buttons that will be shown on the interface" msgid "Sets the buttons that will be shown on the interface"
msgstr "" msgstr ""
#: ../vn/vn-handler.c:522 #: ../vn/vn-handler.c:503
msgid "Simple record" msgid "Simple record"
msgstr "" 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" msgid "Sets if it is used to handle a iterator with a single record"
msgstr "" msgstr ""
@ -1001,7 +1005,7 @@ msgstr ""
msgid "<b>Add or remove links</b>" msgid "<b>Add or remove links</b>"
msgstr "" msgstr ""
#: ../glade/glade-db-model-editor.c:53 #: ../glade/glade-db-model-editor.c:54
msgid "List of parameters linked to the model" msgid "List of parameters linked to the model"
msgstr "" msgstr ""
@ -1091,10 +1095,10 @@ msgstr ""
msgid "Immediate changes" msgid "Immediate changes"
msgstr "" msgstr ""
#: ../module/src/vn-consulter.c:234 #: ../module/src/vn-consulter.c:233
msgid "Type or select a query" msgid "Type or select a query"
msgstr "" msgstr ""
#: ../module/src/vn-consulter.c:236 #: ../module/src/vn-consulter.c:235
msgid "Message" msgid "Message"
msgstr "" msgstr ""

View File

@ -1,11 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <requires lib="gtk+" version="3.12"/>
<object class="GtkAdjustment" id="hour"> <object class="GtkAdjustment" id="hour">
<property name="upper">23</property> <property name="upper">23</property>
<property name="step_increment">1</property> <property name="step_increment">1</property>
<property name="page_increment">10</property> <property name="page_increment">10</property>
</object> </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>
<object class="GtkBox" id="box"> <object class="GtkBox" id="box">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
@ -19,7 +30,7 @@
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
<property name="layout_style">expand</property> <property name="layout_style">expand</property>
<child> <child>
<object class="GtkButton" id="button1"> <object class="GtkButton" id="ok">
<property name="label" translatable="yes">OK</property> <property name="label" translatable="yes">OK</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
@ -27,7 +38,7 @@
<signal name="clicked" handler="vn_date_chooser_on_ok_clicked" swapped="no"/> <signal name="clicked" handler="vn_date_chooser_on_ok_clicked" swapped="no"/>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
@ -94,7 +105,6 @@
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="invisible_char">●</property> <property name="invisible_char">●</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="invisible_char_set">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">hour</property> <property name="adjustment">hour</property>
<property name="wrap">True</property> <property name="wrap">True</property>
@ -124,7 +134,6 @@
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="invisible_char">●</property> <property name="invisible_char">●</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="invisible_char_set">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">minute</property> <property name="adjustment">minute</property>
<property name="wrap">True</property> <property name="wrap">True</property>
@ -154,7 +163,6 @@
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="invisible_char">●</property> <property name="invisible_char">●</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="invisible_char_set">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="adjustment">second</property> <property name="adjustment">second</property>
<property name="wrap">True</property> <property name="wrap">True</property>
@ -174,14 +182,4 @@
</packing> </packing>
</child> </child>
</object> </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> </interface>

View File

@ -41,27 +41,6 @@
**/ **/
G_DEFINE_TYPE (VnGui, vn_gui, G_TYPE_OBJECT); 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 struct _VnWindow
{ {
VnGui * obj; VnGui * obj;
@ -98,6 +77,26 @@ typedef struct
} }
GuiData; 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_reconnect (VnGui * obj);
static void vn_gui_on_conn_error (DbConn * conn, const GError * error, 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); static void vn_gui_on_conn_status_changed (DbConn * conn, DbConnStatus status, VnGui * obj);

View File

@ -17,7 +17,9 @@
#include "vn-handler.h" #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: * vn_handler_new:
@ -46,63 +48,55 @@ GtkWidget * vn_handler_new_with_iterator (DbIterator * iterator)
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Private //+++++++++++++++++++++++++++++++++++++++++++++++++++ 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); GtkWidget * toplevel = gtk_widget_get_toplevel (GTK_WIDGET (obj)),
} * dialog = gtk_message_dialog_new (GTK_WINDOW (toplevel)
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)
,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT ,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
,GTK_MESSAGE_QUESTION ,GTK_MESSAGE_QUESTION
,GTK_BUTTONS_OK_CANCEL ,GTK_BUTTONS_OK_CANCEL
,_("Are you sure you want to delete the current selection?") ,"%s"
,message
); );
gint response = gtk_dialog_run (GTK_DIALOG (dialog));
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
db_iterator_delete (obj->iterator);
gtk_widget_destroy (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; if (db_iterator_get_mode (VN_HANDLER (obj)->iterator) == DB_ITERATOR_MODE_ON_DEMAND
GtkWidget * dialog; || vn_handler_dialog (obj, _("Are you sure you want to delete the current selection?")))
db_iterator_delete (VN_HANDLER (obj)->iterator);
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);
} }
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; DbIteratorMove move;
if (action == obj->move_previous) 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) 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); && db_iterator_has_pending_operations (obj->iterator);
if (obj->show_flags & VN_HANDLER_SHOW_SAVE) 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) 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) static void vn_handler_refresh_scroll_status (VnHandler * obj)
{ {
if (obj->show_flags & VN_HANDLER_SHOW_SCROLL) if (obj->show_flags & VN_HANDLER_SHOW_SCROLL)
{ {
gboolean sensitive; gboolean enabled;
gint row = db_iterator_get_row (obj->iterator); gint row = db_iterator_get_row (obj->iterator);
sensitive = row > 0; enabled = row > 0;
gtk_action_set_sensitive (obj->move_first, sensitive); g_simple_action_set_enabled (obj->move_first, enabled);
gtk_action_set_sensitive (obj->move_previous, sensitive); g_simple_action_set_enabled (obj->move_previous, enabled);
sensitive = row != -1 && row < db_iterator_get_nrows (obj->iterator) - 1; enabled = row != -1 && row < db_iterator_get_nrows (obj->iterator) - 1;
gtk_action_set_sensitive (obj->move_next, sensitive); g_simple_action_set_enabled (obj->move_next, enabled);
gtk_action_set_sensitive (obj->move_last, sensitive); 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) if (obj->show_flags & VN_HANDLER_SHOW_ADD)
{ {
gboolean sensitive = gboolean enabled =
db_iterator_get_update_flags (iterator) & DB_MODEL_INSERT db_iterator_get_update_flags (iterator) & DB_MODEL_INSERT
&& (db_iterator_get_nrows (iterator) < 1 || !obj->simple_record); && (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_save_undo_status (obj);
vn_handler_refresh_scroll_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) if (obj->show_flags & VN_HANDLER_SHOW_REMOVE)
{ {
gboolean sensitive = gboolean enabled =
db_iterator_get_update_flags (iterator) & DB_MODEL_DELETE db_iterator_get_update_flags (iterator) & DB_MODEL_DELETE
&& db_iterator_get_nrows (iterator) > 0; && 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); 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); 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) 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_row_num_changed (iterator, obj);
vn_handler_on_data_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) static void vn_handler_refresh_status (VnHandler * obj)
{ {
if (!obj->iterator) if (!obj->iterator)
gtk_action_group_set_sensitive (obj->group, FALSE); action_group_set_enabled (obj->group, FALSE);
else else
vn_handler_on_status_changed (obj->iterator, vn_handler_on_status_changed (obj->iterator,
db_iterator_is_ready (obj->iterator), obj); 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[] = static VnHandlerShowFlags entries_flags[] =
{ {
VN_HANDLER_SHOW_UNDO VN_HANDLER_SHOW_UNDO
@ -209,71 +252,35 @@ static VnHandlerShowFlags entries_flags[] =
,VN_HANDLER_SHOW_SCROLL ,VN_HANDLER_SHOW_SCROLL
}; };
static GtkActionEntry entries[] = static GActionEntry entries[] =
{ {
{ {
"undo" "undo"
,"edit-undo" ,vn_handler_on_undo_activated
,NULL
,NULL
,N_("Undo changes")
,G_CALLBACK (vn_handler_on_undo_activated)
},{ },{
"save" "save"
,"document-save" ,vn_handler_on_save_activated
,NULL
,NULL
,N_("Save changes")
,G_CALLBACK (vn_handler_on_save_activated)
},{ },{
"refresh" "refresh"
,"view-refresh" ,vn_handler_on_refresh_activated
,NULL
,NULL
,N_("Refresh data")
,G_CALLBACK (vn_handler_on_refresh_activated)
},{ },{
"remove" "remove"
,"list-remove" ,vn_handler_on_remove_activated
,NULL
,NULL
,N_("Remove record")
,G_CALLBACK (vn_handler_on_remove_activated)
},{ },{
"add" "add"
,"list-add" ,vn_handler_on_add_activated
,NULL
,NULL
,N_("Add record")
,G_CALLBACK (vn_handler_on_add_activated)
},{ },{
"move-first" "move-first"
,"go-first" ,vn_handler_on_move_activated
,NULL
,NULL
,N_("Move to the first row")
,G_CALLBACK (vn_handler_on_move_activated)
},{ },{
"move-previous" "move-previous"
,"go-previous" ,vn_handler_on_move_activated
,NULL
,NULL
,N_("Move to the previous row")
,G_CALLBACK (vn_handler_on_move_activated)
},{ },{
"move-next" "move-next"
,"go-next" ,vn_handler_on_move_activated
,NULL
,NULL
,N_("Move to the next row")
,G_CALLBACK (vn_handler_on_move_activated)
},{ },{
"move-last" "move-last"
,"go-last" ,vn_handler_on_move_activated
,NULL
,NULL
,N_("Move to the last row")
,G_CALLBACK (vn_handler_on_move_activated)
} }
}; };
@ -281,6 +288,55 @@ static guint n_entries = G_N_ELEMENTS (entries);
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Public //+++++++++++++++++++++++++++++++++++++++++++++++++++ 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: * vn_handler_get_iterator:
* @obj: a #VnHandler * @obj: a #VnHandler
@ -332,71 +388,6 @@ void vn_handler_set_iterator (VnHandler * obj, DbIterator * iterator)
vn_handler_refresh_status (obj); 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: * vn_handler_set_simple_record:
* @obj: a #VnHandler * @obj: a #VnHandler
@ -462,7 +453,10 @@ static void vn_handler_get_property (VnHandler * obj, guint id,
static void vn_handler_init (VnHandler * obj) 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->add = NULL;
obj->remove = NULL; obj->remove = NULL;
@ -472,22 +466,42 @@ static void vn_handler_init (VnHandler * obj)
obj->move_last = NULL; obj->move_last = NULL;
obj->iterator = NULL; obj->iterator = NULL;
gtk_box_set_spacing (GTK_BOX (obj), 6); obj->group = G_ACTION_GROUP (g_simple_action_group_new ());
gtk_box_set_homogeneous (GTK_BOX (obj), FALSE); g_action_map_add_action_entries (G_ACTION_MAP (obj->group), entries, n_entries, obj);
gtk_button_box_set_layout (GTK_BUTTON_BOX (obj), GTK_BUTTONBOX_END); gtk_widget_insert_action_group (GTK_WIDGET (obj), ACTION_GROUP_NAME, obj->group);
gtk_orientable_set_orientation (GTK_ORIENTABLE (obj), GTK_ORIENTATION_HORIZONTAL);
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 context = gtk_widget_get_style_context (obj->buttons);
,"icon-size", GTK_ICON_SIZE_LARGE_TOOLBAR provider = gtk_css_provider_get_default ();
,"toolbar-style", GTK_TOOLBAR_BOTH_HORIZ css =
,"show-arrow", FALSE "VnHandler GtkButtonBox\n"
,NULL "{\n"
)); " -GtkButtonBox-child-min-width: 0;\n"
gtk_widget_override_background_color (GTK_WIDGET (obj->toolbar), " -GtkButtonBox-child-internal-pad-x: 0;\n"
GTK_STATE_FLAG_NORMAL, &color); "}";
gtk_box_pack_end (GTK_BOX (obj), GTK_WIDGET (obj->toolbar), FALSE, FALSE, 0);
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) static void vn_handler_finalize (VnHandler * obj)

View File

@ -45,105 +45,26 @@ VnHandlerShowFlags;
struct _VnHandler struct _VnHandler
{ {
GtkButtonBox parent; GtkBin 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 <http://www.gnu.org/licenses/>.
*/
#ifndef VN_HANDLER_H
#define VN_HANDLER_H
#include <db/db.h>
#include <gtk/gtk.h>
#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;
DbIterator * iterator; DbIterator * iterator;
VnHandlerShowFlags show_flags; VnHandlerShowFlags show_flags;
gboolean simple_record; gboolean simple_record;
GtkToolbar * toolbar; GtkWidget * buttons;
GtkActionGroup * group;
GtkAction * move_first;
GtkAction * move_previous;
GtkAction * move_next;
GtkAction * move_last;
GtkAction * add;
GtkAction * remove;
GtkAction * save;
GtkAction * undo;
};
struct _VnHandlerClass
{
/* <private> */
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;
GActionGroup * group; GActionGroup * group;
GAction * move_first; GSimpleAction * undo;
GAction * move_previous; GSimpleAction * save;
GAction * move_next; GSimpleAction * remove;
GAction * move_last; GSimpleAction * add;
GAction * add; GSimpleAction * move_first;
GAction * remove; GSimpleAction * move_previous;
GAction * save; GSimpleAction * move_next;
GAction * undo; GSimpleAction * move_last;
}; };
struct _VnHandlerClass struct _VnHandlerClass
{ {
/* <private> */ /* <private> */
GtkButtonBoxClass parent; GtkBinClass parent;
}; };
GType vn_handler_get_type (); 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_show_flags (VnHandler * obj, VnHandlerShowFlags show_flags);
void vn_handler_set_simple_record (VnHandler * obj, gboolean simple); void vn_handler_set_simple_record (VnHandler * obj, gboolean simple);
#endif #endif