static gint keyPress(GtkWidget* p, GdkEventKey* e, gpointer data) { if (activeTree == NULL) { return FALSE; } if (keyTree(e)) { return FALSE; } if (activeRec == NULL) { return FALSE; } switch (e->keyval) { case GDK_Page_Up: case GDK_KP_Page_Up: if (e->state & GDK_CONTROL_MASK) { setRec(activeTree->ActiveRec+1, data); } break; case GDK_Page_Down: case GDK_KP_Page_Down: if (e->state & GDK_CONTROL_MASK) { setRec(activeTree->ActiveRec-1, data); } break; } return FALSE; }
PUBLIC EdiRec *readRec(cchar *tableName, cchar *key) { if (key == 0 || *key == 0) { key = "1"; } return setRec(ediReadRec(getDatabase(), tableName, key)); }
void menuOpenRec(GtkMenuItem* item, gpointer data) { GtkWidget* d; GtkFileFilter* f; gchar* name = NULL; FILE* r; gchar* err = NULL; if (activeTree == NULL) { return; } d = gtk_file_chooser_dialog_new("Open Reconstruction", GTK_WINDOW(data), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); f = gtk_file_filter_new(); gtk_file_filter_set_name(f, "CSV file"); gtk_file_filter_add_pattern(f, "*.csv"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(d), f); if (gtk_dialog_run(GTK_DIALOG(d)) == GTK_RESPONSE_ACCEPT) { name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(d)); } gtk_widget_destroy(d); if (name == NULL) { return; } r = fopen(name, "r"); err = ReadRecons(r, treeData); fclose(r); if (err != NULL) { errMsg(GTK_WINDOW(data), err); g_free(err); return; } g_free(name); setRec(0, data); }
PUBLIC bool updateRec(EdiRec *rec) { if (!rec) { feedback("error", "Cannot save record"); return 0; } setRec(rec); if (ediUpdateRec(getDatabase(), rec) < 0) { feedback("error", "Cannot save %s", stitle(rec->tableName)); return 0; } feedback("info", "Saved %s", stitle(rec->tableName)); return 1; }
PUBLIC EdiRec *createRec(cchar *tableName, MprJson *params) { return setRec(ediSetFields(ediCreateRec(getDatabase(), tableName), params)); }
PUBLIC EdiRec *readRecByKey(cchar *tableName, cchar *key) { return setRec(ediReadRec(getDatabase(), tableName, key)); }
PUBLIC EdiRec *readRecWhere(cchar *tableName, cchar *fieldName, cchar *operation, cchar *value) { return setRec(ediReadRecWhere(getDatabase(), tableName, fieldName, operation, value)); }
PUBLIC EdiRec *readRec(cchar *tableName) { return setRec(ediReadRec(getDatabase(), tableName, param("id"))); }