28 |
#include <gtk/gtk.h> |
#include <gtk/gtk.h> |
29 |
#include <string.h> |
#include <string.h> |
30 |
#include <unistd.h> |
#include <unistd.h> |
31 |
|
#include <stdio.h> |
32 |
|
|
33 |
#include "gui_openlogdialog.h" |
#include "gui_openlogdialog.h" |
34 |
#include "gui_warningdialog.h" |
#include "gui_warningdialog.h" |
68 |
return l; |
return l; |
69 |
} |
} |
70 |
|
|
71 |
|
static void |
72 |
|
cb (GtkFileChooser *chooser, gpointer data) |
73 |
|
{ |
74 |
|
GtkWidget *preview; |
75 |
|
gchar *filename, buf[80]; |
76 |
|
gboolean have_preview = FALSE; |
77 |
|
gint i; |
78 |
|
FILE *in; |
79 |
|
GtkTextBuffer *buffer; |
80 |
|
GtkTextIter start, end; |
81 |
|
|
82 |
|
preview = GTK_WIDGET (data); |
83 |
|
filename = gtk_file_chooser_get_preview_filename (chooser); |
84 |
|
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(preview)); |
85 |
|
gtk_text_buffer_get_bounds (buffer, &start, &end); |
86 |
|
gtk_text_buffer_delete (buffer, &start, &end); |
87 |
|
|
88 |
|
in = fopen (filename, "r"); |
89 |
|
if (in) |
90 |
|
{ |
91 |
|
have_preview = TRUE; |
92 |
|
for (i = 0; i < 5; i++) |
93 |
|
{ |
94 |
|
if (fgets (buf, 80, in) == NULL) |
95 |
|
break; |
96 |
|
else if (g_utf8_validate (buf, -1, NULL)) |
97 |
|
gtk_text_buffer_insert_with_tags_by_name |
98 |
|
(buffer, &start, buf, -1, "tiny", NULL); |
99 |
|
} |
100 |
|
} |
101 |
|
gtk_file_chooser_set_preview_widget_active (chooser, have_preview); |
102 |
|
} |
103 |
|
|
104 |
void |
void |
105 |
on_menu_open_activate (GtkMenuItem * menuitem, gpointer user_data) |
on_menu_open_activate (GtkMenuItem * menuitem, gpointer user_data) |
106 |
{ |
{ |
107 |
GtkWidget *fileselection, *combobox, *hbox, *label; |
GtkWidget *fileselection, *combobox, *hbox, *label, *preview; |
108 |
GdkPixbuf *fileselection_icon_pixbuf; |
GdkPixbuf *fileselection_icon_pixbuf; |
109 |
|
GtkTextBuffer *buffer; |
110 |
gchar *filen, *logn, *xlogbackupfile, *temp, *selection; |
gchar *filen, *logn, *xlogbackupfile, *temp, *selection; |
111 |
gchar *sellog; |
gchar *sellog; |
112 |
gboolean logexist = FALSE; |
gboolean logexist = FALSE; |
150 |
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fileselection), selection); |
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fileselection), selection); |
151 |
g_free (selection); |
g_free (selection); |
152 |
|
|
153 |
|
preview = gtk_text_view_new (); |
154 |
|
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (preview), GTK_WRAP_CHAR); |
155 |
|
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(preview)); |
156 |
|
gtk_text_buffer_create_tag (buffer, "tiny", "size", 8 * PANGO_SCALE, NULL); |
157 |
|
gtk_widget_set_size_request (preview, 200, -1); |
158 |
|
gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (fileselection), preview); |
159 |
|
g_signal_connect (fileselection, "update-preview", G_CALLBACK (cb), preview); |
160 |
|
|
161 |
gtk_widget_set_sensitive (mainwindow, 0); |
gtk_widget_set_sensitive (mainwindow, 0); |
162 |
response = gtk_dialog_run (GTK_DIALOG(fileselection)); |
response = gtk_dialog_run (GTK_DIALOG(fileselection)); |
163 |
state.utf8error = FALSE; |
state.utf8error = FALSE; |