@@ -225,18 +225,20 @@ matrixview_scan( View *view )
225
225
int x , y ;
226
226
GtkTreeIter iter ;
227
227
228
- printf ( "scanning!\n" );
229
-
230
228
gtk_tree_model_get_iter_first ( tree , & iter );
231
229
232
230
for ( y = 0 ; y < height ; y ++ ) {
233
231
for ( x = 0 ; x < width ; x ++ ) {
232
+ double * out = & matrix -> value .coeff [x + y * width ];
233
+
234
234
double d ;
235
235
236
236
gtk_tree_model_get ( tree , & iter , x , & d , -1 );
237
- matrix -> value .coeff [x + y * width ] = d ;
238
237
239
- printf ( "%d, %d = %g\n" , x , y , d );
238
+ if ( * out != d ) {
239
+ * out = d ;
240
+ changed = TRUE;
241
+ }
240
242
}
241
243
242
244
gtk_tree_model_iter_next ( tree , & iter );
@@ -477,6 +479,8 @@ matrixview_liststore_new( MatrixValue *matrixvalue )
477
479
int i , y ;
478
480
GtkListStore * store ;
479
481
482
+ printf ( "matrixview_liststore_new\n" );
483
+
480
484
types = g_new ( GType , width );
481
485
for ( i = 0 ; i < width ; i ++ )
482
486
types [i ] = G_TYPE_DOUBLE ;
@@ -512,8 +516,6 @@ matrixview_edited( GtkCellRendererText *renderer,
512
516
x , atof ( new_text ),
513
517
-1 );
514
518
515
- printf ( "matrixview_edited: %s %d = %s\n" , path , x , new_text );
516
-
517
519
view_scannable_register ( VIEW ( matrixview ) );
518
520
symbol_recalculate_all ();
519
521
}
@@ -988,26 +990,26 @@ matrixview_text_refresh( Matrixview *matrixview )
988
990
MatrixValue * matrixvalue = & matrix -> value ;
989
991
int width = matrixvalue -> width ;
990
992
int height = matrixvalue -> height ;
991
- GtkListStore * store = matrixview -> store ;
993
+ GtkTreeModel * tree = GTK_TREE_MODEL ( matrixview -> store ) ;
992
994
993
- int i , y ;
995
+ int x , y ;
996
+ GtkTreeIter iter ;
994
997
995
998
if ( !matrixvalue -> coeff )
996
999
return ;
997
1000
998
1001
matrixview_text_set ( matrixview , matrixview -> scale , matrix -> scale );
999
1002
matrixview_text_set ( matrixview , matrixview -> offset , matrix -> offset );
1000
1003
1001
- gtk_list_store_clear ( store );
1004
+ gtk_tree_model_get_iter_first ( tree , & iter );
1002
1005
1003
1006
for ( y = 0 ; y < height ; y ++ ) {
1004
- GtkTreeIter iter ;
1005
-
1006
- gtk_list_store_append ( store , & iter );
1007
+ for ( x = 0 ; x < width ; x ++ )
1008
+ gtk_list_store_set ( matrixview -> store , & iter ,
1009
+ x , matrixvalue -> coeff [x + y * width ],
1010
+ -1 );
1007
1011
1008
- for ( i = 0 ; i < width ; i ++ )
1009
- gtk_list_store_set ( store , & iter ,
1010
- i , matrixvalue -> coeff [y * width + i ], -1 );
1012
+ gtk_tree_model_iter_next ( tree , & iter );
1011
1013
}
1012
1014
}
1013
1015
#endif /*!USE_GTKSHEET*/
0 commit comments