PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ pgui_create_export_table_table()

static void pgui_create_export_table_table ( GtkWidget *  export_list_frame)
static

Definition at line 3078 of file shp2pgsql-gui.c.

3079 {
3080  GtkWidget *vbox_tree;
3081  GtkWidget *sw;
3082  gint *column_indexes;
3083 
3084  gtk_container_set_border_width (GTK_CONTAINER (export_list_frame), 0);
3085 
3086  vbox_tree = gtk_vbox_new(FALSE, 15);
3087  gtk_container_set_border_width(GTK_CONTAINER(vbox_tree), 5);
3088  gtk_container_add(GTK_CONTAINER(export_list_frame), vbox_tree);
3089 
3090  /* Setup a model */
3091  export_table_list_store = gtk_list_store_new(EXPORT_N_COLUMNS,
3092  G_TYPE_POINTER,
3093  G_TYPE_STRING,
3094  G_TYPE_STRING,
3095  G_TYPE_STRING,
3096  GTK_TYPE_TREE_MODEL,
3097  G_TYPE_STRING,
3098  G_TYPE_BOOLEAN);
3099 
3100  /* Create the view and such */
3101  export_tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(export_table_list_store));
3102 
3103  /* GTK has a slightly brain-dead API in that you can't directly find
3104  the column being used by a GtkCellRenderer when using the same
3105  callback to handle multiple fields; hence we manually store this
3106  information here and pass a pointer to the column index into
3107  the signal handler */
3108  column_indexes = g_malloc(sizeof(gint) * EXPORT_N_COLUMNS);
3109 
3110  /* Make the tree view in a scrollable window */
3111  sw = gtk_scrolled_window_new(NULL, NULL);
3112  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
3113  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_ETCHED_IN);
3114  gtk_widget_set_size_request(sw, -1, 150);
3115 
3116  gtk_box_pack_start(GTK_BOX(vbox_tree), sw, TRUE, TRUE, 0);
3117  gtk_container_add(GTK_CONTAINER (sw), export_tree);
3118 
3119  /* Place the "Add Table" button below the list view */
3120  add_table_button = gtk_button_new_with_label(_("Add Table"));
3121  gtk_container_add (GTK_CONTAINER (vbox_tree), add_table_button);
3122 
3123  /* Schema Field */
3124  export_schema_renderer = gtk_cell_renderer_text_new();
3125  g_object_set(export_schema_renderer, "editable", FALSE, NULL);
3126  column_indexes[EXPORT_SCHEMA_COLUMN] = EXPORT_SCHEMA_COLUMN;
3127  g_signal_connect(G_OBJECT(export_schema_renderer), "edited", G_CALLBACK(pgui_action_handle_loader_edit), &column_indexes[EXPORT_SCHEMA_COLUMN]);
3128  export_schema_column = gtk_tree_view_column_new_with_attributes(_("Schema"),
3130  "text",
3132  NULL);
3133  g_object_set(export_schema_column, "resizable", TRUE, "expand", TRUE, "sizing", GTK_TREE_VIEW_COLUMN_AUTOSIZE, NULL);
3134  gtk_tree_view_append_column(GTK_TREE_VIEW(export_tree), export_schema_column);
3135 
3136  /* Table Field */
3137  export_table_renderer = gtk_cell_renderer_text_new();
3138  g_object_set(export_table_renderer, "editable", FALSE, NULL);
3139  column_indexes[EXPORT_TABLE_COLUMN] = EXPORT_TABLE_COLUMN;
3140  g_signal_connect(G_OBJECT(export_table_renderer), "edited", G_CALLBACK(pgui_action_handle_loader_edit), &column_indexes[EXPORT_TABLE_COLUMN]);
3141  export_table_column = gtk_tree_view_column_new_with_attributes(_("Table"),
3143  "text",
3145  NULL);
3146  g_object_set(export_table_column, "resizable", TRUE, "expand", TRUE, "sizing", GTK_TREE_VIEW_COLUMN_AUTOSIZE, NULL);
3147  gtk_tree_view_append_column(GTK_TREE_VIEW(export_tree), export_table_column);
3148 
3149  /* Geo column field */
3150  export_geom_column_combo = gtk_combo_box_new();
3151  export_geom_column_renderer = gtk_cell_renderer_combo_new();
3152  gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(export_geom_column_combo),
3154  g_object_set(export_geom_column_renderer,
3155  "editable", TRUE,
3156  "has-entry", FALSE,
3157  "text-column", TABLECHOOSER_GEOCOL_COMBO_TEXT,
3158  NULL);
3159  export_geom_column = gtk_tree_view_column_new_with_attributes(_("Geo Column"),
3161  "model",
3163  "text",
3165  NULL);
3166  g_object_set(export_geom_column, "resizable", TRUE, "sizing", GTK_TREE_VIEW_COLUMN_AUTOSIZE, NULL);
3167  gtk_tree_view_append_column(GTK_TREE_VIEW(export_tree), export_geom_column);
3168  g_signal_connect (G_OBJECT(export_geom_column_renderer), "changed", G_CALLBACK(pgui_action_handle_table_geocol_combo), NULL);
3169 
3170  /* Filename Field */
3171  export_filename_renderer = gtk_cell_renderer_text_new();
3172  g_object_set(export_filename_renderer, "editable", TRUE, NULL);
3174  g_signal_connect(G_OBJECT(export_filename_renderer), "edited", G_CALLBACK(pgui_action_handle_dumper_edit), &column_indexes[EXPORT_FILENAME_COLUMN]);
3175  export_filename_column = gtk_tree_view_column_new_with_attributes(_("Filename"),
3177  "text",
3179  NULL);
3180  g_object_set(export_filename_column, "resizable", TRUE, "expand", TRUE, "sizing", GTK_TREE_VIEW_COLUMN_AUTOSIZE, NULL);
3181  gtk_tree_view_append_column(GTK_TREE_VIEW(export_tree), export_filename_column);
3182 
3183  /* Remove Field */
3184  export_remove_renderer = gtk_cell_renderer_toggle_new();
3185  g_object_set(export_remove_renderer, "activatable", TRUE, NULL);
3186  g_signal_connect(G_OBJECT(export_remove_renderer), "toggled", G_CALLBACK (pgui_action_handle_table_remove), NULL);
3187  export_remove_column = gtk_tree_view_column_new_with_attributes("Rm",
3188  export_remove_renderer, NULL);
3189  g_object_set(export_remove_column, "resizable", TRUE, "expand", FALSE, "fixed-width", 64, "sizing", GTK_TREE_VIEW_COLUMN_FIXED, NULL);
3190  gtk_tree_view_append_column(GTK_TREE_VIEW(export_tree), export_remove_column);
3191 
3192  g_signal_connect (G_OBJECT (add_table_button), "clicked", G_CALLBACK (pgui_action_open_table_dialog), NULL);
3193 }
#define TRUE
Definition: dbfopen.c:169
#define FALSE
Definition: dbfopen.c:168
GtkCellRenderer * export_schema_renderer
Definition: shp2pgsql-gui.c:83
@ TABLECHOOSER_GEOCOL_COMBO_TEXT
static GtkWidget * add_table_button
Definition: shp2pgsql-gui.c:95
GtkTreeViewColumn * export_remove_column
Definition: shp2pgsql-gui.c:93
GtkCellRenderer * export_geom_column_renderer
Definition: shp2pgsql-gui.c:85
static void pgui_action_handle_table_remove(GtkCellRendererToggle *renderer, gchar *path, gpointer user_data)
GtkTreeViewColumn * export_table_column
Definition: shp2pgsql-gui.c:90
GtkTreeViewColumn * export_schema_column
Definition: shp2pgsql-gui.c:89
@ EXPORT_TABLE_COLUMN
@ EXPORT_N_COLUMNS
@ EXPORT_SCHEMA_COLUMN
@ EXPORT_GEOMETRY_COLUMN
@ EXPORT_FILENAME_COLUMN
@ EXPORT_GEOMETRY_LISTSTORE_COLUMN
static void pgui_action_handle_dumper_edit(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer column)
static void pgui_action_handle_table_geocol_combo(GtkCellRendererCombo *combo, gchar *path_string, GtkTreeIter *new_iter, gpointer user_data)
GtkCellRenderer * export_filename_renderer
Definition: shp2pgsql-gui.c:86
GtkTreeViewColumn * export_geom_column
Definition: shp2pgsql-gui.c:91
GtkListStore * export_table_list_store
Definition: shp2pgsql-gui.c:80
GtkWidget * export_tree
Definition: shp2pgsql-gui.c:81
static void pgui_action_handle_loader_edit(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer column)
static void pgui_action_open_table_dialog(GtkWidget *widget, gpointer data)
GtkWidget * export_geom_column_combo
Definition: shp2pgsql-gui.c:82
GtkCellRenderer * export_remove_renderer
Definition: shp2pgsql-gui.c:87
GtkCellRenderer * export_table_renderer
Definition: shp2pgsql-gui.c:84
GtkTreeViewColumn * export_filename_column
Definition: shp2pgsql-gui.c:92
#define _(String)
Definition: shpcommon.h:24

References _, add_table_button, export_filename_column, EXPORT_FILENAME_COLUMN, export_filename_renderer, export_geom_column, export_geom_column_combo, export_geom_column_renderer, EXPORT_GEOMETRY_COLUMN, EXPORT_GEOMETRY_LISTSTORE_COLUMN, EXPORT_N_COLUMNS, export_remove_column, export_remove_renderer, export_schema_column, EXPORT_SCHEMA_COLUMN, export_schema_renderer, export_table_column, EXPORT_TABLE_COLUMN, export_table_list_store, export_table_renderer, export_tree, FALSE, pgui_action_handle_dumper_edit(), pgui_action_handle_loader_edit(), pgui_action_handle_table_geocol_combo(), pgui_action_handle_table_remove(), pgui_action_open_table_dialog(), TABLECHOOSER_GEOCOL_COMBO_TEXT, and TRUE.

Referenced by pgui_create_main_window().

Here is the call graph for this function:
Here is the caller graph for this function: