# # # patch "AdvancedFind.pm" # from [4e025d82592fe98cdb9e1df31ac1dbe2278468ba] # to [4057f374a82a5720b9654a9a3ab11fa5c8e08d7b] # # patch "Annotate.pm" # from [abaefdb3414d1ed69ef1f8129263d2a03cc7ac40] # to [a7ea5986f0e39d4cf61ae584d78506669d7b99ed] # # patch "ChangeLog.pm" # from [1e2e21a37698986ddd54ecb0ad513bcb4b9abb3a] # to [a87b32ed216e2953730f2408f305b1ee80481a67] # # patch "ComboAutoCompletion.pm" # from [e834a5d7ef5b66632cc65b252a2eaa215d35a317] # to [d07d96a4ba4b54a3eb15d93d7ff3d0deb64342ee] # # patch "FindText.pm" # from [4c2dc62b2849560aeb391b55b864c9b4c2da4fc7] # to [c617752847f5c43e194ac5ef24ab91ab85d1cc8d] # # patch "History.pm" # from [b5af4e8073eac3e228920a6d2692a972e73e07f0] # to [ee85354b0b069da7197afafbfa22e1307e389ea6] # # patch "Utilities.pm" # from [450ecc0dbbd4e283c632819a4c7635c8f568d43c] # to [458875b2f3623c910d08ea3aa72d8729b4fec91b] # # patch "WindowManager.pm" # from [36ef984a1f656a2eb160c4d9316ddb4d8e9a20bd] # to [ac9adeeda684e518512e1adb1ca5bfd3a0287d2c] # # patch "mtn-browse" # from [b3ff08e94a6620361198ea6c22cb2aeb133ed7de] # to [e0a9d3e52bf31b902b4b351e04438ec745d22ac6] # # patch "mtn-browse.glade" # from [ed03f710e7da03d40189c0a0aa689a620f81c5d5] # to [ac69e48f4192d5158b9be1062af533b3b54e518f] # ============================================================ --- AdvancedFind.pm 4e025d82592fe98cdb9e1df31ac1dbe2278468ba +++ AdvancedFind.pm 4057f374a82a5720b9654a9a3ab11fa5c8e08d7b @@ -112,8 +112,8 @@ sub advanced_find($$$) $advanced_find->{revision_combo_details}->{value} = $browser->{revision_combo_details}->{value}; - $advanced_find->{tagged_tick}-> - set_active($browser->{tagged_tick}->get_active()); + $advanced_find->{tagged_checkbutton}-> + set_active($browser->{tagged_checkbutton}->get_active()); &{$advanced_find->{update_handler}}($advanced_find, NEW_FIND); @@ -176,207 +176,6 @@ sub advanced_find($$$) # ############################################################################## # -# Routine - get_advanced_find_window -# -# Description - Creates or prepares an existing advanced find dialog window -# for use. -# -# Data - $browser : The browser instance that started the -# advanced find. -# Return Value : A reference to the newly created or unused -# advanced find instance record. -# -############################################################################## - - - -sub get_advanced_find_window($) -{ - - my $browser = $_[0]; - - my $instance; - my $window_type = "advanced_find_window"; - my $wm = WindowManager->instance(); - - # Create a new advanced find dialog window if an unused one wasn't found, - # otherwise reuse an existing unused one. - - if (! defined($instance = $wm->find_unused($window_type))) - { - - my($renderer, - $tv_column); - - $instance = {}; - $instance->{glade} = Gtk2::GladeXML->new($glade_file, $window_type); - $instance->{mtn} = $browser->{mtn}; - - # Flag to stop recursive calling of callbacks. - - $instance->{in_cb} = 0; - - # Connect Glade registered signal handlers. - - glade_signal_autoconnect($instance->{glade}, $instance); - - # Link in the update handler for the advanced find window. - - $instance->{update_handler} = \&update_advanced_find_state; - - # Get the widgets that we are interested in. - - $instance->{window} = $instance->{glade}->get_widget($window_type); - $instance->{appbar} = $instance->{glade}->get_widget("appbar"); - $instance->{simple_query_radiobutton} = - $instance->{glade}->get_widget("simple_query_radiobutton"); - $instance->{simple_frame} = - $instance->{glade}->get_widget("simple_frame"); - $instance->{advanced_frame} = - $instance->{glade}->get_widget("advanced_frame"); - $instance->{branch_combo} = - $instance->{glade}->get_widget("branch_comboboxentry"); - $instance->{revision_combo} = - $instance->{glade}->get_widget("revision_comboboxentry"); - $instance->{tagged_tick} = - $instance->{glade}->get_widget("tagged_checkbutton"); - $instance->{search_term_combo} = - $instance->{glade}->get_widget("search_term_comboboxentry"); - $instance->{term_combo} = - $instance->{glade}->get_widget("term_combobox"); - $instance->{argument_entry} = - $instance->{glade}->get_widget("argument_entry"); - $instance->{date_dateedit} = - $instance->{glade}->get_widget("date_dateedit"); - $instance->{revisions_treeview} = - $instance->{glade}->get_widget("revisions_treeview"); - $instance->{details_textview} = - $instance->{glade}->get_widget("details_textview"); - $instance->{details_scrolledwindow} = - $instance->{glade}->get_widget("details_scrolledwindow"); - $instance->{selected_branch_label} = - $instance->{glade}->get_widget("selected_branch_value_label"); - $instance->{selected_revision_label} = - $instance->{glade}->get_widget("selected_revision_value_label"); - $instance->{ok_button} = $instance->{glade}->get_widget("ok_button"); - - # Setup the advanced find window deletion handlers. - - $instance->{window}->signal_connect - ("delete_event", - sub { $_[2]->{done} = 1 unless ($_[2]->{in_cb}); return TRUE; }, - $instance); - $instance->{glade}->get_widget("cancel_button")->signal_connect - ("clicked", - sub { $_[1]->{done} = 1 unless ($_[1]->{in_cb}); }, - $instance); - $instance->{glade}->get_widget("ok_button")->signal_connect - ("clicked", - sub { $_[1]->{done} = $_[1]->{selected} = 1 - unless ($_[1]->{in_cb}); }, - $instance); - - # Setup the comboboxentry key release signal handlers. - - $instance->{branch_combo}->child()-> - signal_connect("key_release_event", - \&combo_key_release_event_cb, - $instance); - $instance->{revision_combo}->child()-> - signal_connect("key_release_event", - \&combo_key_release_event_cb, - $instance); - - # Setup the comboboxes. - - $instance->{branch_combo}-> - set_model(Gtk2::ListStore->new("Glib::String")); - $instance->{branch_combo}->set_text_column(0); - $instance->{branch_combo}->set_wrap_width(2); - $instance->{revision_combo}-> - set_model(Gtk2::ListStore->new("Glib::String")); - $instance->{revision_combo}->set_text_column(0); - $instance->{revision_combo}->set_wrap_width(2); - $instance->{search_term_combo}-> - set_model(Gtk2::ListStore->new("Glib::String")); - $instance->{search_term_combo}->set_text_column(0); - $instance->{query_history} = []; - $instance->{term_combo}->set_active(0); - - # Setup the revisions list browser. - - $instance->{revisions_liststore} = - Gtk2::ListStore->new("Glib::String"); - $instance->{revisions_treeview}-> - set_model($instance->{revisions_liststore}); - $tv_column = Gtk2::TreeViewColumn->new(); - $tv_column->set_title("Matching Revision Ids"); - $tv_column->set_sort_column_id(0); - $renderer = Gtk2::CellRendererText->new(); - $tv_column->pack_start($renderer, FALSE); - $tv_column->set_attributes($renderer, "text" => 0); - $instance->{revisions_treeview}->append_column($tv_column); - $instance->{revisions_treeview}->set_search_column(0); - - # Setup the revision details viewer. - - $instance->{details_buffer} = - $instance->{details_textview}->get_buffer(); - create_format_tags($instance->{details_textview}->get_buffer()); - $instance->{details_textview}->modify_font($mono_font); - - # Update the advanced find dialog's state. - - $instance->{window}->set_transient_for($browser->{window}); - $instance->{branch_combo_details}->{preset} = 0; - $instance->{revision_combo_details}->{preset} = 0; - &{$instance->{update_handler}}($instance, NEW_FIND); - - local $instance->{in_cb} = 1; - $instance->{window}->show_all(); - - # Register the window for management. - - $wm->manage($instance, $window_type); - $wm->add_busy_widgets($instance, - $instance->{details_textview}-> - get_window("text")); - - } - else - { - - my($height, - $width); - - $instance->{in_cb} = 0; - local $instance->{in_cb} = 1; - - # Reset the advanced find dialog's state. - - $instance->{mtn} = $browser->{mtn}; - ($width, $height) = $instance->{window}->get_default_size(); - $instance->{window}->resize($width, $height); - $instance->{glade}->get_widget("revisions_hpaned")->set_position(300); - $instance->{window}->set_transient_for($browser->{window}); - $instance->{branch_combo_details}->{preset} = 0; - $instance->{revision_combo_details}->{preset} = 0; - $instance->{appbar}->set_progress_percentage(0); - $instance->{appbar}->clear_stack(); - &{$instance->{update_handler}}($instance, NEW_FIND); - $instance->{window}->show_all(); - - } - - $instance->{done} = 0; - $instance->{selected} = 0; - - return $instance; - -} -# -############################################################################## -# # Routine - simple_query_radiobutton_toggled_cb # # Description - Callback routine called when the user changes the advanced @@ -481,8 +280,8 @@ sub populate_button_clicked_cb($$) # Simply get the currently selected selector and then insert it into the # user's query string. - $selector = $advanced_find->{term_combo}->get_model()->get - ($advanced_find->{term_combo}->get_active_iter(), 0); + $selector = $advanced_find->{term_combobox}->get_model()->get + ($advanced_find->{term_combobox}->get_active_iter(), 0); $arg = $advanced_find->{argument_entry}->get_text(); $time_val = strftime("%Y-%m-%dT%H:%M:%S", localtime($advanced_find->{date_dateedit}-> @@ -533,10 +332,11 @@ sub populate_button_clicked_cb($$) $to_insert = "t:" . (($arg eq "") ? "" : $arg); } - $pos = $advanced_find->{search_term_combo}->child()->get_position(); - $advanced_find->{search_term_combo}->child()->insert_text + $pos = + $advanced_find->{search_term_comboboxentry}->child()->get_position(); + $advanced_find->{search_term_comboboxentry}->child()->insert_text ($to_insert, $pos); - $advanced_find->{search_term_combo}->child()->set_position + $advanced_find->{search_term_comboboxentry}->child()->set_position ($pos + length($to_insert)); } @@ -574,8 +374,8 @@ sub term_combobox_changed_cb($$) # Simply get the currently selected term and then enable/disable the text # entry and date entry widgets accordingly. - $selector = $advanced_find->{term_combo}->get_model()->get - ($advanced_find->{term_combo}->get_active_iter(), 0); + $selector = $advanced_find->{term_combobox}->get_model()->get + ($advanced_find->{term_combobox}->get_active_iter(), 0); if ($selector =~ m/^Date .*$/o) { @@ -691,6 +491,196 @@ sub revisions_treeview_row_activated_cb( # ############################################################################## # +# Routine - get_advanced_find_window +# +# Description - Creates or prepares an existing advanced find dialog window +# for use. +# +# Data - $browser : The browser instance that started the +# advanced find. +# Return Value : A reference to the newly created or unused +# advanced find instance record. +# +############################################################################## + + + +sub get_advanced_find_window($) +{ + + my $browser = $_[0]; + + my $instance; + my $window_type = "advanced_find_window"; + my $wm = WindowManager->instance(); + + # Create a new advanced find dialog window if an unused one wasn't found, + # otherwise reuse an existing unused one. + + if (! defined($instance = $wm->find_unused($window_type))) + { + + my($renderer, + $tv_column); + + $instance = {}; + $instance->{glade} = Gtk2::GladeXML->new($glade_file, $window_type); + $instance->{mtn} = $browser->{mtn}; + + # Flag to stop recursive calling of callbacks. + + $instance->{in_cb} = 0; + + # Connect Glade registered signal handlers. + + glade_signal_autoconnect($instance->{glade}, $instance); + + # Link in the update handler for the advanced find window. + + $instance->{update_handler} = \&update_advanced_find_state; + + # Get the widgets that we are interested in. + + $instance->{window} = $instance->{glade}->get_widget($window_type); + foreach my $widget ("appbar", + "simple_query_radiobutton", + "simple_frame", + "advanced_frame", + "branch_comboboxentry", + "revision_comboboxentry", + "tagged_checkbutton", + "search_term_comboboxentry", + "term_combobox", + "argument_entry", + "date_dateedit", + "revisions_hpaned", + "revisions_treeview", + "details_textview", + "details_scrolledwindow", + "selected_branch_value_label", + "selected_revision_value_label", + "ok_button") + { + $instance->{$widget} = $instance->{glade}->get_widget($widget); + } + + # Setup the advanced find window deletion handlers. + + $instance->{window}->signal_connect + ("delete_event", + sub { $_[2]->{done} = 1 unless ($_[2]->{in_cb}); return TRUE; }, + $instance); + $instance->{glade}->get_widget("cancel_button")->signal_connect + ("clicked", + sub { $_[1]->{done} = 1 unless ($_[1]->{in_cb}); }, + $instance); + $instance->{glade}->get_widget("ok_button")->signal_connect + ("clicked", + sub { $_[1]->{done} = $_[1]->{selected} = 1 + unless ($_[1]->{in_cb}); }, + $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}-> + set_model(Gtk2::ListStore->new("Glib::String")); + $instance->{branch_comboboxentry}->set_text_column(0); + $instance->{branch_comboboxentry}->set_wrap_width(2); + $instance->{revision_comboboxentry}-> + set_model(Gtk2::ListStore->new("Glib::String")); + $instance->{revision_comboboxentry}->set_text_column(0); + $instance->{revision_comboboxentry}->set_wrap_width(2); + $instance->{search_term_comboboxentry}-> + set_model(Gtk2::ListStore->new("Glib::String")); + $instance->{search_term_comboboxentry}->set_text_column(0); + $instance->{query_history} = []; + $instance->{term_combobox}->set_active(0); + + # Setup the revisions list browser. + + $instance->{revisions_liststore} = + Gtk2::ListStore->new("Glib::String"); + $instance->{revisions_treeview}-> + set_model($instance->{revisions_liststore}); + $tv_column = Gtk2::TreeViewColumn->new(); + $tv_column->set_title("Matching Revision Ids"); + $tv_column->set_sort_column_id(0); + $renderer = Gtk2::CellRendererText->new(); + $tv_column->pack_start($renderer, FALSE); + $tv_column->set_attributes($renderer, "text" => 0); + $instance->{revisions_treeview}->append_column($tv_column); + $instance->{revisions_treeview}->set_search_column(0); + + # Setup the revision details viewer. + + $instance->{details_buffer} = + $instance->{details_textview}->get_buffer(); + create_format_tags($instance->{details_textview}->get_buffer()); + $instance->{details_textview}->modify_font($mono_font); + + # Update the advanced find dialog's state. + + $instance->{window}->set_transient_for($browser->{window}); + $instance->{branch_combo_details}->{preset} = 0; + $instance->{revision_combo_details}->{preset} = 0; + &{$instance->{update_handler}}($instance, NEW_FIND); + + local $instance->{in_cb} = 1; + $instance->{window}->show_all(); + + # Register the window for management. + + $wm->manage($instance, $window_type); + $wm->add_busy_widgets($instance, + $instance->{details_textview}-> + get_window("text")); + + } + else + { + + my($height, + $width); + + $instance->{in_cb} = 0; + local $instance->{in_cb} = 1; + + # Reset the advanced find dialog's state. + + $instance->{mtn} = $browser->{mtn}; + ($width, $height) = $instance->{window}->get_default_size(); + $instance->{window}->resize($width, $height); + $instance->{revisions_hpaned}->set_position(300); + $instance->{window}->set_transient_for($browser->{window}); + $instance->{branch_combo_details}->{preset} = 0; + $instance->{revision_combo_details}->{preset} = 0; + $instance->{appbar}->set_progress_percentage(0); + $instance->{appbar}->clear_stack(); + &{$instance->{update_handler}}($instance, NEW_FIND); + $instance->{window}->show_all(); + + } + + $instance->{done} = 0; + $instance->{selected} = 0; + + return $instance; + +} +# +############################################################################## +# # Routine - update_advanced_find_state # # Description - Update the display of the specified advanced find dialog @@ -759,15 +749,15 @@ sub update_advanced_find_state($$) $advanced_find->{appbar}->set_status("Populating branch list"); gtk2_update(); my $counter = 1; - $advanced_find->{branch_combo}->get_model()->clear(); + $advanced_find->{branch_comboboxentry}->get_model()->clear(); foreach my $branch (@branch_list) { - $advanced_find->{branch_combo}->append_text($branch); + $advanced_find->{branch_comboboxentry}->append_text($branch); $advanced_find->{appbar}->set_progress_percentage ($counter ++ / scalar(@branch_list)); gtk2_update(); } - $advanced_find->{branch_combo}->child()-> + $advanced_find->{branch_comboboxentry}->child()-> set_text($advanced_find->{branch_combo_details}->{value}); $advanced_find->{appbar}->set_progress_percentage(0); $advanced_find->{appbar}->set_status(""); @@ -805,7 +795,7 @@ sub update_advanced_find_state($$) # Get either a list of tags or revision ids depending upon what the # user has chosen. - if ($advanced_find->{tagged_tick}->get_active()) + if ($advanced_find->{tagged_checkbutton}->get_active()) { my(%dup_list, @list); @@ -849,15 +839,15 @@ sub update_advanced_find_state($$) $advanced_find->{appbar}->set_status("Populating revision list"); gtk2_update(); my $counter = 1; - $advanced_find->{revision_combo}->get_model()->clear(); + $advanced_find->{revision_comboboxentry}->get_model()->clear(); foreach my $revision (@revision_list) { - $advanced_find->{revision_combo}->append_text($revision); + $advanced_find->{revision_comboboxentry}->append_text($revision); $advanced_find->{appbar}->set_progress_percentage ($counter ++ / scalar(@revision_list)); gtk2_update(); } - $advanced_find->{revision_combo}->child()-> + $advanced_find->{revision_comboboxentry}->child()-> set_text($advanced_find->{revision_combo_details}->{value}); $advanced_find->{appbar}->set_progress_percentage(0); $advanced_find->{appbar}->set_status(""); @@ -893,7 +883,8 @@ sub update_advanced_find_state($$) { my($err, $query); - $query = $advanced_find->{search_term_combo}->child()->get_text(); + $query = $advanced_find->{search_term_comboboxentry}->child()-> + get_text(); # Remember the user can type in any old rubbish with advanced # queries! So protect ourselves. @@ -955,10 +946,11 @@ sub update_advanced_find_state($$) { pop(@{$advanced_find->{query_history}}); } - $advanced_find->{search_term_combo}->get_model()->clear(); + $advanced_find->{search_term_comboboxentry}->get_model()-> + clear(); foreach my $entry (@{$advanced_find->{query_history}}) { - $advanced_find->{search_term_combo}-> + $advanced_find->{search_term_comboboxentry}-> append_text($entry); } } @@ -997,7 +989,7 @@ sub update_advanced_find_state($$) if ($advanced_find->{revisions_treeview_details}->{value} ne "") { - if ($advanced_find->{selected_revision_label}->get_text() + if ($advanced_find->{selected_revision_value_label}->get_text() ne $advanced_find->{revisions_treeview_details}->{value}) { my($branch, @@ -1042,9 +1034,10 @@ sub update_advanced_find_state($$) last; } } - set_label_value($advanced_find->{selected_branch_label}, + set_label_value($advanced_find->{selected_branch_value_label}, $branch); - set_label_value($advanced_find->{selected_revision_label}, + set_label_value($advanced_find-> + {selected_revision_value_label}, $advanced_find->{revisions_treeview_details}-> {value}); @@ -1055,8 +1048,9 @@ sub update_advanced_find_state($$) { $advanced_find->{ok_button}->set_sensitive(FALSE); $advanced_find->{details_buffer}->set_text(""); - set_label_value($advanced_find->{selected_branch_label}, ""); - set_label_value($advanced_find->{selected_revision_label}, ""); + set_label_value($advanced_find->{selected_branch_value_label}, ""); + set_label_value($advanced_find->{selected_revision_value_label}, + ""); } } ============================================================ --- Annotate.pm abaefdb3414d1ed69ef1f8129263d2a03cc7ac40 +++ Annotate.pm a7ea5986f0e39d4cf61ae584d78506669d7b99ed @@ -229,11 +229,12 @@ sub get_annotation_window() # Get the widgets that we are interested in. $instance->{window} = $instance->{glade}->get_widget($window_type); - $instance->{appbar} = $instance->{glade}->get_widget("appbar"); - $instance->{annotation_textview} = - $instance->{glade}->get_widget("annotation_textview"); - $instance->{annotation_scrolledwindow} = - $instance->{glade}->get_widget("annotation_scrolledwindow"); + foreach my $widget ("appbar", + "annotation_textview", + "annotation_scrolledwindow") + { + $instance->{$widget} = $instance->{glade}->get_widget($widget); + } # Setup the annotation window deletion handler. ============================================================ --- ChangeLog.pm 1e2e21a37698986ddd54ecb0ad513bcb4b9abb3a +++ ChangeLog.pm a87b32ed216e2953730f2408f305b1ee80481a67 @@ -146,10 +146,11 @@ sub get_change_log_window() # Get the widgets that we are interested in. $instance->{window} = $instance->{glade}->get_widget($window_type); - $instance->{changelog_textview} = - $instance->{glade}->get_widget("changelog_textview"); - $instance->{changelog_scrolledwindow} = - $instance->{glade}->get_widget("changelog_scrolledwindow"); + foreach my $widget ("changelog_textview", + "changelog_scrolledwindow") + { + $instance->{$widget} = $instance->{glade}->get_widget($widget); + } # Setup the changelog window deletion handler. ============================================================ --- ComboAutoCompletion.pm e834a5d7ef5b66632cc65b252a2eaa215d35a317 +++ ComboAutoCompletion.pm d07d96a4ba4b54a3eb15d93d7ff3d0deb64342ee @@ -5,7 +5,7 @@ # Description - The combo box auto-completion utilities module for the # mtn-browse application. This module contains assorted # routines that implement auto-completion for all branch and -# revision combo boxes. +# revision comboboxentry boxes. # # Author - A.E.Cooper. # @@ -49,12 +49,12 @@ use strict; # Public routines. -sub combo_changed_cb($$); -sub combo_key_release_event_cb($$$); +sub comboboxentry_changed_cb($$); +sub comboboxentry_key_release_event_cb($$$); # ############################################################################## # -# Routine - combo_changed_cb +# Routine - comboboxentry_changed_cb # # Description - Callback routine called when the user changes the value of # a branch or revision comboboxentry by selecting an entry @@ -68,7 +68,7 @@ sub combo_key_release_event_cb($$$); -sub combo_changed_cb($$) +sub comboboxentry_changed_cb($$) { my($widget, $instance) = @_; @@ -81,17 +81,17 @@ sub combo_changed_cb($$) $item, $value); - if ($widget == $instance->{branch_combo}) + if ($widget == $instance->{branch_comboboxentry}) { $change_state = BRANCH_CHANGED; $combo_details = $instance->{branch_combo_details}; } - elsif ($widget == $instance->{revision_combo}) + elsif ($widget == $instance->{revision_comboboxentry}) { $change_state = REVISION_CHANGED; $combo_details = $instance->{revision_combo_details}; } - elsif ($widget == $instance->{directory_combo}) + elsif ($widget == $instance->{directory_comboboxentry}) { $change_state = DIRECTORY_CHANGED; $combo_details = $instance->{directory_combo_details}; @@ -125,7 +125,7 @@ sub combo_changed_cb($$) # ############################################################################## # -# Routine - combo_key_release_event_cb +# Routine - comboboxentry_key_release_event_cb # # Description - Callback routine called when the user changes the value of # a branch or revision comboboxentry by entering a character @@ -145,7 +145,7 @@ sub combo_changed_cb($$) -sub combo_key_release_event_cb($$$) +sub comboboxentry_key_release_event_cb($$$) { my($widget, $event, $instance) = @_; @@ -165,23 +165,23 @@ sub combo_key_release_event_cb($$$) $old_value, $value); - if ($widget == $instance->{branch_combo}->child()) + if ($widget == $instance->{branch_comboboxentry}->child()) { - $combo = $instance->{branch_combo}; + $combo = $instance->{branch_comboboxentry}; $change_state = BRANCH_CHANGED; $combo_details = $instance->{branch_combo_details}; $name = "branch"; } - elsif ($widget == $instance->{revision_combo}->child()) + elsif ($widget == $instance->{revision_comboboxentry}->child()) { - $combo = $instance->{revision_combo}; + $combo = $instance->{revision_comboboxentry}; $change_state = REVISION_CHANGED; $combo_details = $instance->{revision_combo_details}; $name = "revision"; } - elsif ($widget == $instance->{directory_combo}->child()) + elsif ($widget == $instance->{directory_comboboxentry}->child()) { - $combo = $instance->{directory_combo}; + $combo = $instance->{directory_comboboxentry}; $change_state = DIRECTORY_CHANGED; $combo_details = $instance->{directory_combo_details}; $name = "directory"; ============================================================ --- FindText.pm 4c2dc62b2849560aeb391b55b864c9b4c2da4fc7 +++ FindText.pm c617752847f5c43e194ac5ef24ab91ab85d1cc8d @@ -60,7 +60,7 @@ sub reset_find_text($); # Private routines. -sub find_combo_changed_cb($$); +sub find_comboboxentry_changed_cb($$); sub find_current_window($); sub get_find_text_window($$); # @@ -117,7 +117,7 @@ sub reset_find_text($) # Simply reset the search context for the found find text window. $instance->{match_offset_start} = $instance->{match_offset_end} = -1 - if (defined(find_current_window($text_view))); + if (defined($instance = find_current_window($text_view))); } # @@ -146,7 +146,7 @@ sub disable_find_text($$) # Simply disable/enable the found find text window. - if (defined(find_current_window($text_view))) + if (defined($instance = find_current_window($text_view))) { if ($disable) { @@ -157,7 +157,8 @@ sub disable_find_text($$) { $instance->{main_vbox}->set_sensitive(TRUE); $instance->{find_button}->set_sensitive - ((length($instance->{find_combo}->child()->get_text()) > 0) ? + ((length($instance->{find_comboboxentry}->child()->get_text()) + > 0) ? TRUE : FALSE); } } @@ -198,24 +199,8 @@ sub find_button_clicked_cb($$) $search_term, $start_iter); - $search_term = $instance->{find_combo}->child()->get_text(); + $search_term = $instance->{find_comboboxentry}->child()->get_text(); - # Just check that the user actually entered something. - - if (length($search_term) == 0) - { - my $dialog; - $dialog = Gtk2::MessageDialog->new - ($instance->{window}, - ["modal"], - "info", - "close", - "Enter some text to\nsearch for first."); - $dialog->run(); - $dialog->destroy(); - return; - } - # Store the search term in the history. $found = 0; @@ -233,17 +218,17 @@ sub find_button_clicked_cb($$) { pop(@{$instance->{search_history}}); } - $instance->{find_combo}->get_model()->clear(); + $instance->{find_comboboxentry}->get_model()->clear(); foreach my $entry (@{$instance->{search_history}}) { - $instance->{find_combo}->append_text($entry); + $instance->{find_comboboxentry}->append_text($entry); } } # Get the search parameters. - $case_sensitive = $instance->{case_sensitive_tick}->get_active(); - $forward = ! $instance->{search_backwards_tick}->get_active(); + $case_sensitive = $instance->{case_sensitive_checkbutton}->get_active(); + $forward = ! $instance->{search_backwards_checkbutton}->get_active(); # Work out where to start searching from. @@ -398,7 +383,7 @@ sub find_button_clicked_cb($$) # ############################################################################## # -# Routine - find_combo_changed_cb +# Routine - find_comboboxentry_changed_cb # # Description - Callback routine called when the user changes the value of # the find text comboboxentry by selecting an entry from its @@ -412,7 +397,7 @@ sub find_button_clicked_cb($$) -sub find_combo_changed_cb($$) +sub find_comboboxentry_changed_cb($$) { my($widget, $instance) = @_; @@ -421,7 +406,7 @@ sub find_combo_changed_cb($$) local $instance->{in_cb} = 1; $instance->{find_button}->set_sensitive - ((length($instance->{find_combo}->child()->get_text()) > 0) ? + ((length($instance->{find_comboboxentry}->child()->get_text()) > 0) ? TRUE : FALSE); } @@ -462,9 +447,11 @@ sub find_current_window($) # # Description - Creates or prepares an existing find text window for use. # -# Data - $parent : The parent window widget for the find text -# window. -# $text_view : The textview widget that is to be searched. +# Data - $parent : The parent window widget for the find text +# window. +# $text_view : The textview widget that is to be searched. +# Return Value : A reference to the newly created or unused +# find text instance record. # ############################################################################## @@ -499,15 +486,14 @@ sub get_find_text_window($$) # Get the widgets that we are interested in. $instance->{window} = $instance->{glade}->get_widget($window_type); - $instance->{main_vbox} = $instance->{glade}->get_widget("main_vbox"); - $instance->{find_combo} = - $instance->{glade}->get_widget("find_comboboxentry"); - $instance->{case_sensitive_tick} = - $instance->{glade}->get_widget("case_sensitive_checkbutton"); - $instance->{search_backwards_tick} = - $instance->{glade}->get_widget("search_backwards_checkbutton"); - $instance->{find_button} = - $instance->{glade}->get_widget("find_button"); + foreach my $widget ("main_vbox", + "find_comboboxentry", + "case_sensitive_checkbutton", + "search_backwards_checkbutton", + "find_button") + { + $instance->{$widget} = $instance->{glade}->get_widget($widget); + } # Setup the find text window deletion handlers. @@ -533,14 +519,16 @@ sub get_find_text_window($$) # Setup the comboboxentry changed signal handler. - $instance->{find_combo}->child()-> - signal_connect("changed", \&find_combo_changed_cb, $instance); + $instance->{find_comboboxentry}->child()-> + signal_connect("changed", + \&find_comboboxentry_changed_cb, + $instance); # Setup the combobox. - $instance->{find_combo}-> + $instance->{find_comboboxentry}-> set_model(Gtk2::ListStore->new("Glib::String")); - $instance->{find_combo}->set_text_column(0); + $instance->{find_comboboxentry}->set_text_column(0); $instance->{search_history} = []; } else @@ -560,7 +548,7 @@ sub get_find_text_window($$) # into the comboboxentry widget. $instance->{find_button}->set_sensitive - ((length($instance->{find_combo}->child()->get_text()) > 0) ? + ((length($instance->{find_comboboxentry}->child()->get_text()) > 0) ? TRUE : FALSE); # Store the associated textview and text buffer. ============================================================ --- History.pm b5af4e8073eac3e228920a6d2692a972e73e07f0 +++ History.pm ee85354b0b069da7197afafbfa22e1307e389ea6 @@ -137,7 +137,7 @@ sub display_revision_change_history($$) # Display the file's history. $instance->{appbar}->set_progress_percentage(0); - $instance->{appbar}->set_status("Displaying file history"); + $instance->{appbar}->set_status("Displaying revision history"); gtk2_update(); $counter = 1; $instance->{stop} = 0; @@ -252,7 +252,7 @@ sub display_revision_change_history($$) } $instance->{stop_button}->set_sensitive(FALSE); - set_label_value($instance->{numbers_label}, $counter) + set_label_value($instance->{numbers_value_label}, $counter) if ($instance->{stop}); # Make sure we are at the top. @@ -497,23 +497,25 @@ sub history_list_button_clicked_cb($$) if ($details->{button_type} eq "1") { $instance->{first_revision_id} = $revision_id; - set_label_value($instance->{revision_id_1_label}, $revision_id); + set_label_value($instance->{revision_id_1_value_label}, + $revision_id); if ($instance->{first_revision_id} eq $instance->{second_revision_id}) { $instance->{second_revision_id} = ""; - set_label_value($instance->{revision_id_2_label}, ""); + set_label_value($instance->{revision_id_2_value_label}, ""); } } else { $instance->{second_revision_id} = $revision_id; - set_label_value($instance->{revision_id_2_label}, $revision_id); + set_label_value($instance->{revision_id_2_value_label}, + $revision_id); if ($instance->{second_revision_id} eq $instance->{first_revision_id}) { $instance->{first_revision_id} = ""; - set_label_value($instance->{revision_id_1_label}, ""); + set_label_value($instance->{revision_id_1_value_label}, ""); } } if ($instance->{first_revision_id} ne "" @@ -880,11 +882,11 @@ sub compare_revisions($$$;$) gtk2_update(); @files = sort({ $a->{file_name} cmp $b->{file_name} } @files); $i = 1; - $instance->{file_combo}->get_model()->clear(); + $instance->{file_comparison_combobox}->get_model()->clear(); foreach my $file (@files) { - $instance->{file_combo}->get_model()->set - ($instance->{file_combo}->get_model()->append(), + $instance->{file_comparison_combobox}->get_model()->set + ($instance->{file_comparison_combobox}->get_model()->append(), CLS_NAME_COLUMN, $file->{file_name}, CLS_LINE_NR_COLUMN, $file->{line_nr}); $instance->{appbar}->set_progress_percentage($i ++ / scalar(@files)); @@ -935,8 +937,9 @@ sub file_comparison_combobox_changed_cb( # Get the line number related to the selected file and then jump to it. - $line_nr = $instance->{file_combo}->get_model()->get - ($instance->{file_combo}->get_active_iter(), CLS_LINE_NR_COLUMN); + $line_nr = $instance->{file_comparison_combobox}->get_model()->get + ($instance->{file_comparison_combobox}->get_active_iter(), + CLS_LINE_NR_COLUMN); $iter = $instance->{comparison_buffer}->get_iter_at_line($line_nr); $instance->{comparison_textview}->scroll_to_iter($iter, 0, TRUE, 0, 0); @@ -972,7 +975,7 @@ sub coloured_revision_change_log_button_ # Work out what revision id to use. - if ($widget == $instance->{red_revision_button}) + if ($widget == $instance->{red_revision_change_log_button}) { $revision_id = $instance->{red_revision_id}; $colour = "red"; @@ -1028,23 +1031,18 @@ sub get_history_window() # Get the widgets that we are interested in. $instance->{window} = $instance->{glade}->get_widget($window_type); - $instance->{appbar} = $instance->{glade}->get_widget("appbar"); - $instance->{history_label} = - $instance->{glade}->get_widget("history_label"); - $instance->{history_textview} = - $instance->{glade}->get_widget("history_textview"); - $instance->{history_scrolledwindow} = - $instance->{glade}->get_widget("history_scrolledwindow"); - $instance->{stop_button} = - $instance->{glade}->get_widget("stop_button"); - $instance->{compare_button} = - $instance->{glade}->get_widget("compare_button"); - $instance->{numbers_label} = - $instance->{glade}->get_widget("numbers_value_label"); - $instance->{revision_id_1_label} = - $instance->{glade}->get_widget("revision_id_1_value_label"); - $instance->{revision_id_2_label} = - $instance->{glade}->get_widget("revision_id_2_value_label"); + foreach my $widget ("appbar", + "history_label", + "history_textview", + "history_scrolledwindow", + "stop_button", + "compare_button", + "numbers_value_label", + "revision_id_1_value_label", + "revision_id_2_value_label") + { + $instance->{$widget} = $instance->{glade}->get_widget($widget); + } # Setup the file history callbacks. @@ -1061,9 +1059,7 @@ sub get_history_window() }, $instance); $instance->{stop_button}->signal_connect - ("clicked", - sub { $_[1]->{stop} = 1 unless ($_[1]->{in_cb}); }, - $instance); + ("clicked", sub { $_[1]->{stop} = 1; }, $instance); # Setup the file history viewer. @@ -1089,9 +1085,9 @@ sub get_history_window() $instance->{window}->resize($width, $height); $instance->{stop_button}->set_sensitive(FALSE); $instance->{compare_button}->set_sensitive(FALSE); - set_label_value($instance->{numbers_label}, ""); - set_label_value($instance->{revision_id_1_label}, ""); - set_label_value($instance->{revision_id_2_label}, ""); + set_label_value($instance->{numbers_value_label}, ""); + set_label_value($instance->{revision_id_1_value_label}, ""); + set_label_value($instance->{revision_id_2_value_label}, ""); $instance->{appbar}->set_progress_percentage(0); $instance->{appbar}->clear_stack(); } @@ -1141,7 +1137,8 @@ sub get_file_history_helper($$$) if (! exists($hash->{$revision})) { $hash->{$revision} = 1; - set_label_value($instance->{numbers_label}, scalar(keys(%$hash))); + set_label_value($instance->{numbers_value_label}, + scalar(keys(%$hash))); gtk2_update(); @parents = (); $instance->{mtn}->parents(address@hidden, $revision); @@ -1186,7 +1183,8 @@ sub get_revision_history_helper($$$) if (! exists($hash->{$parent})) { $hash->{$parent} = 1; - set_label_value($instance->{numbers_label}, scalar(keys(%$hash))); + set_label_value($instance->{numbers_value_label}, + scalar(keys(%$hash))); gtk2_update(); get_revision_history_helper($instance, $hash, $parent); } @@ -1237,19 +1235,15 @@ sub get_revision_comparison_window() # Get the widgets that we are interested in. $instance->{window} = $instance->{glade}->get_widget($window_type); - $instance->{appbar} = $instance->{glade}->get_widget("appbar"); - $instance->{comparison_label} = - $instance->{glade}->get_widget("comparison_label"); - $instance->{file_combo} = - $instance->{glade}->get_widget("file_comparison_combobox"); - $instance->{comparison_textview} = - $instance->{glade}->get_widget("comparison_textview"); - $instance->{comparison_scrolledwindow} = - $instance->{glade}->get_widget("comparison_scrolledwindow"); - $instance->{red_revision_button} = - $instance->{glade}->get_widget("red_revision_change_log_button"); - $instance->{green_revision_button} = - $instance->{glade}->get_widget("green_revision_change_log_button"); + foreach my $widget ("appbar", + "comparison_label", + "file_comparison_combobox", + "comparison_textview", + "comparison_scrolledwindow", + "red_revision_change_log_button") + { + $instance->{$widget} = $instance->{glade}->get_widget($widget); + } # Setup the file history callbacks. @@ -1260,7 +1254,7 @@ sub get_revision_comparison_window() return TRUE if ($instance->{in_cb}); local $instance->{in_cb} = 1; $widget->hide(); - $instance->{file_combo}->get_model()->clear(); + $instance->{file_comparison_combobox}->get_model()->clear(); $instance->{comparison_buffer}->set_text(""); $instance->{mtn} = undef; return TRUE; @@ -1269,13 +1263,14 @@ sub get_revision_comparison_window() # Setup the file combobox. - $instance->{file_combo}-> + $instance->{file_comparison_combobox}-> set_model(Gtk2::ListStore->new("Glib::String", "Glib::Int")); $renderer = Gtk2::CellRendererText->new(); - $instance->{file_combo}->pack_start($renderer, TRUE); - $instance->{file_combo}->add_attribute($renderer, "text" => 0); - $instance->{file_combo}->get_model()->set - ($instance->{file_combo}->get_model()->append(), + $instance->{file_comparison_combobox}->pack_start($renderer, TRUE); + $instance->{file_comparison_combobox}->add_attribute($renderer, + "text" => 0); + $instance->{file_comparison_combobox}->get_model()->set + ($instance->{file_comparison_combobox}->get_model()->append(), CLS_NAME_COLUMN, " ", CLS_LINE_NR_COLUMN, 0); @@ -1299,7 +1294,7 @@ sub get_revision_comparison_window() local $instance->{in_cb} = 1; ($width, $height) = $instance->{window}->get_default_size(); $instance->{window}->resize($width, $height); - $instance->{file_combo}->get_model()->clear(); + $instance->{file_comparison_combobox}->get_model()->clear(); $instance->{appbar}->set_progress_percentage(0); $instance->{appbar}->clear_stack(); } ============================================================ --- Utilities.pm 450ecc0dbbd4e283c632819a4c7635c8f568d43c +++ Utilities.pm 458875b2f3623c910d08ea3aa72d8729b4fec91b @@ -48,6 +48,7 @@ use strict; # Public routines. +sub colour_to_string($); sub create_format_tags($); sub generate_revision_report($$$$;$); sub generate_tmp_path($); @@ -533,7 +534,7 @@ sub get_revision_ids($$) @$revision_ids=(); return unless ($instance->{revision_combo_details}->{complete}); - if ($instance->{tagged_tick}->get_active()) + if ($instance->{tagged_checkbutton}->get_active()) { $instance->{mtn}-> select($revision_ids, @@ -622,7 +623,7 @@ sub create_format_tags($) sub create_format_tags($) { - my($text_buffer) = @_; + my $text_buffer = $_[0]; # Normal Black text, assorted styles, on a white background. @@ -711,6 +712,32 @@ sub create_format_tags($) # ############################################################################## # +# Routine - colour_to_string +# +# Description - Returns a string representing the specified +# Gtk2::Gdk::Color value. +# +# Data - $colour : A Gtk2::Gdk::Color object. +# Return Value : A string containing the colour value. +# +############################################################################## + + + +sub colour_to_string($) +{ + + my $colour = $_[0]; + + return sprintf("#%02X%02X%02X", + ($colour->red() >> 8) & 0xff, + ($colour->green() >> 8) & 0xff, + ($colour->blue() >> 8) & 0xff); + +} +# +############################################################################## +# # Routine - set_label_value # # Description - Set the text for the given label and the tooltip for the ============================================================ --- WindowManager.pm 36ef984a1f656a2eb160c4d9316ddb4d8e9a20bd +++ WindowManager.pm ac9adeeda684e518512e1adb1ca5bfd3a0287d2c @@ -55,6 +55,7 @@ use Carp; # Standard Perl and CPAN modules. use Carp; +use Gtk2; # ***** GLOBAL DATA DECLARATIONS ***** ============================================================ --- mtn-browse b3ff08e94a6620361198ea6c22cb2aeb133ed7de +++ mtn-browse e0a9d3e52bf31b902b4b351e04438ec745d22ac6 @@ -45,7 +45,8 @@ BEGIN BEGIN { - use constant LIB_PATH => "/home/aecoope/perl"; + use constant LIB_PATH => "/home/aecoope/perl"; + use constant MIME_GLOB_FILE => "/usr/share/mime/globs"; } use lib LIB_PATH; use strict; @@ -54,7 +55,9 @@ use strict; # Standard Perl and CPAN modules. +use Data::Dumper; use File::Basename; +use File::Spec; use File::Temp; use Glib qw(FALSE TRUE); use Gnome2; @@ -70,10 +73,6 @@ use Text::Tabs; use Symbol qw(gensym); use Text::Tabs; -# Temporary debug stuff. - -use Data::Dumper; - # Monotone AutomateStdio module. use Monotone::AutomateStdio; @@ -88,6 +87,7 @@ use History; use Completion; use FindText; use History; +use Preferences; use Utilities; use WindowManager; @@ -105,7 +105,7 @@ my $window_type = "main_window"; my $window_type = "main_window"; -# the large logo used for the about dialog window. +# The large logo used for the about dialog window. my $large_logo; @@ -170,14 +170,6 @@ sub view_button_clicked_cb($$); $mono_font = Gtk2::Pango::FontDescription->from_string("monospace 10"); $line_image = Gtk2::Gdk::Pixbuf->new_from_file(LIB_PATH . "/UI/line.png"); -# my $mtype = Gnome2::VFS::Mime::Type->new("image/jpeg"); -# print $mtype->get_default_application(); - -# $mtype->get_default_application()->launch("file:///home/aecoope/me.jpg"); - -# print Gnome2::VFS->get_mime_type("file:///home/aecoope/test"); -# print Gnome2::VFS->get_mime_type("file:///home/aecoope/perl/mtn-browse.svg"); - # Create the temporary working directory. eval @@ -200,12 +192,30 @@ sub view_button_clicked_cb($$); } # Attempt to create an mtn handle, if it fails then assume that we are not - # inside a workspace. However if it does work then pre-load the browser - # with the relevant branch and revision. + # inside a workspace. However if it does work then move to the workspace's + # root and then pre-load the browser with the relevant branch and revision. eval { $mtn = Monotone::AutomateStdio->new(); + $mtn = undef; + while (! -d "_MTN") + { + if (! chdir("..")) + { + my $dialog = Gtk2::MessageDialog->new + (undef, + ["modal"], + "error", + "close", + "Started in a workspace but I cannot\n" + . "find _MTN, I am going to exit."); + $dialog->run(); + $dialog->destroy(); + exit(1); + } + } + $mtn = Monotone::AutomateStdio->new(); $mtn->get_option(\$branch, "branch"); $mtn->get_base_revision_id(\$revision_id); }; @@ -233,7 +243,7 @@ sub view_button_clicked_cb($$); $browser->{branch_combo_details}->{value} = $branch; $browser->{revision_combo_details}->{preset} = 1; $browser->{revision_combo_details}->{value} = $revision_id; - $browser->{tagged_tick}->set_active(FALSE); + $browser->{tagged_checkbutton}->set_active(FALSE); &{$browser->{update_handler}}($browser, ALL_CHANGED); return FALSE; @@ -559,13 +569,7 @@ sub preferences_toolbutton_clicked_cb($$ return if ($browser->{in_cb}); local $browser->{in_cb} = 1; - my $dialog = Gtk2::MessageDialog->new($browser->{window}, - ["modal"], - "info", - "close", - "Not implemented."); - $dialog->run(); - $dialog->destroy(); + preferences($browser); } # @@ -692,7 +696,7 @@ sub advanced_find_button_clicked_cb($$) # A revision id is what is returned so switch off the listing of tag # names. - $browser->{tagged_tick}->set_active(FALSE); + $browser->{tagged_checkbutton}->set_active(FALSE); &{$browser->{update_handler}}($browser, $state); @@ -789,7 +793,8 @@ sub monotone_viz_button_clicked_cb($$) local $browser->{in_cb} = 1; my($cmd, - $db_name); + $db_name, + @revision_ids); # Build up the monotone-viz command, we need the database name and then # optionally the branch and revision ids. @@ -805,7 +810,8 @@ sub monotone_viz_button_clicked_cb($$) $cmd .= " " . $browser->{branch_combo_details}->{value}; if ($browser->{revision_combo_details}->{complete}) { - $cmd .= " " . $browser->{revision_combo_details}->{value}; + get_revision_ids($browser, address@hidden); + $cmd .= " " . $revision_ids[0]; } } @@ -856,14 +862,14 @@ sub directory_up_button_clicked_cb($$) $len = length($value); if ($len < $old_len) { - $browser->{directory_combo}->get_model()->clear(); + $browser->{directory_comboboxentry}->get_model()->clear(); foreach my $item (@{$browser->{directory_combo_details}->{list}}) { - $browser->{directory_combo}->append_text($item) + $browser->{directory_comboboxentry}->append_text($item) if ($value eq substr($item, 0, $len)); } } - $browser->{directory_combo}->child()->set_text($value); + $browser->{directory_comboboxentry}->child()->set_text($value); $browser->{appbar}->clear_stack(); &{$browser->{update_handler}}($browser, DIRECTORY_CHANGED); } @@ -1264,7 +1270,7 @@ sub manifest_browser_treeview_row_activa { $browser->{directory_combo_details}->{value} = $manifest_entry->{name}; $browser->{directory_combo_details}->{complete} = 1; - $browser->{directory_combo}->child()-> + $browser->{directory_comboboxentry}->child()-> set_text($manifest_entry->{name}); $browser->{appbar}->clear_stack(); &{$browser->{update_handler}}($browser, DIRECTORY_CHANGED); @@ -1398,44 +1404,30 @@ sub get_browser_window(;$$$$$) # Get the widgets that we are interested in. $browser->{window} = $browser->{glade}->get_widget($window_type); - $browser->{appbar} = $browser->{glade}->get_widget("appbar"); - $browser->{main_vbox} = $browser->{glade}->get_widget("main_vbox"); - $browser->{close_toolbutton} = - $browser->{glade}->get_widget("close_toolbutton"); - $browser->{properties_toolbutton} = - $browser->{glade}->get_widget("properties_toolbutton"); - $browser->{branch_combo} = - $browser->{glade}->get_widget("branch_comboboxentry"); - $browser->{revision_combo} = - $browser->{glade}->get_widget("revision_comboboxentry"); - $browser->{tagged_tick} = - $browser->{glade}->get_widget("tagged_checkbutton"); - $browser->{directory_combo} = - $browser->{glade}->get_widget("directory_comboboxentry"); - $browser->{directory_up_button} = - $browser->{glade}->get_widget("directory_up_button"); - $browser->{manifest_treeview} = - $browser->{glade}->get_widget("manifest_browser_treeview"); - $browser->{file_view_scrolledwindow} = - $browser->{glade}->get_widget("file_view_scrolledwindow"); - $browser->{file_name_label} = - $browser->{glade}->get_widget("file_name_value_label"); - $browser->{file_id_label} = - $browser->{glade}->get_widget("file_id_value_label"); - $browser->{last_update_label} = - $browser->{glade}->get_widget("last_update_value_label"); - $browser->{file_revision_id_label} = - $browser->{glade}->get_widget("file_revision_id_value_label"); - $browser->{file_button_vbox} = - $browser->{glade}->get_widget("file_button_vbox"); - $browser->{database_name_label} = - $browser->{glade}->get_widget("database_name_value_label"); - $browser->{revision_id_label} = - $browser->{glade}->get_widget("revision_id_value_label"); - $browser->{author_label} = - $browser->{glade}->get_widget("author_value_label"); - $browser->{change_log_label} = - $browser->{glade}->get_widget("change_log_value_label"); + foreach my $widget ("appbar", + "main_vbox", + "browser_hpaned", + "close_toolbutton", + "properties_toolbutton", + "branch_comboboxentry", + "revision_comboboxentry", + "tagged_checkbutton", + "directory_comboboxentry", + "directory_up_button", + "manifest_browser_treeview", + "file_view_scrolledwindow", + "file_name_value_label", + "file_id_value_label", + "last_update_value_label", + "file_revision_id_value_label", + "file_button_vbox", + "database_name_value_label", + "revision_id_value_label", + "author_value_label", + "change_log_value_label") + { + $browser->{$widget} = $browser->{glade}->get_widget($widget); + } # Setup button sensitivity groups. @@ -1454,33 +1446,33 @@ sub get_browser_window(;$$$$$) # Setup the comboboxentry key release signal handlers. - $browser->{branch_combo}->child()-> + $browser->{branch_comboboxentry}->child()-> signal_connect("key_release_event", - \&combo_key_release_event_cb, + \&comboboxentry_key_release_event_cb, $browser); - $browser->{directory_combo}->child()-> + $browser->{directory_comboboxentry}->child()-> signal_connect("key_release_event", - \&combo_key_release_event_cb, + \&comboboxentry_key_release_event_cb, $browser); - $browser->{revision_combo}->child()-> + $browser->{revision_comboboxentry}->child()-> signal_connect("key_release_event", - \&combo_key_release_event_cb, + \&comboboxentry_key_release_event_cb, $browser); # Setup the comboboxes. - $browser->{branch_combo}-> + $browser->{branch_comboboxentry}-> set_model(Gtk2::ListStore->new("Glib::String")); - $browser->{branch_combo}->set_text_column(0); - $browser->{branch_combo}->set_wrap_width(2); - $browser->{directory_combo}-> + $browser->{branch_comboboxentry}->set_text_column(0); + $browser->{branch_comboboxentry}->set_wrap_width(2); + $browser->{directory_comboboxentry}-> set_model(Gtk2::ListStore->new("Glib::String")); - $browser->{directory_combo}->set_text_column(0); - $browser->{directory_combo}->set_wrap_width(2); - $browser->{revision_combo}-> + $browser->{directory_comboboxentry}->set_text_column(0); + $browser->{directory_comboboxentry}->set_wrap_width(2); + $browser->{revision_comboboxentry}-> set_model(Gtk2::ListStore->new("Glib::String")); - $browser->{revision_combo}->set_text_column(0); - $browser->{revision_combo}->set_wrap_width(2); + $browser->{revision_comboboxentry}->set_text_column(0); + $browser->{revision_comboboxentry}->set_wrap_width(2); # Setup the tree view manifest file browser. @@ -1489,7 +1481,7 @@ sub get_browser_window(;$$$$$) "Glib::String", "Glib::String", "Glib::Scalar"); - $browser->{manifest_treeview}-> + $browser->{manifest_browser_treeview}-> set_model($browser->{manifest_liststore}); $tv_column = Gtk2::TreeViewColumn->new(); @@ -1503,7 +1495,7 @@ sub get_browser_window(;$$$$$) $renderer = Gtk2::CellRendererPixbuf->new(); $tv_column->pack_start($renderer, TRUE); $tv_column->set_attributes($renderer, "stock-id" => MLS_ICON_COLUMN); - $browser->{manifest_treeview}->append_column($tv_column); + $browser->{manifest_browser_treeview}->append_column($tv_column); $tv_column = Gtk2::TreeViewColumn->new(); $tv_column->set_title("File Name"); @@ -1514,7 +1506,7 @@ sub get_browser_window(;$$$$$) $renderer = Gtk2::CellRendererText->new(); $tv_column->pack_start($renderer, FALSE); $tv_column->set_attributes($renderer, "text" => MLS_NAME_COLUMN); - $browser->{manifest_treeview}->append_column($tv_column); + $browser->{manifest_browser_treeview}->append_column($tv_column); $tv_column = Gtk2::TreeViewColumn->new(); $tv_column->set_title("Last Update"); @@ -1524,7 +1516,7 @@ sub get_browser_window(;$$$$$) $renderer = Gtk2::CellRendererText->new(); $tv_column->pack_start($renderer, FALSE); $tv_column->set_attributes($renderer, "text" => MLS_DATE_COLUMN); - $browser->{manifest_treeview}->append_column($tv_column); + $browser->{manifest_browser_treeview}->append_column($tv_column); $tv_column = Gtk2::TreeViewColumn->new(); $tv_column->set_title("Author"); @@ -1534,9 +1526,10 @@ sub get_browser_window(;$$$$$) $renderer = Gtk2::CellRendererText->new(); $tv_column->pack_start($renderer, FALSE); $tv_column->set_attributes($renderer, "text" => MLS_AUTHOR_COLUMN); - $browser->{manifest_treeview}->append_column($tv_column); + $browser->{manifest_browser_treeview}->append_column($tv_column); - $browser->{manifest_treeview}->set_search_column(MLS_NAME_COLUMN); + $browser->{manifest_browser_treeview}-> + set_search_column(MLS_NAME_COLUMN); # $tv_column = # $browser->{manifest_treeview}->get_column(MLS_DATE_COLUMN); @@ -1554,8 +1547,7 @@ sub get_browser_window(;$$$$$) $browser->{file_view_sv}->modify_font($mono_font); $browser->{file_view_sv}->set_cursor_visible(FALSE); $browser->{file_view_sv}->set_editable(FALSE); - $browser->{glade}->get_widget("file_view_scrolledwindow")-> - add($browser->{file_view_sv}); + $browser->{file_view_scrolledwindow}->add($browser->{file_view_sv}); $browser->{file_view_sv}->show_all(); local $browser->{in_cb} = 1; @@ -1589,8 +1581,8 @@ sub get_browser_window(;$$$$$) ($width, $height) = $browser->{window}->get_default_size(); $browser->{window}->resize($width, $height); - $browser->{glade}->get_widget("browser_hpaned")->set_position(300); - $browser->{tagged_tick}->set_active(FALSE); + $browser->{browser_hpaned}->set_position(300); + $browser->{tagged_checkbutton}->set_active(FALSE); $browser->{appbar}->set_progress_percentage(0); $browser->{appbar}->clear_stack(); $browser->{branch_combo_details}->{preset} = 0; @@ -1637,8 +1629,8 @@ sub get_browser_window(;$$$$$) # Make sure that the branch comboboxentry has the focus and not the bonobo # dock. - $browser->{branch_combo}->child()->grab_focus(); - $browser->{branch_combo}->child()->set_position(-1); + $browser->{branch_comboboxentry}->child()->grab_focus(); + $browser->{branch_comboboxentry}->child()->set_position(-1); return $browser; @@ -1685,7 +1677,7 @@ sub update_browser_state($$) $browser->{close_toolbutton}->set_sensitive(FALSE); $browser->{properties_toolbutton}->set_sensitive(FALSE); $browser->{main_vbox}->set_sensitive(FALSE); - set_label_value($browser->{database_name_label}, ""); + set_label_value($browser->{database_name_value_label}, ""); } else @@ -1699,20 +1691,20 @@ sub update_browser_state($$) if (! defined($browser->{mtn}->get_db_name())) { $browser->{mtn}->get_option(\$db_name, "database"); - set_label_value($browser->{database_name_label}, + set_label_value($browser->{database_name_value_label}, sprintf(" (%s)", $db_name)); } else { - set_label_value($browser->{database_name_label}, + set_label_value($browser->{database_name_value_label}, $browser->{mtn}->get_db_name()); } # Make sure that the branch comboboxentry has the focus and not the # bonobo dock. - $browser->{branch_combo}->child()->grab_focus(); - $browser->{branch_combo}->child()->set_position(-1); + $browser->{branch_comboboxentry}->child()->grab_focus(); + $browser->{branch_comboboxentry}->child()->set_position(-1); } @@ -1751,15 +1743,15 @@ sub update_browser_state($$) $browser->{appbar}->set_status("Populating branch list"); gtk2_update(); my $counter = 1; - $browser->{branch_combo}->get_model()->clear(); + $browser->{branch_comboboxentry}->get_model()->clear(); foreach my $branch (@branch_list) { - $browser->{branch_combo}->append_text($branch); + $browser->{branch_comboboxentry}->append_text($branch); $browser->{appbar}->set_progress_percentage ($counter ++ / scalar(@branch_list)); gtk2_update(); } - $browser->{branch_combo}->child()-> + $browser->{branch_comboboxentry}->child()-> set_text($browser->{branch_combo_details}->{value}); $browser->{appbar}->set_progress_percentage(0); $browser->{appbar}->set_status(""); @@ -1798,7 +1790,7 @@ sub update_browser_state($$) # Get either a list of tags or revision ids depending upon what the # user has chosen. - if ($browser->{tagged_tick}->get_active()) + if ($browser->{tagged_checkbutton}->get_active()) { my(%dup_list, @list); @@ -1839,15 +1831,15 @@ sub update_browser_state($$) $browser->{appbar}->set_status("Populating revision list"); gtk2_update(); my $counter = 1; - $browser->{revision_combo}->get_model()->clear(); + $browser->{revision_comboboxentry}->get_model()->clear(); foreach my $revision (@revision_list) { - $browser->{revision_combo}->append_text($revision); + $browser->{revision_comboboxentry}->append_text($revision); $browser->{appbar}->set_progress_percentage ($counter ++ / scalar(@revision_list)); gtk2_update(); } - $browser->{revision_combo}->child()-> + $browser->{revision_comboboxentry}->child()-> set_text($browser->{revision_combo_details}->{value}); $browser->{appbar}->set_progress_percentage(0); $browser->{appbar}->set_status(""); @@ -1876,9 +1868,9 @@ sub update_browser_state($$) $browser->{directory_combo_details}->{complete} = 0; $browser->{directory_combo_details}->{value} = ""; } - set_label_value($browser->{revision_id_label}, ""); - set_label_value($browser->{author_label}, ""); - set_label_value($browser->{change_log_label}, ""); + set_label_value($browser->{revision_id_value_label}, ""); + set_label_value($browser->{author_value_label}, ""); + set_label_value($browser->{change_log_value_label}, ""); # Reset the name of the file being viewed. @@ -1912,7 +1904,7 @@ sub update_browser_state($$) $dialog->destroy(); $browser->{revision_combo_details}->{complete} = 0; $browser->{revision_combo_details}->{value} = ""; - $browser->{revision_combo}->child()->set_text(""); + $browser->{revision_comboboxentry}->child()->set_text(""); } else { @@ -1933,10 +1925,11 @@ sub update_browser_state($$) $change_log =~ s/\s+$//os; } } - set_label_value($browser->{revision_id_label}, + set_label_value($browser->{revision_id_value_label}, $revision_ids[0]); - set_label_value($browser->{author_label}, $author); - set_label_value($browser->{change_log_label}, $change_log); + set_label_value($browser->{author_value_label}, $author); + set_label_value($browser->{change_log_value_label}, + $change_log); } } $browser->{manifest} = address@hidden; @@ -1960,15 +1953,15 @@ sub update_browser_state($$) $browser->{appbar}->set_status("Populating directory list"); gtk2_update(); my $counter = 1; - $browser->{directory_combo}->get_model()->clear(); + $browser->{directory_comboboxentry}->get_model()->clear(); foreach my $item (@directory_list) { - $browser->{directory_combo}->append_text($item); + $browser->{directory_comboboxentry}->append_text($item); $browser->{appbar}->set_progress_percentage ($counter ++ / scalar(@directory_list)); gtk2_update(); } - $browser->{directory_combo}->child()-> + $browser->{directory_comboboxentry}->child()-> set_text($browser->{directory_combo_details}->{value}); $browser->{appbar}->set_progress_percentage(0); $browser->{appbar}->set_status(""); @@ -2102,8 +2095,8 @@ sub update_browser_state($$) } - $browser->{manifest_treeview}->scroll_to_point(0, 0) - if ($browser->{manifest_treeview}->realized()); + $browser->{manifest_browser_treeview}->scroll_to_point(0, 0) + if ($browser->{manifest_browser_treeview}->realized()); $browser->{appbar}->set_progress_percentage(0); $browser->{appbar}->set_status(""); @@ -2127,7 +2120,7 @@ sub update_browser_state($$) # Only do anything if the selected file has changed. - if ($browser->{file_id_label}->get_text() + if ($browser->{file_id_value_label}->get_text() ne $manifest_entry->{file_id}) { @@ -2322,13 +2315,13 @@ sub update_browser_state($$) } } } - set_label_value($browser->{file_name_label}, + set_label_value($browser->{file_name_value_label}, $manifest_entry->{name}); - set_label_value($browser->{file_id_label}, + set_label_value($browser->{file_id_value_label}, $manifest_entry->{file_id}); - set_label_value($browser->{last_update_label}, + set_label_value($browser->{last_update_value_label}, $manifest_entry->{last_update}); - set_label_value($browser->{file_revision_id_label}, + set_label_value($browser->{file_revision_id_value_label}, $manifest_entry->{last_changed_revision}); } @@ -2343,10 +2336,10 @@ sub update_browser_state($$) place_cursor($browser->{file_view_svbuffer}->get_start_iter()); $browser->{file_view_svbuffer}->set_text(""); $browser->{file_view_svbuffer}->set("highlight", FALSE); - set_label_value($browser->{file_name_label}, ""); - set_label_value($browser->{file_id_label}, ""); - set_label_value($browser->{last_update_label}, ""); - set_label_value($browser->{file_revision_id_label}, ""); + set_label_value($browser->{file_name_value_label}, ""); + set_label_value($browser->{file_id_value_label}, ""); + set_label_value($browser->{last_update_value_label}, ""); + set_label_value($browser->{file_revision_id_value_label}, ""); disable_find_text($browser->{file_view_sv}, 1); } ============================================================ --- mtn-browse.glade ed03f710e7da03d40189c0a0aa689a620f81c5d5 +++ mtn-browse.glade ac69e48f4192d5158b9be1062af533b3b54e518f @@ -375,7 +375,7 @@ True - + 0 @@ -435,7 +435,7 @@ True - + 0 @@ -699,7 +699,7 @@ in Monotone-Viz True - + 0 @@ -2172,7 +2172,7 @@ specify very specific selection critia True - + 0 @@ -2232,7 +2232,7 @@ specify very specific selection critia True - + 0 @@ -4309,7 +4309,7 @@ to be searched for 300 True - + 0 @@ -4390,4 +4390,2301 @@ of the search + + Preferences + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_CENTER_ON_PARENT + True + 970 + 400 + True + False + mtn-browse.png + True + True + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + -6 + + + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + True + -5 + + + + + 0 + False + True + GTK_PACK_END + + + + + + 5 + True + True + True + True + GTK_POS_TOP + False + False + + + + 5 + True + False + 0 + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + 2 + 3 + False + 5 + 5 + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 0 + 1 + + + + + + + True + Look for a Monotone +database to open + True + Browse ... + True + GTK_RELIEF_NORMAL + True + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + Name of the Monotone database to +open automatically on startup + True + False + + + + True + Database to open: + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + + + 0 + 1 + 0 + 1 + fill + fill + + + + + + True + Actions to take when starting up +inside a Monotone workspace + True + False + + + + True + Workspace: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 1 + 2 + fill + fill + + + + + + True + False + 5 + + + + True + Select if the workspace's database +is to be opened instead of the named +database above upon startup + True + Takes precedence + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + Select if the workspace's branch +and revision are to be automatically +loaded into the browser upon startup + True + Auto select branch and revision + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + + + + + True + <b>Startup Defaults</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + 0 + False + True + + + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + 2 + 4 + False + 5 + 5 + + + + True + Parameters for controlling the listing +of tagged revisions in Combo lists + True + False + + + + True + Tagged lists: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 0 + 1 + fill + fill + + + + + + True + The maximum number of tags +to be displayed (0 - unlimited) + True + False + + + + True + Limit to: + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + + + 1 + 2 + 0 + 1 + fill + fill + + + + + + True + The maximum number of ids +to be displayed (0 - unlimited) + True + False + + + + True + Limit to: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + Parameters for controlling the listing +of revision ids in Combo lists + True + False + + + + True + Id lists: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 1 + 2 + fill + fill + + + + + + True + False + 5 + + + + True + Select Sort cronologically if you +want the ids to be order on date, +starting with the newest + True + Sort cronologically + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + Select Sort by id if you want the +tags to be order aphabetically + True + Sort by id + True + GTK_RELIEF_NORMAL + True + False + False + True + id_lists_sort_cronologically_radiobutton + + + 0 + False + False + + + + + 3 + 4 + 1 + 2 + fill + fill + + + + + + True + False + 5 + + + + True + Select Sort cronologically if you +want the tags to be order on date, +starting with the newest + True + Sort cronologically + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + Select Sort by name if you want +the tags to be order aphabetically + True + Sort by name + True + GTK_RELIEF_NORMAL + True + False + False + True + tagged_lists_sort_cronologically_radiobutton + + + 0 + False + False + + + + + 3 + 4 + 0 + 1 + fill + fill + + + + + + True + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + False + False + 0 0 10000 1 10 10 + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + False + False + 0 0 10000 1 10 10 + + + 2 + 3 + 1 + 2 + fill + + + + + + + + + + + True + <b>Query Options</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + 0 + False + True + + + + + False + True + + + + + + True + <b>General</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + tab + + + + + + 5 + True + False + 0 + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + 1 + 2 + False + 5 + 5 + + + + True + Select the font used for displaying file +contents and reports (for best results +make sure it is mono-spaced) + True + False + + + + True + File content/report font: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 0 + 1 + fill + fill + + + + + + True + True + True + True + True + True + True + + + 1 + 2 + 0 + 1 + fill + + + + + + + + + + + True + <b>Fonts</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + 0 + False + True + + + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + 6 + 7 + False + 5 + 5 + + + + True + The first set of line prefix colours +used in annotated listings + True + False + + + + True + Annotation prefix 1: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 0 + 1 + fill + fill + + + + + + True + Colour of the first revision +in comparison listings + True + False + + + + True + Revision 1: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 4 + 5 + fill + fill + + + + + + True + Colour of the second revision +in comparison listings + True + False + + + + True + Revision 2: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 5 + 6 + fill + fill + + + + + + True + Text foreground colour + True + False + + + + True + Foreground: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 4 + 5 + fill + fill + + + + + + True + Text foreground colour + True + False + + + + True + Foreground: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 5 + 6 + fill + fill + + + + + + True + Text background colour + True + False + + + + True + Background: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 3 + 4 + 4 + 5 + fill + fill + + + + + + True + Text background colour + True + False + + + + True + Background: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 3 + 4 + 5 + 6 + fill + fill + + + + + + True + True + False + True + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + True + False + True + + + 2 + 3 + 4 + 5 + fill + + + + + + + True + True + False + True + + + 2 + 3 + 5 + 6 + fill + + + + + + + True + True + False + True + + + 4 + 5 + 0 + 1 + fill + + + + + + + True + True + False + True + + + 4 + 5 + 4 + 5 + fill + + + + + + + True + True + False + True + + + 4 + 5 + 5 + 6 + fill + + + + + + + True + Text foreground colour + True + False + + + + True + Foreground: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 0 + 1 + fill + fill + + + + + + True + Text background colour + True + False + + + + True + Background: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 3 + 4 + 0 + 1 + fill + fill + + + + + + True + Text foreground colour +used in context lines + True + False + + + + True + Highlight: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 5 + 6 + 5 + 6 + fill + fill + + + + + + True + True + False + True + + + 6 + 7 + 5 + 6 + fill + + + + + + + True + Text foreground colour +used in context lines + True + False + + + + True + Highlight: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 5 + 6 + 4 + 5 + fill + fill + + + + + + True + True + False + True + + + 6 + 7 + 4 + 5 + fill + + + + + + + True + The first set of line text colours +used in annotated listings + True + False + + + + True + Annotation text 1: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 1 + 2 + fill + + + + + + True + Text foreground colour + True + False + + + + True + Foreground: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + True + False + True + + + 2 + 3 + 1 + 2 + fill + + + + + + + True + Text background colour + True + False + + + + True + Background: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 3 + 4 + 1 + 2 + fill + fill + + + + + + True + True + False + True + + + 4 + 5 + 1 + 2 + fill + + + + + + + True + The second set of line prefix colours +used in annotated listings + True + False + + + + True + Annotation prefix 2: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 2 + 3 + fill + + + + + + True + The second set of line text colours +used in annotated listings + True + False + + + + True + Annotation text 2: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + 1 + 3 + 4 + fill + + + + + + True + Text foreground colour + True + False + + + + True + Foreground: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 2 + 3 + fill + fill + + + + + + True + Text foreground colour + True + False + + + + True + Foreground: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 1 + 2 + 3 + 4 + fill + fill + + + + + + True + Text background colour + True + False + + + + True + Background: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 3 + 4 + 2 + 3 + fill + fill + + + + + + True + Text background colour + True + False + + + + True + Background: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 3 + 4 + 3 + 4 + fill + fill + + + + + + True + True + False + True + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + True + False + True + + + 2 + 3 + 3 + 4 + fill + + + + + + + True + True + False + True + + + 4 + 5 + 2 + 3 + fill + + + + + + + True + True + False + True + + + 4 + 5 + 3 + 4 + fill + + + + + + + + + + + True + <b>Colours</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + 0 + False + True + + + + + False + True + + + + + + True + <b>Appearance</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + tab + + + + + + 5 + True + True + 700 + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + True + False + False + True + + + + + + + + + + + True + <b>Mime Types</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + False + True + + + + + + True + False + 0 + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + False + 5 + + + + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + False + False + False + True + + + + + + 0 + True + True + + + + + + True + 2 + 2 + False + 5 + 5 + + + + True + Add a new file name +pattern to the list + True + GTK_RELIEF_NORMAL + True + + + + + True + gtk-add + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 1 + 2 + 0 + 1 + fill + + + + + + + True + Remove the currently selected +file name pattern from the list + True + GTK_RELIEF_NORMAL + True + + + + + True + gtk-remove + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 1 + 2 + 1 + 2 + fill + + + + + + + 100 + True + True + True + True + 0 + + True + * + False + + + + 0 + 1 + 0 + 1 + + + + + + 0 + False + True + + + + + + + + + + True + <b>File Name Patterns</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + 0 + True + True + + + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 0 + 0 + + + + 5 + True + False + 5 + + + + True + False + 5 + + + + True + Select this if files of the selected type are +to be displayed in the browser's internal viewer + True + Display internally + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + Select this if syntax highlighting is to be +attempted for files of the selected type + True + Syntax highlight + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + 0 + True + True + + + + + + True + False + 5 + + + + True + Enter a command for loading +files of the selected type into +an appropiate viewer or editor + +1) If this field is blank then the +default application associated +with this file type is used + +2) The optional token {file} is +replaced with the file's full file +name, if not present then the +file name is just appended to +the end of the command + True + False + + + + True + Helper application: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + + + 0 + False + True + + + + + + True + True + True + True + 0 + + True + * + False + + + 0 + True + True + + + + + 0 + True + True + + + + + + + + + + True + <b>File Actions</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + label_item + + + + + 0 + False + True + + + + + False + True + + + + + False + True + + + + + + True + <b>MIME Types</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + tab + + + + + 0 + True + True + + + + + +