SimpleText DAY 7 - テキスト読み込み機能の手直し
無事にテキストファイルを読み込んで textviewに表示できましたが、
OPENボタンをクリックするたびに、同じ内容がどんどん追加されてしまいます。
そこを修正しましょう。
callbacks.cvoid
on_button_open_clicked ( GtkButton *button, gpointer user_data)
{
GtkEntry *entry = (GtkEntry *)lookup_widget((GtkWidget *)button, (gchar *)"entry");
gchar *filename = (gchar *)gtk_entry_get_text(entry);
g_print("%s\n", filename);
GError *error = NULL;
gchar *text;
gsize *size;GIOChannel *filepointer = g_io_channel_new_file(filename, "r", error);
g_io_channel_read_to_end(filepointer, &text, size, &error);
g_io_channel_close(fp);
g_print("%s\n", text);GtkTextIter start, iter;
GtkTextView *textview = (GtkTextView *)lookup_widget((GtkWidget *)button, (gchar *)"textview);
GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(textview);
gtk_text_buffer_get_start_iter(textbuffer, &start);
gtk_text_buffer_get_end_iter(textbuffer, &iter);
gtk_text_buffer_delete(textbuffer, &start, &iter);
gtk_text_buffer_insert(textbuffer, &iter, text, strlen(text));
g_free(text);
}
gtk_text_buffer_delete関数
を使っています。
これで、ファイルを開き直すという動作が正常にできるようになりました。
参考サイト
昨日と同じ http://ilaliart.sourceforge.jp/tips/gtk_jp2.html
/* 保存する前に開き直したり、他のファイルを開いたりすると編集した内容が失われてしまいますが、
そこのあたりを改良するつもりはありません。 あしからず */