static void workspacedefs_refresh( vObject *vobject ) { Workspacedefs *workspacedefs = WORKSPACEDEFS( vobject ); Workspace *ws = workspacedefs->ws; char txt[256]; VipsBuf buf = VIPS_BUF_STATIC( txt ); #ifdef DEBUG printf( "workspacedefs_refresh:\n" ); #endif /*DEBUG*/ if( !workspacedefs->changed ) { guint text_hash = g_str_hash( ws->local_defs ); if( text_hash != workspacedefs->text_hash ) { g_signal_handlers_block_by_func( gtk_text_view_get_buffer( GTK_TEXT_VIEW( workspacedefs->text ) ), workspacedefs_text_changed, workspacedefs ); text_view_set_text( GTK_TEXT_VIEW( workspacedefs->text ), ws->local_defs, TRUE ); g_signal_handlers_unblock_by_func( gtk_text_view_get_buffer( GTK_TEXT_VIEW( workspacedefs->text ) ), workspacedefs_text_changed, workspacedefs ); workspacedefs->text_hash = text_hash; } } if( ws->local_kit ) { int n = icontainer_get_n_children( ICONTAINER( ws->local_kit ) ); vips_buf_appendf( &buf, ngettext( "%d definition", "%d definitions", n ), n ); } if( workspacedefs->errors ) { if( !vips_buf_is_empty( &buf ) ) vips_buf_appendf( &buf, ", " ); vips_buf_appendf( &buf, _( "errors" ) ); } if( workspacedefs->changed ) { if( !vips_buf_is_empty( &buf ) ) vips_buf_appendf( &buf, ", " ); vips_buf_appendf( &buf, _( "modified" ) ); } set_glabel( workspacedefs->status, "%s", vips_buf_all( &buf ) ); VOBJECT_CLASS( parent_class )->refresh( vobject ); }
void import_write(Logbook *logbook) { GPid pid; int fdin, fdout, fderr; FILE *fin=NULL, *fout=NULL, *ferr=NULL; GError *error=NULL; gchar *argv[] = {"./importcsv", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(logbook->import_write_force)) ? "-f" : "", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(logbook->import_write_dryrun)) ? "-d" : "", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(logbook->import_write_overwrite)) ? "-o" : "", logbook->db_filename, NULL}; if (g_spawn_async_with_pipes(NULL, argv, NULL, 0, NULL, NULL, &pid, &fdin, &fdout, &fderr, &error)) { if (!((fin = fdopen(fdin, "ab")) && (fout = fdopen(fdout, "rb")) && (ferr = fdopen(fderr, "rb")))) { fprintf(stderr, "spawn_script fdopen failed\n"); exit(1); } store_fwrite_csv(GTK_TREE_VIEW(logbook->import_interpreted_treeview), fin); fclose(fin); int c; GString *gsout, *gserr; gsout = g_string_new(""); gserr = g_string_new(""); while ((c = fgetc(fout)) != EOF) { gsout = g_string_append_c(gsout, c); } while ((c = fgetc(ferr)) != EOF) { gserr = g_string_append_c(gserr, c); } fclose(fout); fclose(ferr); text_view_set_text(GTK_TEXT_VIEW(logbook->import_response_text), gsout->str); g_string_free(gsout, FALSE); g_string_free(gserr, FALSE); logbook->flights_stale = TRUE; logbook->aircraft_stale = TRUE; logbook->roles_stale = TRUE; logbook->models_stale = TRUE; logbook->airports_stale = TRUE; } else { fprintf(stderr, "Could not open database import program\n"); } }
void on_reports_title_changed(GtkWidget *entry, Logbook *logbook) { if (GTK_WIDGET_HAS_FOCUS(entry)) { reports_set_modified(logbook); gtk_expander_set_expanded(GTK_EXPANDER(logbook->reports_sql_expander), TRUE); } else { db_bind_text(logbook->reports_sql_by_title, 1, gtk_entry_get_text(GTK_ENTRY(logbook->reports_title))); db_step(logbook->reports_sql_by_title); fprintf(stderr, "Error's from here ...\n"); text_view_set_text(GTK_TEXT_VIEW(logbook->reports_sql_text), (char*)db_column_text(logbook->reports_sql_by_title, 0)); fprintf(stderr, "... to here during delete.\n"); db_reset(logbook->reports_sql_by_title); db_clear_bindings(logbook->reports_sql_by_title); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(logbook->reports_armdel_btn), FALSE); gtk_widget_set_sensitive(logbook->reports_armdel_btn, TRUE); gtk_widget_set_sensitive(logbook->reports_del_btn, FALSE); gtk_widget_set_sensitive(logbook->reports_save_btn, FALSE); } }