# # # patch "AdvancedFind.pm" # from [0df145e7f63d83d0d31fb191e9fd758ef81cac5f] # to [1c1e1b4b9573f5ceec6105e0de31a41fb096213f] # # patch "ComboAutoCompletion.pm" # from [397253841576af0e8935360c5bc39820c7f016e5] # to [7adc08011b27905160b19a5e86e22c705c6265f2] # # patch "Common.pm" # from [c3f5580d02f5d16b1c1364b5e9f3ae74391c3dd1] # to [0880524d5ac531ddc31629040d7b05f4b548d009] # # patch "mtn-browse" # from [b8ae7273e8d6b067c129da19fb005d10996929ad] # to [00bc1cb97a03874ab876f84f1ee5913e8182be95] # # patch "mtn-browse.glade" # from [1bfb2911bbcd59175423e0283fb32ed1fb0960d2] # to [2421c38b711c897d61865b398aad77d1df4133da] # ============================================================ --- AdvancedFind.pm 0df145e7f63d83d0d31fb191e9fd758ef81cac5f +++ AdvancedFind.pm 1c1e1b4b9573f5ceec6105e0de31a41fb096213f @@ -594,17 +594,6 @@ sub get_advanced_find_window($) $instance->{stop_button}->signal_connect ("clicked", sub { $_[1]->{stop} = 1; }, $instance); - # Setup the comboboxentry key release signal handlers. - - $instance->{branch_comboboxentry}->child()-> - signal_connect("key_release_event", - \&comboboxentry_key_release_event_cb, - $instance); - $instance->{revision_comboboxentry}->child()-> - signal_connect("key_release_event", - \&comboboxentry_key_release_event_cb, - $instance); - # Setup the comboboxes. $instance->{branch_comboboxentry}-> ============================================================ --- ComboAutoCompletion.pm 397253841576af0e8935360c5bc39820c7f016e5 +++ ComboAutoCompletion.pm 7adc08011b27905160b19a5e86e22c705c6265f2 @@ -160,28 +160,30 @@ sub comboboxentry_key_release_event_cb($ $combo_details, $complete, $completion, + $entry, $item, $len, $name, $old_complete, $old_value, + $success, $value); - if ($widget == $instance->{branch_comboboxentry}->child()) + if ($widget == $instance->{branch_comboboxentry}) { $combo = $instance->{branch_comboboxentry}; $change_state = BRANCH_CHANGED; $combo_details = $instance->{branch_combo_details}; $name = "branch"; } - elsif ($widget == $instance->{revision_comboboxentry}->child()) + elsif ($widget == $instance->{revision_comboboxentry}) { $combo = $instance->{revision_comboboxentry}; $change_state = REVISION_CHANGED; $combo_details = $instance->{revision_combo_details}; $name = "revision"; } - elsif ($widget == $instance->{directory_comboboxentry}->child()) + elsif ($widget == $instance->{directory_comboboxentry}) { $combo = $instance->{directory_comboboxentry}; $change_state = DIRECTORY_CHANGED; @@ -192,6 +194,7 @@ sub comboboxentry_key_release_event_cb($ { return FALSE; } + $entry = $widget->child(); # The user has typed something in then validate it and auto-complete it if # necessary. @@ -199,7 +202,7 @@ sub comboboxentry_key_release_event_cb($ $complete = 0; $old_complete = $combo_details->{complete}; $old_value = $combo_details->{value}; - $value = $widget->get_text(); + $value = $entry->get_text(); if ($value ne $old_value) { @@ -210,19 +213,28 @@ sub comboboxentry_key_release_event_cb($ if ($value ne substr($old_value, 0, $len)) { - # So that the spacebar triggers auto-complete. + # Initialise a new auto-completion object with a new list of terms + # if it hasn't been done so already. - $value =~ s/\s+$//; - $len = length($value); - $combo_details->{completion} = Completion->new($combo_details->{list}) if (! defined($combo_details->{completion})); - if ($combo_details->{completion}->get_completion($value, - \$completion, - \$complete)) + # Try auto-completing with what we have got, if that fails then try + # stripping off any trailing white space before trying again (this + # means the user can use the spacebar to trigger auto-completion in + # a similar fashion to bash's use of ). + + if (! ($success = $combo_details->{completion}-> + get_completion($value, \$completion, \$complete))) { + $value =~ s/\s+$//; + $len = length($value); + $success = $combo_details->{completion}-> + get_completion($value, \$completion, \$complete); + } + if ($success) + { $instance->{appbar}->clear_stack(); } else @@ -233,10 +245,14 @@ sub comboboxentry_key_release_event_cb($ } $value = $completion; $len = length($value); - $widget->set_text($value); - $widget->set_position(-1); + $entry->set_text($value); + $entry->set_position(-1); } + else + { + $instance->{appbar}->clear_stack(); + } $combo_details->{value} = $value; $combo_details->{complete} = $complete; ============================================================ --- Common.pm c3f5580d02f5d16b1c1364b5e9f3ae74391c3dd1 +++ Common.pm 0880524d5ac531ddc31629040d7b05f4b548d009 @@ -1235,9 +1235,9 @@ sub glade_signal_autoconnect($$) my $func = $after ? "signal_connect_after" : "signal_connect"; # Need to fully qualify any callback name that isn't prefixed by - # it's package name. + # it's package name with the name of the calling package. - $callback_name = "main::" . $callback_name + $callback_name = __PACKAGE__ . "::" . $callback_name if (index($callback_name, "::") < 0); # Actually connect the signal handler. ============================================================ --- mtn-browse b8ae7273e8d6b067c129da19fb005d10996929ad +++ mtn-browse 00bc1cb97a03874ab876f84f1ee5913e8182be95 @@ -48,6 +48,7 @@ use lib LIB_PATH; use constant MIME_GLOB_FILE => "/usr/share/mime/globs"; } use lib LIB_PATH; +use locale; use strict; use warnings; @@ -656,6 +657,8 @@ sub help_toolbutton_clicked_cb($$) return if ($browser->{in_cb}); local $browser->{in_cb} = 1; + # Gnome2::Help->display("mtn-browse.xml"); + my $dialog = Gtk2::MessageDialog->new($browser->{window}, ["modal"], "info", @@ -1516,21 +1519,6 @@ sub get_browser_window(;$$$$$) $browser->{glade}->get_widget($item . "_button")); } - # Setup the comboboxentry key release signal handlers. - - $browser->{branch_comboboxentry}->child()-> - signal_connect("key_release_event", - \&comboboxentry_key_release_event_cb, - $browser); - $browser->{directory_comboboxentry}->child()-> - signal_connect("key_release_event", - \&comboboxentry_key_release_event_cb, - $browser); - $browser->{revision_comboboxentry}->child()-> - signal_connect("key_release_event", - \&comboboxentry_key_release_event_cb, - $browser); - # Setup the comboboxes. $browser->{branch_comboboxentry}-> @@ -1603,10 +1591,6 @@ sub get_browser_window(;$$$$$) $browser->{manifest_browser_treeview}-> set_search_column(MLS_NAME_COLUMN); - # $tv_column = - # $browser->{manifest_treeview}->get_column(MLS_DATE_COLUMN); - # $browser->{manifest_treeview}->remove_column($tv_column); - # Setup the file file viewer (with syntax highlighting). $browser->{file_view_svbuffer} = Gtk2::SourceView::Buffer->new(undef); ============================================================ --- mtn-browse.glade 1bfb2911bbcd59175423e0283fb32ed1fb0960d2 +++ mtn-browse.glade 2421c38b711c897d61865b398aad77d1df4133da @@ -410,6 +410,7 @@ True + 0 @@ -470,6 +471,7 @@ True + 0 @@ -747,6 +749,7 @@ in Monotone-Viz True + 0 @@ -2292,6 +2295,7 @@ specify very specific selection critia True + 0 @@ -2352,6 +2356,7 @@ specify very specific selection critia True + 0