78
doSave( GtkWindow * parent,
79
struct MsgData * data,
80
const char * filename )
78
doSave( GtkWindow * parent, struct MsgData * data, const char * filename )
82
80
FILE * fp = fopen( filename, "w+" );
87
_( "Couldn't save file \"%1$s\": %2$s" ),
88
filename, g_strerror( errno ) );
84
GtkWidget * w = gtk_message_dialog_new( parent, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _( "Couldn't save \"%s\"" ), filename );
85
gtk_message_dialog_format_secondary_text( GTK_MESSAGE_DIALOG( w ), "%s", g_strerror( errno ) );
86
g_signal_connect_swapped( w, "response", G_CALLBACK( gtk_widget_destroy ), w );
93
92
GtkTreeModel * model = GTK_TREE_MODEL( data->sort );
94
93
if( gtk_tree_model_iter_children( model, &iter, NULL ) ) do
97
const char * levelStr;
98
const struct tr_msg_list * node;
100
gtk_tree_model_get( model, &iter,
103
date = gtr_localtime( node->when );
104
switch( node->level )
107
levelStr = "debug"; break;
110
levelStr = "error"; break;
113
levelStr = " "; break;
115
fprintf( fp, "%s\t%s\t%s\t%s\n", date, levelStr,
116
( node->name ? node->name : "" ),
117
( node->message ? node->message : "" ) );
96
const char * levelStr;
97
const struct tr_msg_list * node;
99
gtk_tree_model_get( model, &iter, COL_TR_MSG, &node, -1 );
100
date = gtr_localtime( node->when );
101
switch( node->level ) {
102
case TR_MSG_DBG: levelStr = "debug"; break;
103
case TR_MSG_ERR: levelStr = "error"; break;
104
default: levelStr = " "; break;
121
while( gtk_tree_model_iter_next( model, &iter ) );
106
fprintf( fp, "%s\t%s\t%s\t%s\n", date, levelStr,
107
( node->name ? node->name : "" ),
108
( node->message ? node->message : "" ) );
111
while( gtk_tree_model_iter_next( model, &iter ) );
128
onSaveDialogResponse( GtkWidget * d,
118
onSaveDialogResponse( GtkWidget * d, int response, gpointer data )
132
120
if( response == GTK_RESPONSE_ACCEPT )
135
gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( d ) );
136
doSave( GTK_WINDOW( d ), data, filename );
122
char * file = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( d ) );
123
doSave( GTK_WINDOW( d ), data, file );
140
127
gtk_widget_destroy( d );