#
#
# patch "lib/perl/AdvancedFind.pm"
# from [2e6a8f72c9e2c69f85924b229a62ba71a974a9bf]
# to [09e91dd3b0bdf7d3cd924de52572eb08018b287f]
#
# patch "lib/perl/Common.pm"
# from [f2ee7741d79bf65a42e70c61c19122e45e9402e4]
# to [450a3318ac84e9b66911ac91ad42065267493e79]
#
# patch "lib/perl/FindFiles.pm"
# from [65cd5974cc8192ab2f72bf75467f6fdd77cc5068]
# to [85ba835b5b5b1b5b5266973af5711fd6660652ee]
#
# patch "lib/perl/Preferences.pm"
# from [1aff77d84e25bc356263724647e787e12cb88f24]
# to [ca998b905ed0288f6ae382d3297e89c64c38779e]
#
# patch "lib/ui/mtn-browse.glade"
# from [8601c9c63f24e449ff2af42b19f5e722aa755583]
# to [960512beb54230deef97e1e6fe61a826df8d06c3]
#
# patch "mtn-browse"
# from [5e8e62c785b3bcd0573e7c355ca3bc567e32a1d8]
# to [441164fbe6ab758e910f2cbf08ad0411ddb4422f]
#
============================================================
--- lib/perl/AdvancedFind.pm 2e6a8f72c9e2c69f85924b229a62ba71a974a9bf
+++ lib/perl/AdvancedFind.pm 09e91dd3b0bdf7d3cd924de52572eb08018b287f
@@ -665,8 +665,12 @@ sub get_advanced_find_window($)
$tv_column->set_attributes($renderer, "text" => AFLS_AUTHOR_COLUMN);
$instance->{revisions_treeview}->append_column($tv_column);
+ treeview_setup_search_column_selection
+ ($instance->{revisions_treeview}, 0 .. 3);
$instance->{revisions_treeview}->
set_search_column(AFLS_REVISION_ID_COLUMN);
+ $instance->{revisions_treeview}->
+ set_search_equal_func(\&treeview_column_searcher);
# Setup the revision details viewer.
@@ -715,6 +719,8 @@ sub get_advanced_find_window($)
$instance->{revision_combo_details}->{preset} = 0;
$instance->{appbar}->set_progress_percentage(0);
$instance->{appbar}->clear_stack();
+ $instance->{revisions_treeview}->
+ set_search_column(AFLS_REVISION_ID_COLUMN);
&{$instance->{update_handler}}($instance, NEW_FIND);
$instance->{window}->show_all();
============================================================
--- lib/perl/Common.pm f2ee7741d79bf65a42e70c61c19122e45e9402e4
+++ lib/perl/Common.pm 450a3318ac84e9b66911ac91ad42065267493e79
@@ -73,6 +73,8 @@ sub set_label_value($$);
sub run_command($@);
sub save_as_file($$$);
sub set_label_value($$);
+sub treeview_column_searcher($$$$);
+sub treeview_setup_search_column_selection($@);
#
##############################################################################
#
@@ -546,6 +548,163 @@ sub save_as_file($$$)
#
##############################################################################
#
+# Routine - treeview_setup_search_column_selection
+#
+# Description - Setup the specified treeview column headers so that the
+# user can select which column to search in.
+#
+# Data - $treeview : The treeview widget that is to have this
+# feature enabled on it.
+# @columns : A list of column numbers that are to be setup.
+#
+##############################################################################
+
+
+
+sub treeview_setup_search_column_selection($@)
+{
+
+ my($treeview, @columns) = @_;
+
+ foreach my $col_nr (@columns)
+ {
+
+ my($button,
+ $col,
+ $label);
+
+ next unless (defined($col = $treeview->get_column($col_nr)));
+
+ # We need to add a widget if we are going to get back a button widget
+ # from $treeview->get_parent() (this is just how Gtk2 works, I guess
+ # the header widgets are by default some sort of cut down affair).
+
+ $label = Gtk2::Label->new($col->get_title());
+ $col->set_widget($label);
+ $label->show();
+
+ # Find the header button widget.
+
+ for ($button = $col->get_widget();
+ defined($button) && ! $button->isa("Gtk2::Button");
+ $button = $button->get_parent())
+ {
+ }
+ next unless (defined($button));
+
+ # Attach a mouse button press event callback to the column header
+ # button.
+
+ $button->signal_connect
+ ("button_press_event",
+ sub {
+
+ my($widget, $event, $data) = @_;
+
+ # We are only interested in right button mouse clicks.
+
+ return FALSE unless ($event->button() == 3);
+
+ my($menu,
+ $menu_item);
+
+ # Create a popup menu with the search option in it.
+
+ $menu = Gtk2::Menu->new();
+ $menu_item = Gtk2::MenuItem->new("Select As Search Column");
+ $menu->append($menu_item);
+ $menu_item->show();
+
+ # Setup a callback that will set up that column for searchin
+ # if the user should select the option.
+
+ $menu_item->signal_connect
+ ("activate",
+ sub {
+
+ my($widget, $data) = @_;
+
+ $data->{treeview}->
+ set_search_column($data->{col_nr});
+
+ },
+ $data);
+
+ # Display the popup menu.
+
+ $menu->popup(undef,
+ undef,
+ undef,
+ undef,
+ $event->button(),
+ $event->time());
+
+ return TRUE;
+
+ },
+ {treeview => $treeview,
+ col_nr => $col_nr});
+
+ }
+
+}
+#
+##############################################################################
+#
+# Routine - treeview_column_searcher
+#
+# Description - Callback routine used for comparing search terms with data
+# inside a particular treeview's cell.
+#
+# Data - $model : The underlying data model used by the
+# treeview.
+# $column : The number of the search column.
+# $key : The data that is to be searched for.
+# $iter : The treeview iterator for the row that is to
+# be compared.
+# Return Value : TRUE if there is no match, otherwise FALSE
+# if there is.
+#
+##############################################################################
+
+
+
+sub treeview_column_searcher($$$$)
+{
+
+ my($model, $column, $key, $iter) = @_;
+
+ my($re,
+ $value);
+
+ # Get the value in the treeview's cell.
+
+ $value = $model->get($iter, $column);
+
+ # Compile the user's regular expression and return a no-match if it doesn't
+ # compile.
+
+ eval
+ {
+ $re = qr/$key/;
+ };
+ return TRUE if ($@ ne "");
+
+ # Actually do the match.
+
+ if ($value =~ m/$re/)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+
+}
+#
+##############################################################################
+#
# Routine - get_branch_revisions
#
# Description - Get a list of revision ids or tags for the specified branch
============================================================
--- lib/perl/FindFiles.pm 65cd5974cc8192ab2f72bf75467f6fdd77cc5068
+++ lib/perl/FindFiles.pm 85ba835b5b5b1b5b5266973af5711fd6660652ee
@@ -971,8 +971,10 @@ sub get_find_files_window()
$tv_column->set_attributes($renderer, "text" => 0);
$instance->{results_treeview}->append_column($tv_column);
$instance->{results_treeview}->set_search_column(0);
+ $instance->{results_treeview}->
+ set_search_equal_func(\&treeview_column_searcher);
- # Disable the approprate widgets by default.
+ # Disable the appropriate widgets by default.
for my $widget (@{$instance->{date_sensitive_group}},
@{$instance->{size_sensitive_group}})
============================================================
--- lib/perl/Preferences.pm 1aff77d84e25bc356263724647e787e12cb88f24
+++ lib/perl/Preferences.pm ca998b905ed0288f6ae382d3297e89c64c38779e
@@ -1111,7 +1111,11 @@ sub get_preferences_window($$)
$tv_column->set_attributes($renderer, "text" => MTLS_HELPER_COLUMN);
$instance->{mime_types_treeview}->append_column($tv_column);
+ treeview_setup_search_column_selection
+ ($instance->{mime_types_treeview}, 0 .. 2);
$instance->{mime_types_treeview}->set_search_column(MTLS_NAME_COLUMN);
+ $instance->{mime_types_treeview}->
+ set_search_equal_func(\&treeview_column_searcher);
# Setup the file name patterns list.
@@ -1128,6 +1132,8 @@ sub get_preferences_window($$)
$instance->{file_name_patterns_treeview}->append_column($tv_column);
$instance->{file_name_patterns_treeview}->set_search_column(0);
+ $instance->{file_name_patterns_treeview}->
+ set_search_equal_func(\&treeview_column_searcher);
# Reparent the preferences window to the specified parent.
@@ -1162,6 +1168,7 @@ sub get_preferences_window($$)
$instance->{mime_types_hpaned}->set_position(700);
$instance->{window}->set_transient_for($parent);
$instance->{preferences} = $preferences;
+ $instance->{mime_types_treeview}->set_search_column(MTLS_NAME_COLUMN);
load_preferences_into_gui($instance);
$instance->{window}->show_all();
============================================================
--- lib/ui/mtn-browse.glade 8601c9c63f24e449ff2af42b19f5e722aa755583
+++ lib/ui/mtn-browse.glade 960512beb54230deef97e1e6fe61a826df8d06c3
@@ -901,7 +901,7 @@ or more search criteria
False
- True
+ False
@@ -2835,7 +2835,7 @@ Tag
False
- True
+ False
@@ -7291,7 +7291,7 @@ of the command
False
- True
+ False
============================================================
--- mtn-browse 5e8e62c785b3bcd0573e7c355ca3bc567e32a1d8
+++ mtn-browse 441164fbe6ab758e910f2cbf08ad0411ddb4422f
@@ -1589,11 +1589,15 @@ sub get_browser_window(;$$$$$)
$tv_column->set_attributes($renderer, "text" => MLS_AUTHOR_COLUMN);
$browser->{manifest_browser_treeview}->append_column($tv_column);
+ treeview_setup_search_column_selection
+ ($browser->{manifest_browser_treeview}, 1 .. 3);
}
$browser->{show_file_details} = $user_preferences->{show_file_details};
$browser->{manifest_browser_treeview}->
set_search_column(MLS_NAME_COLUMN);
+ $browser->{manifest_browser_treeview}->
+ set_search_equal_func(\&treeview_column_searcher);
# Setup the file file viewer (with syntax highlighting).
@@ -1661,6 +1665,8 @@ sub get_browser_window(;$$$$$)
$browser->{revision_combo_details}->{preset} = 0;
$browser->{directory_combo_details}->{preset} = 0;
$browser->{file_being_viewed_preset_value} = "";
+ $browser->{manifest_browser_treeview}->
+ set_search_column(MLS_NAME_COLUMN);
$browser->{show_line_numbers_togglebutton}->set_active(FALSE);
$browser->{file_view_sv}->set_show_line_numbers(FALSE);
&{$browser->{update_handler}}($browser, ALL_CHANGED);