# # # patch "AdvancedFind.pm" # from [4514f4250c5591353fd5cebb1f398122c0a479c6] # to [a90306fcf2481e01544f00af6790718417b6f703] # # patch "History.pm" # from [183536b898fbe722e7cb6785cd59753885dfd3c9] # to [fc8d780c02209c8643440fee625c7673e7947cc4] # # patch "WindowManager.pm" # from [c1312855471bec99e61e1ad38becc4cc413a44e0] # to [72764d5731e5cf3bf95be105da2fca5b15089fb2] # # patch "mtn-browse" # from [0fbf2034ed0a65482d8700878ae3d6596746a57e] # to [bfe15c84b9b74a9c6f0b482987d43fe25d5fba8b] # # patch "mtn-browse.glade" # from [330c5bb0527f33a8c4a4d684cb28a976a5056b17] # to [ee150cf030015b3f40d78a83daa28bad07269dd1] # ============================================================ --- AdvancedFind.pm 4514f4250c5591353fd5cebb1f398122c0a479c6 +++ AdvancedFind.pm a90306fcf2481e01544f00af6790718417b6f703 @@ -553,6 +553,7 @@ sub get_advanced_find_window($) "revision_comboboxentry", "tagged_checkbutton", "search_term_comboboxentry", + "stop_button", "term_combobox", "argument_entry", "date_dateedit", @@ -567,7 +568,7 @@ sub get_advanced_find_window($) $instance->{$widget} = $instance->{glade}->get_widget($widget); } - # Setup the advanced find window deletion handlers. + # Setup the advanced find callbacks. $instance->{window}->signal_connect ("delete_event", @@ -582,6 +583,8 @@ sub get_advanced_find_window($) sub { $_[1]->{done} = $_[1]->{selected} = 1 unless ($_[1]->{in_cb}); }, $instance); + $instance->{stop_button}->signal_connect + ("clicked", sub { $_[1]->{stop} = 1; }, $instance); # Setup the comboboxentry key release signal handlers. @@ -644,7 +647,10 @@ sub get_advanced_find_window($) # Register the window for management. - $wm->manage($instance, $window_type, $instance->{window}); + $wm->manage($instance, + $window_type, + $instance->{window}, + $instance->{stop_button}); $wm->add_busy_windows($instance, $instance->{details_textview}-> get_window("text")); @@ -666,6 +672,7 @@ sub get_advanced_find_window($) $instance->{window}->resize($width, $height); $instance->{revisions_hpaned}->set_position(300); $instance->{window}->set_transient_for($browser->{window}); + $instance->{stop_button}->set_sensitive(FALSE); $instance->{branch_combo_details}->{preset} = 0; $instance->{revision_combo_details}->{preset} = 0; $instance->{appbar}->set_progress_percentage(0); @@ -677,6 +684,7 @@ sub get_advanced_find_window($) $instance->{done} = 0; $instance->{selected} = 0; + $instance->{stop} = 0; return $instance; @@ -937,6 +945,7 @@ sub update_advanced_find_state($$) $advanced_find->{appbar}-> set_status(__("Populating revision details")); $counter = 1; + $advanced_find->{stop_button}->set_sensitive(TRUE); foreach my $item (@revision_ids) { $advanced_find->{revisions_liststore}-> @@ -945,7 +954,10 @@ sub update_advanced_find_state($$) $advanced_find->{appbar}->set_progress_percentage ($counter ++ / scalar(@revision_ids)); $wm->update_gui(); + last if ($advanced_find->{stop}); } + $advanced_find->{stop_button}->set_sensitive(FALSE); + $advanced_find->{stop} = 0; $advanced_find->{revisions_treeview}->scroll_to_point(0, 0) if ($advanced_find->{revisions_treeview}->realized()); ============================================================ --- History.pm 183536b898fbe722e7cb6785cd59753885dfd3c9 +++ History.pm fc8d780c02209c8643440fee625c7673e7947cc4 @@ -718,6 +718,8 @@ sub compare_revisions($$$;$) $revision_id_2, $file_name); + $instance->{stop_button}->set_sensitive(TRUE); + # Does the user want pretty printed differences output? if ($user_preferences->{coloured_diffs}) @@ -798,6 +800,10 @@ sub compare_revisions($$$;$) elsif ($lines[$i] =~ m/^==/o) { + # Check for aborts. + + last if ($instance->{stop}); + # Print separator. $instance->{comparison_buffer}-> @@ -1011,6 +1017,8 @@ sub compare_revisions($$$;$) } + $instance->{stop_button}->set_sensitive(FALSE); + # Delete the trailing newline. $iter = $instance->{comparison_buffer}->get_end_iter(); @@ -1573,6 +1581,7 @@ sub get_revision_comparison_window() "comparison_label", "file_comparison_combobox", "external_diffs_button", + "stop_button", "comparison_textview", "comparison_scrolledwindow", "revision_change_log_1_button", @@ -1598,6 +1607,8 @@ sub get_revision_comparison_window() return TRUE; }, $instance); + $instance->{stop_button}->signal_connect + ("clicked", sub { $_[1]->{stop} = 1; }, $instance); # Setup the file combobox. @@ -1668,6 +1679,7 @@ sub get_revision_comparison_window() ($width, $height) = $instance->{window}->get_default_size(); $instance->{window}->resize($width, $height); $instance->{external_diffs_button}->set_sensitive(FALSE); + $instance->{stop_button}->set_sensitive(FALSE); $instance->{file_comparison_combobox}->get_model()->clear(); $instance->{appbar}->set_progress_percentage(0); $instance->{appbar}->clear_stack(); @@ -1677,6 +1689,7 @@ sub get_revision_comparison_window() $instance->{diff_output} = []; $instance->{comparison_buffer}->set_text(""); + $instance->{stop} = 0; return $instance; ============================================================ --- WindowManager.pm c1312855471bec99e61e1ad38becc4cc413a44e0 +++ WindowManager.pm 72764d5731e5cf3bf95be105da2fca5b15089fb2 @@ -65,6 +65,7 @@ my %filtered_events = ("2button-press" "3button-press" => 1, "button-press" => 1, "button-release" => 1, + "delete" => 1, "key-press" => 1, "key-release" => 1, "motion-notify" => 1, ============================================================ --- mtn-browse 0fbf2034ed0a65482d8700878ae3d6596746a57e +++ mtn-browse bfe15c84b9b74a9c6f0b482987d43fe25d5fba8b @@ -395,7 +395,7 @@ sub about_activate_cb($$) if (! defined($large_logo)); Gnome2::About->new ("mtn-browse", - "0.43b", + "0.44b", __("Copyright \xa9 2007-2009 Anthony Cooper"), __("A graphical front-end browser for Monotone VCS databases"), ["Anthony Cooper "], ============================================================ --- mtn-browse.glade 330c5bb0527f33a8c4a4d684cb28a976a5056b17 +++ mtn-browse.glade ee150cf030015b3f40d78a83daa28bad07269dd1 @@ -2430,25 +2430,66 @@ entry field if you cannot remember the s - + True - Execute the query - True - GTK_RELIEF_NONE - True - + False + 0 - + True - gtk-execute - 4 - 0.5 - 0.5 - 0 - 0 + Execute the query + True + GTK_RELIEF_NONE + True + + + + + True + gtk-execute + 4 + 0.5 + 0.5 + 0 + 0 + + + + 0 + False + False + + + + + True + False + Stop displaying the query results + True + GTK_RELIEF_NONE + True + + + + True + gtk-stop + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + 0 @@ -4036,6 +4077,34 @@ selected file in an external viewerFalse + + + + True + False + Stop formatting the comparison results + True + GTK_RELIEF_NONE + True + + + + True + gtk-stop + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + 0