summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--walls_model.c24
-rw-r--r--walls_model.h1
-rw-r--r--window_main.c12
3 files changed, 24 insertions, 13 deletions
diff --git a/walls_model.c b/walls_model.c
index 0cfc4f8..f7f9bb0 100644
--- a/walls_model.c
+++ b/walls_model.c
@@ -74,12 +74,11 @@ static void walls_model_init(WallsModel *walls_model) {
walls_model->n_columns = WALLS_MODEL_N_COLUMNS;
walls_model->column_types[0] = G_TYPE_STRING;
- walls_model->column_types[1] = G_TYPE_UINT64;
- walls_model->column_types[2] = G_TYPE_INT;
- walls_model->column_types[3] = G_TYPE_INT;
- walls_model->column_types[4] = G_TYPE_INT;
+ walls_model->column_types[1] = G_TYPE_STRING;
+ walls_model->column_types[2] = G_TYPE_STRING;
+ walls_model->column_types[3] = G_TYPE_STRING;
- g_assert(WALLS_MODEL_N_COLUMNS == 5);
+ g_assert(WALLS_MODEL_N_COLUMNS == 4);
walls_model->num_rows = 0;
walls_model->rows = g_array_new(TRUE, FALSE, sizeof(WallsModelRecord));
@@ -277,7 +276,11 @@ static void walls_model_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, g
// g_return_if_reached();
if(record->type == WALLS_MODEL_TYPE_DIR) {
- g_value_set_string(value, record->dir.name);
+ if(column == WALLS_MODEL_COL_NAME) {
+ g_value_set_string(value, record->dir.name);
+ } else {
+ g_value_set_string(value, "");
+ }
return;
}
@@ -285,17 +288,14 @@ static void walls_model_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, g
case WALLS_MODEL_COL_NAME:
g_value_set_string(value, record->wall.filepath);
break;
- case WALLS_MODEL_COL_ID:
- g_value_set_uint64(value, record->wall.id);
- break;
case WALLS_MODEL_COL_SIZE:
- g_value_set_int(value, record->wall.size);
+ g_value_set_string_take_ownership(value, g_strdup_printf("%d", record->wall.size));
break;
case WALLS_MODEL_COL_WIDTH:
- g_value_set_int(value, record->wall.width);
+ g_value_set_string_take_ownership(value, g_strdup_printf("%d", record->wall.width));
break;
case WALLS_MODEL_COL_HEIGHT:
- g_value_set_int(value, record->wall.height);
+ g_value_set_string_take_ownership(value, g_strdup_printf("%d", record->wall.height));
break;
}
}
diff --git a/walls_model.h b/walls_model.h
index a5cc779..4f9f43a 100644
--- a/walls_model.h
+++ b/walls_model.h
@@ -20,7 +20,6 @@ enum {
enum {
WALLS_MODEL_COL_NAME = 0,
- WALLS_MODEL_COL_ID,
WALLS_MODEL_COL_SIZE,
WALLS_MODEL_COL_WIDTH,
WALLS_MODEL_COL_HEIGHT,
diff --git a/window_main.c b/window_main.c
index 376d604..bca438a 100644
--- a/window_main.c
+++ b/window_main.c
@@ -36,6 +36,18 @@ inline static void filetree_init(GtkTreeView *filetree) {
gtk_tree_view_column_pack_start(col1, renderer, TRUE);
gtk_tree_view_column_add_attribute(col1, renderer, "text", 0);
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(col2, renderer, TRUE);
+ gtk_tree_view_column_add_attribute(col2, renderer, "text", 1);
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(col3, renderer, TRUE);
+ gtk_tree_view_column_add_attribute(col3, renderer, "text", 2);
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(col4, renderer, TRUE);
+ gtk_tree_view_column_add_attribute(col4, renderer, "text", 3);
+
filetree_create_model(filetree);
}