Skip to content

Commit 481b64e

Browse files
committed
don't display trailing zeros in matrixview
1 parent 430ed5e commit 481b64e

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

src/matrixview.c

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ static const int matrixview_max_height = 10;
4949

5050
/* Show a matrix with fixed-width columns.
5151
*/
52-
static const int matrixview_column_width = 75;
52+
static const int matrixview_column_width = 70;
5353

5454
/* Limit number of sub-widgets with this ... could be prefs?
5555
*/
@@ -439,26 +439,40 @@ matrixview_liststore_new( MatrixValue *matrixvalue )
439439
}
440440

441441
static void
442-
matrixview_edited( GtkCellRendererText *renderer,
442+
matrixview_edited_cb( GtkCellRendererText *renderer,
443443
char *path, char *new_text, void *user_data )
444444
{
445445
Matrixview *matrixview = MATRIXVIEW( user_data );
446446
GtkTreeModel *tree = GTK_TREE_MODEL( matrixview->store );
447447
GtkTreeIter iter;
448448

449449
if( gtk_tree_model_get_iter_from_string( tree, &iter, path ) ) {
450-
int x = GPOINTER_TO_INT( g_object_get_data(
450+
int col = GPOINTER_TO_INT( g_object_get_data(
451451
G_OBJECT( renderer ), "nip2_column_num" ) );
452452

453453
gtk_list_store_set( GTK_LIST_STORE( tree ), &iter,
454-
x, atof( new_text ),
454+
col, atof( new_text ),
455455
-1 );
456456

457457
view_scannable_register( VIEW( matrixview ) );
458458
symbol_recalculate_all();
459459
}
460460
}
461461

462+
static void
463+
matrixview_cell_data_cb( GtkTreeViewColumn *tree_column, GtkCellRenderer *cell,
464+
GtkTreeModel *tree, GtkTreeIter *iter, void *data )
465+
{
466+
int col = GPOINTER_TO_INT( g_object_get_data(
467+
G_OBJECT( cell ), "nip2_column_num" ) );
468+
double d;
469+
char buf[256];
470+
471+
gtk_tree_model_get( tree, iter, col, &d, -1 );
472+
vips_snprintf( buf, 256, "%g", d );
473+
g_object_set( cell, "text", buf, NULL );
474+
}
475+
462476
/* Build a set of text items for a matrix.
463477
*/
464478
static void
@@ -489,7 +503,7 @@ matrixview_text_build( Matrixview *matrixview )
489503
g_object_set_data( G_OBJECT( renderer ),
490504
"nip2_column_num", GINT_TO_POINTER( i ) );
491505
g_signal_connect( G_OBJECT( renderer ), "edited",
492-
G_CALLBACK( matrixview_edited ), matrixview );
506+
G_CALLBACK( matrixview_edited_cb ), matrixview );
493507

494508
column = gtk_tree_view_column_new();
495509
gtk_tree_view_column_set_sizing( column,
@@ -502,6 +516,8 @@ matrixview_text_build( Matrixview *matrixview )
502516
gtk_tree_view_column_set_attributes( column, renderer,
503517
"text", i,
504518
NULL );
519+
gtk_tree_view_column_set_cell_data_func( column, renderer,
520+
matrixview_cell_data_cb, NULL, NULL );
505521
gtk_tree_view_append_column( GTK_TREE_VIEW( matrixview->sheet ),
506522
column );
507523
}

0 commit comments

Comments
 (0)