aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-06-14 23:05:58 -0400
committerSteven Rostedt <rostedt@goodmis.org>2010-06-14 23:05:58 -0400
commit22c69f37979a25f05606adab53b7e077f5e1b5c3 (patch)
tree98bc42ffa32847f2f2401f2f161ffe473dcbcfd2
parent45c1116397ec5fdcc81bb3fcfcc9290f8d257cf1 (diff)
kernelshark: Warn on start of capture if file exists
Instead of warning that a file exists at the file pop up, warn about it when we execute. Otherwise, we may miss a warning since the user can simply type the file name in. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-capture.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/trace-capture.c b/trace-capture.c
index 65cd4b9..baab180 100644
--- a/trace-capture.c
+++ b/trace-capture.c
@@ -45,6 +45,7 @@
45 45
46struct trace_capture { 46struct trace_capture {
47 struct pevent *pevent; 47 struct pevent *pevent;
48 GtkWidget *main_dialog;
48 GtkWidget *command_entry; 49 GtkWidget *command_entry;
49 GtkWidget *file_entry; 50 GtkWidget *file_entry;
50 GtkWidget *output_text; 51 GtkWidget *output_text;
@@ -617,7 +618,7 @@ file_clicked (GtkWidget *widget, gpointer data)
617 struct trace_capture *cap = data; 618 struct trace_capture *cap = data;
618 gchar *filename; 619 gchar *filename;
619 620
620 filename = trace_get_file_dialog("Trace File", "Save", TRUE); 621 filename = trace_get_file_dialog("Trace File", "Save", FALSE);
621 if (!filename) 622 if (!filename)
622 return; 623 return;
623 624
@@ -627,8 +628,22 @@ file_clicked (GtkWidget *widget, gpointer data)
627static void execute_button_clicked(GtkWidget *widget, gpointer data) 628static void execute_button_clicked(GtkWidget *widget, gpointer data)
628{ 629{
629 struct trace_capture *cap = data; 630 struct trace_capture *cap = data;
631 struct stat st;
632 GtkResponseType ret;
630 GtkWidget *dialog; 633 GtkWidget *dialog;
631 GtkWidget *label; 634 GtkWidget *label;
635 const char *filename;
636
637 filename = gtk_entry_get_text(GTK_ENTRY(cap->file_entry));
638
639 if (stat(filename, &st) >= 0) {
640 ret = trace_dialog(GTK_WINDOW(cap->main_dialog), TRACE_GUI_ASK,
641 "The file '%s' already exists.\n"
642 "Are you sure you want to replace it",
643 filename);
644 if (ret == GTK_RESPONSE_NO)
645 return;
646 }
632 647
633 display_command(cap); 648 display_command(cap);
634 649
@@ -724,6 +739,8 @@ static void tracing_dialog(struct shark_info *info, const char *tracing)
724 GTK_RESPONSE_ACCEPT, 739 GTK_RESPONSE_ACCEPT,
725 NULL); 740 NULL);
726 741
742 cap.main_dialog = dialog;
743
727 if (pevent) { 744 if (pevent) {
728 button = gtk_button_new_with_label("Select Events"); 745 button = gtk_button_new_with_label("Select Events");
729 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), 746 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),