diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-06-14 23:05:58 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-06-14 23:05:58 -0400 |
commit | 22c69f37979a25f05606adab53b7e077f5e1b5c3 (patch) | |
tree | 98bc42ffa32847f2f2401f2f161ffe473dcbcfd2 | |
parent | 45c1116397ec5fdcc81bb3fcfcc9290f8d257cf1 (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.c | 19 |
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 | ||
46 | struct trace_capture { | 46 | struct 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) | |||
627 | static void execute_button_clicked(GtkWidget *widget, gpointer data) | 628 | static 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), |