on exit. What happened is that the signal would be disconnected
twice, once by cleanup_delayed_selection() and once by the
while_alive handler.]
* e-shell-view.c (destroy): Call cleanup_delayed_selection() here.
(e_shell_view_display_uri): Use gtk_signal_connect_full(), not
e_gtk_signal_connect_full_while_alive().
svn path=/trunk/; revision=15848
* e-shell-view.c (remove_uri_from_history): New helper function to
remove all the matching URIs from the history.
(history_uri_matching_func): Compare function for using
e_history_remove_matching.
(storage_set_removed_folder_callback): Call
`remove_uri_from_history()'.
* e-history.c (e_history_remove_matching): New.
svn path=/trunk/; revision=15803
* e-shell-view.c (update_navigation_buttons): New.
(display_uri): Call it before returning so the navigation buttons
always have the right sensitivity.
* e-shell-folder-title-bar.c
(e_shell_folder_title_bar_update_navigation_buttons): New.
(add_navigation_buttons): Remove the "Back" label.
svn path=/trunk/; revision=15799
* e-shell-view.c: New member `history' in `EShellViewPrivate'.
(init): Initialize.
(destroy): Unref.
(e_shell_view_display_uri): Make it a no-op if the URI is the same
as the current one. Also, moved code into `display_uri' and use
it.
(back_clicked_callback): New, callback for the back button on the
folder title bar.
(forward_clicked_callback): Likewise for the forward button.
* e-history.c: New.
* e-history.h: New.
svn path=/trunk/; revision=15798
* e-shell-view.c (e_shell_view_show_folder_bar):
`e_shell_folder_title_bar_set_title_clickable()', not
`e_shell_folder_title_bar_set_clickable()'.
* e-shell-folder-title-bar.c: Rename `button', `button_label' and
`button_arrow' to `title_button', `title_button_label' and
`title_button_arrow'. Renamed `label' to `title_label'. Renamed
`arrow_xpm' to `down_arrow_xpm'. Added `left_arrow.xpm' and
`right_arrow.xpm'.
(class_init): Add the "back_clicked" and "forward_clicked"
signals.
(add_navigation_buttons): New function to add the navigation
buttons to the title bar.
(back_button_clicked_callback): Callback for the back button,
emits "back_clicked".
(forward_button_clicked_callback): Callback for the forward
button, emits "forward_clicked".
(e_shell_folder_title_bar_construct): Call
`add_navigation_buttons()'.
(forward_button_clicked_callback):
(create_arrow_pixmap): Removed.
(create_pixmap_widget_from_xpm): New.
(title_button_box_realize_cb): Removed.
(e_shell_folder_title_bar_construct): Don't connect. Just add the
icon normally using the new `create_pixmap_widget_from_xpm()'.
(e_shell_folder_title_bar_set_title_clickable): Renamed from
`e_shell_folder_title_bar_set_clickable'.
(size_allocate_navigation_buttons): New.
(size_allocate_title_button): Get an @offset.
(size_allocate_label): Get an @offset.
(size_allocate): Allocate the navigation buttons and offset
everything else accordingly.
* e-shell-folder-title-bar.h: New signals "back_clicked",
"forward_clicked".
svn path=/trunk/; revision=15797
* e-shell-view-menu.c (command_open_folder_in_new_window): Don't
show the folder bar and the shortcut bar in the new window.
* e-shell-view.c (activate_shortcut_cb): Don't show the folder bar
and the shortcut bar in the new window.
* e-shell-view.c (e_shell_create_view): Don't flush the GTK events
here.
* e-shell.c (e_shell_construct): New arg @start_online. If true,
invoke `e_shell_go_online()' before returning.
(e_shell_new): New arg @start_online. Pass it to
e_shell_construct().
(init): Default ->line_status to E_SHELL_LINE_STATUS_OFFLINE.
* main.c (main): Add "--offline" and "--online" options.
svn path=/trunk/; revision=15776
done but it needs pretty icons so I am leaving it disabled for now.]
* e-combo-button.c: Remove member `separator' from
`EComboButtonPrivate'. New members `icon', `label'.
(init): There shall be no separator no more. Init `icon' and
`label' to %NULL.
(e_combo_button_construct): Set no relief.
(e_combo_button_new): Don't get a @menu arg anymore.
(e_combo_button_construct): Likewise.
(e_combo_button_set_icon): New.
(e_combo_button_set_label): New.
(e_combo_button_set_menu): New.
(impl_clicked): New, overriding the "clicked" method for
GtkButton.
(class_init): Install.
(impl_button_release_event): Removed.
(class_init): No need to override ::release_event with this
anymore.
(impl_released): New, override for the GtkButton::released method.
(class_init): Install.
* e-shell-user-creatable-items-handler.c: New member `id' in
struct `Component'. New member `icon' in struct `MenuItem'.
(component_free): Free ->id.
(component_new): Renamed from `component_new_from_client'. Get an
@id arg and set ->id accordingly.
(e_shell_user_creatable_items_handler_add_component): New arg @id.
Pass it to `component_new'.
(e_shell_user_creatable_items_handler_setup_menus): New arg
@current_component_id.
(e_shell_user_creatable_items_handler_update_menus): New.
(set_current_component): New helper function.
(get_component_by_id): New helper function.
(add_verbs): Renamed from `add_verbs_to_ui_component()'. Get a
@shell_view instead of a @ui_component. Set the SHELL_VIEW_KEY on
the ui_component of the shell_view to point to the shell_view
itself.
(ensure_menu_items): Set item->icon to NULL.
(free_menu_items): Unref item->icon.
(ensure_menu_xml): Set the icon as well.
(get_default_action_for_view): New helper function.
(find_menu_item_for_verb): New helper function.
(shell_view_view_changed_callback): New callback, set up the label
on the "New" button depending on the current component.
(e_shell_user_creatable_items_handler_attach_menus): New. For
now, do not display the toolbar button yet.
(execute_verb): New helper function, splitting out code from
`verb_fn'.
(verb_fn): Use `execute_verb'.
(combo_button_activate_default_callback): Callback for the
"activate_default" signal on the EComboButton.
(setup_toolbar_button): Connect.
* evolution-shell-component.c: New member `icon' in
`UserCreatableItemType'.
(impl__get_userCreatableItemTypes): Put the ->icon in the
corba_type as well.
(user_creatable_item_type_new): Get a new @icon argument.
(evolution_shell_component_add_user_creatable_item): New arg
@icon.
* Evolution-ShellComponent.idl: New member `icon' in struct
`UserCreatableItemType'.
* evolution-test-component.c (register_component): Pass a NULL
@icon to `evolution_shell_component_add_user_creatable_item()'.
* e-shell-view.c (class_init): Add the signal to the class.
(e_shell_view_display_uri): Emit "view_changed".
(e_shell_view_get_current_component_id): New.
* evolution-shell-component-client.c: New member `id' in
EvolutionShellComponentClientPrivate.
(init): Init to NULL.
(impl_destroy): Free.
(evolution_shell_component_client_new_for_objref): Removed.
(evolution_shell_component_client_construct): New arg @id.
Initialize ->id from it.
(evolution_shell_component_client_get_id): New.
* e-shell-view.h: New signal "view_changed".
* evolution-activity-client.c (create_icon_from_pixbuf): Removed.
(create_corba_animated_icon_from_pixbuf_array): Removed.
(evolution_activity_client_construct): Use
`e_new_corba_animated_icon_from_pixbuf_array()' instead.
svn path=/trunk/; revision=15438
* e-shell-view.c (folder_bar_popup_map_callback): And grab the
keyboard as well.
(popdown_transient_folder_bar): Ungrab the keyboard as well.
(switch_on_folder_tree_click): Likewise.
[Fix#16507, Right Click -> View does nothing.]
* e-shell-view-menu.c: New verb "ActivateView".
(command_activate_view): New, callback for the "ActivateView"
verb.
svn path=/trunk/; revision=14897
2001-10-30 Iain Holmes <iain@ximian.com>
* e-shell-view.c (e_shell_view_load_settings): If the display uri is
NULL, set the view to the default.
svn path=/trunk/; revision=14489
* e-shell-view.c (e_shell_view_construct): Connect to the
"removed_folder" signal with gtk_signal_connect_while_alive() so
we don't crash if the view gets destroyed. Fixes#13285.
svn path=/trunk/; revision=14478
* e-shell-view.c (e_shell_view_construct): Ref the shell.
(destroy): Unref the shell.
(destroy): Free the delayed_selection. No need to call
`cleanup_delayed_selection()' as the signal handler will have
already be disconnected at this point [as we are using
connect_while_alive()'].
svn path=/trunk/; revision=14325
* e-shell-view.c (destroy): Call `cleanup_delayed_selection()' as
there is a slight chance that the callback gets invoked during the
cleanup phase.
(e_shell_view_display_uri): For extra safety, make sure we don't
get invoked on a dead object by connecting the "new_folder" signal
with `e_gtk_signal_connect_full_while_alive()' instead of using
plain `gtk_signal_connect_after()'.
svn path=/trunk/; revision=14320
* e-shell-view.c (new_folder_cb): Don't do the
`gtk_signal_disconnect_by_func()' as it's already done in
`cleanup_delayed_selection()'.
(e_shell_view_construct): Set the ->shell member as the first
thing.
(set_current_notebook_page): Add a cast to make the compiler
happy.
(new_folder_cb): Don't set priv->uri before calling
`e_shell_view_display_uri()', because the latter does it anyways,
and also if you set it before calling it, the selection in the
folder tree doesn't get updated properly.
svn path=/trunk/; revision=14319
* e-shell-view.c (storage_set_removed_folder_callback): Explicitly
deactivate the control frame, and display the default URI before
destroying the dead one.
* e-shell.c (e_shell_component_maybe_crashed): If the URI is of a
folder that doesn't exist anymore, don't assume that the
corresponding component has crashed. Also, try pinging the
component first; if the component responds, don't pop up the
dialog.
svn path=/trunk/; revision=13960
* e-shell-view-menu.c (command_open_folder_in_new_window): No need
to gtk_widget_show() the view anymore.
* e-shell-view.c (activate_shortcut_cb): No need to
gtk_widget_show() the view anymore.
* e-shell.c (impl_Shell_createNewView): Don't explicitly show the
new view.
(e_shell_create_view): gtk_widget_show() the new view and flush
the GTK+ event loop before sending the ::interactive notification.
(create_view): New helper function.
(e_shell_create_view): Use it.
(e_shell_create_view_from_settings): New.
(e_shell_restore_from_settings): Use
`e_shell_create_view_from_settings()'.
svn path=/trunk/; revision=13918
* e-shell-view-menu.c (command_open_folder_in_new_window): Pass
the parent @shell_view as the @template_view arg to
`e_shell_create_view()'
* e-shell-view.c (activate_shortcut_cb): Pass the _view as the
@template_view arg to `e_shell_create_view()'.
* e-shell-folder-commands.c
(e_shell_command_open_folder_in_other_window): Pass the parent
@shell_view as the @template_view arg to `e_shell_create_view()'.
* e-shell.c (e_shell_create_view): New arg @template_view.
(impl_Shell_createNewView): Pass %NULL as @template_view when
calling it.
(e_shell_restore_from_settings): Likewise.
svn path=/trunk/; revision=13618
* e-shell-view.c
(reparent_storage_set_view_box_and_destroy_popup): Don't die if
the folder_bar_popup is %NULL. Fixes#10922.
svn path=/trunk/; revision=13613
* e-shell-view.c (e_shell_view_save_settings): Get the right
hpaned positions for when the shortcut bar and/or the folder bar
are visible.
svn path=/trunk/; revision=13461
* e-shell-view.c (storage_set_removed_folder_callback): New,
callback for the ::removed_folder signal on the shell's
EStorageSet.
(e_shell_view_construct): Connect.
(e_shell_view_remove_control_for_uri): Removed.
* e-shell-folder-commands.c
(folder_selection_dialog_folder_selected_callback): Don't call
`e_shell_view_remove_control_for_uri()'.
(e_shell_command_delete_folder): Not here either. And don't
display the default URI either.
svn path=/trunk/; revision=13305
* e-shell-view.c (e_shell_view_show_shortcut_bar): Set the
hpaned_position from the EPaned *before* hiding it -- otherwise,
the position will of course always be zero.
(e_shell_view_save_settings): Save from ->hpaned_position and
->view_hpaned_position.
svn path=/trunk/; revision=13234
* e-shell-view.c (setup_verb_sensitivity_for_folder): New helper
function.
(folder_selected_cb): Call it.
(folder_context_menu_popping_up_cb): New callback for the
"folder_context_menu_popping_up" signal on the folder bar's
EStorageSetView; set the sensitivities of the verbs according to
the right-clicked folder.
(folder_context_menu_popped_down_cb): New, callback for the
"folder_context_menu_popped_down" signal on the folder bar's
EStorageSetView; set the sensitivities of the verbs according to
the currently displayed folder.
(e_shell_view_get_folder_bar_right_click_path): Add a cast to
placate a warning.
* e-storage-set-view.c (class_init): Set up the
"folder_context_menu_popping_up" and
"folder_context_menu_popped_down" signals.
(right_click): Emit "folder_context_menu_popping_up" before
popping up the menu, "folder_context_menu_popped_down" after the
menu is gone.
* e-storage-set-view.h: New signals
"folder_context_menu_popping_up" and
"folder_context_menu_popped_down".
svn path=/trunk/; revision=13171
* e-shell-view-menu.c (get_path_for_folder_op): New helper
function.
(command_move_folder): Pass the @folder_path argument to
`e_shell_command_move_folder' by using it.
(command_copy_folder): Pass the @folder_path argument to
`e_shell_command_copy_folder' by using it.
(command_delete_folder): Pass the @folder_path argument to
`e_shell_command_delete_folder()' by using it.
(command_add_folder_to_shortcut_bar): Pass the @folder_path
argument to `e_shell_command_add_to_shortcut_bar()' by using it.
(command_create_folder): Pass the @parent_folder_path argument to
`e_shell_command_create_new_folder()' by using it.
(command_new_folder): Use `get_path_for_folder_op()'.
* e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar):
New arg @folder_path.
(e_shell_command_copy_folder): New arg @folder_path.
(e_shell_command_move_folder): New arg @folder_path.
(e_shell_command_open_folder_in_other_window): New arg @folder_path.
(e_shell_command_create_new_folder): New arg @parent_folder_path.
(e_shell_command_delete_folder): New arg @folder_path.
* e-shell-view.c (e_shell_view_get_folder_bar_right_click_path): New.
* e-storage-set-view.c: New member `right_click_row_path'.
(init): Init to NULL.
(destroy): Free.
(right_click): Set.
(popup_folder_menu): Use `gnome_popup_menu_do_popup_modal()' so we
are stuck in here until the menu disappears. After that, destroy
the menu and call `e_tree_right_click_up()'.
(e_storage_set_view_get_right_click_path): New.
svn path=/trunk/; revision=13124
* e-shell-view.c (hash_foreach_destroy_view): Renamed from
`hash_forall_destroy_view'. Don't free `name'.
(socket_destroy_cb): Use `g_hash_table_lookup()' instead of
`g_hash_table_lookup_extended()'. Don't free the URI.
(e_shell_view_remove_control_for_uri): Likewise.
(show_existing_view): Use view->uri as the key when inserting the
view. Remove the old view from the hash when destroying it.
(create_new_view_for_uri): Same here.
svn path=/trunk/; revision=12913
* e-shell.c (impl_Shell_createNewView): gtk_widget_show() the new
view returned by `e_shell_create_view()'.
(e_shell_restore_from_settings): Same here, after loading the
settings.
* e-shell-view.c (activate_shortcut_cb): gtk_widget_show() the new
view returned by `e_shell_create_view()'.
* e-shell-view-menu.c (command_open_folder_in_new_window):
gtk_widget_show() the view returned by `e_shell_create_view()'.
* e-shell-folder-commands.c
(e_shell_command_open_folder_in_other_window): gtk_widget_show()
the view returned by `e_shell_create_view()'.
* e-shell.c (e_shell_create_view): Don't show the view
automatically anymore.
* e-shell-view.c (e_shell_view_save_settings): Save the width and
height of the window.
(e_shell_view_load_settings): Restore the width and the height and
gtk_window_set_default_size() based on them.
svn path=/trunk/; revision=12816
* e-shell-view.c (pop_up_folder_bar): Disable DnD on the
EStorageSetView to avoid strange behaviors.
(reparent_storage_set_view_box_and_destroy_popup): Re-enable DnD
here.
(popdown_transient_folder_bar): And here as well.
* evolution-storage-set-view-factory.c
(evolution_storage_set_view_factory_new_view): Disable DnD on the
EStorageSetView.
* e-shell-folder-selection-dialog.c
(e_shell_folder_selection_dialog_construct): Disable DnD on the
EStorageSetView.
* e-shell-folder-creation-dialog.c (add_storage_set_view): Disable
DnD on the EStorageSetView.
* e-storage-set-view.c: New member `allow_dnd' in
`EStorageSetViewPrivate'.
(init): Init to `allow_dnd' %TRUE.
(tree_start_drag): If `allow_dnd' is false, don't start the drag
and return %FALSE.
(tree_drag_motion): If `allow_dnd' is false, return %FALSE.
(e_storage_set_view_get_allow_dnd): New.
(e_storage_set_view_set_allow_dnd): New.
svn path=/trunk/; revision=12810
* e-shell-folder-commands.c
(folder_selection_dialog_folder_selected_callback): Free the
folder_command_data when destroying the dialog.
* e-local-storage.c (remove_folder): Free physical_uri if we
allocated it.
* e-shortcuts-view.c (pop_up_right_click_menu_for_group): Unref
the popup menu, don't destroy it.
(destroy_group_cb): Free the question string.
(rename_group_cb): Free the new_name.
* e-shell-importer.c (create_plugin_menu): Free the list of
importers.
(get_iid_for_filetype): Likewise.
(import_druid_finish): #ifdef out some g_strdups that are only
used by other #ifdef'ed-out code.
* e-shell-view.c: Make sure the keys in the uri_to_view hash get
freed.
* e-shell-folder-title-bar.c (set_title_bar_label_style): Unref
the style after setting it on the widget.
* e-shell-offline-handler.c (impl_destroy): free priv.
* e-storage-set-view.c (tree_drag_data_received): Make sure
target_type always gets freed.
* e-shell-folder-creation-dialog.c (add_folder_types): Don't leak
the type names.
svn path=/trunk/; revision=12715
2001-08-30 Peter Williams <peterw@ximian.com>
* e-local-storage.c (async_xfer_folder_complete): Remove the folder from
the EvolutionStorage as well as the EStorage.
2001-08-29 Peter Williams <peterw@ximian.com>
* e-storage-set-view.c (etree_node_destroy_func): Only call
remove_node_from_hash if it's not the root node.
(removed_storage_cb): Don't remove the node from the hash here,
because it will be removed in the node_destroyed callback.
(removed_folder_cb): Same.
* e-shell-view.c (e_shell_view_remove_control_for_uri): Disconnect
from the destroy signal so as not to confuse ourselves. Also, the
page remove in the notebook destroys the control and the socket, so don't
do that explicitly.
* e-shell-folder-commands.c
(folder_selection_dialog_folder_selected_callback): Remove the control
for the source view if we're moving.
svn path=/trunk/; revision=12578
* Evolution-ShellComponent.idl: Studlycapsize all the IDs that are
not.
* Evolution-common.idl: Likewise.
* evolution-activity-client.c: Updated accordingly.
* evolution-shell-component.c: Likewise.
* evolution-storage.c: Likewise.
* e-activity-handler.c: Likewise.
* e-component-registry.c: Likewise.
* e-corba-storage.c: Likewise.
* e-shell-user-creatable-items-handlers.c: Likewise.
* e-local-storage.c (remove_folder): Remove unused variable.
* e-shell-view.c (update_for_current_uri): Assign zero to
`unread_count', not NULL.
* e-shell-importer.c (import_druid_finish): Remove unused
variable.
* e-shell-user-creatable-items-handler.c: #include
"e-corba-utils.h".
* e-shell-startup-wizard.c: #include "e-shell-startup-wizard.h".
* e-shell-startup-wizard.h: #include <glib.h>
* e-summary-weather.c (weather_make_html): Make local variable
`icon_name' const. Remove unused variable `uri'.
* e-summary.h: Reformatted in GTK+ style.
(e_summary_remove_online_connection): Added prototype.
* e-summary-preferences.c (fill_mail_shown_clist): Constify local
variable `name'.
* e-summary-mail.c: #include "e-util/e-path.h". Updated to match
the new studlyCapsification in shell/Evolution*.idl.
* mail-local.c: Match the studlyCapsification of
shell/Evolution*.idl.
* mail-config-druid.h: Change type of `event_source' from
`Bonobo_EventSource *' to `Bonobo_EventSource'.
* mail-accounts.c (mail_delete): Remove unused local variable
`label'.
* folder-info.c (do_get_info): `#if 0' unused variables.
* gui/component/addressbook-component.c: Get rid of a warning by
initializing the closing NULL element in folder_types correctly.
* gui/component/select-names/e-select-names.c: Updated to match
the studlyCapsification of attributes in shell/Evolution*.idl.
svn path=/trunk/; revision=12495
* e-shell-view.c (e_shell_view_remove_control_for_uri): Ooops.
Save the pointer to the control for use after the view struct is
freed.
svn path=/trunk/; revision=12458
* e-shell-view.c: New struct `View'. Replace `uri_to_control' in
`EShellViewPrivate' with `uri_to_view'.
(view_new): New.
(hash_forall_destroy_view): New, replacing
`hash_forall_destroy_control'.
(destroy): Updated to match the uri_to_control -> uri_to_view
changes.
(socket_destroy_cb): Likewise.
(get_view_for_uri): Renamed from `get_control_for_uri'. Return a
View instead of a GtkWidget.
(show_existing_view): Updated to use `get_view_from_uri', get a
@view instead of a @control.
(e_shell_view_display_uri): Updated to use `uri_to_view' instead
of `uri_to_control'.
(e_shell_view_remove_control_for_uri): Likewise.
svn path=/trunk/; revision=12457
* e-shell-view.c (update_folder_title_bar): Changed to get a
@title and a @type.
(update_for_current_uri): Updated accordingly.
(update_window_icon): Get a @type instead of a @folder.
(update_for_current_uri): Updated accordingly.
svn path=/trunk/; revision=12452
* e-shell-view.c (socket_destroy_cb): If the view belongs to a
toplevel storage node, get the right type information with
`e_storage_get_toplevel_node_uri()' instead of trying to get the
[non-existing] folder for it.
svn path=/trunk/; revision=12451
* e-shell-view.c (e_shell_view_load_settings): Don't set the
paneds' positions if the respective left-hand elements [i.e. the
shortcut bar and the folder bar] are hidden.
(e_shell_view_show_folder_bar): Set the paned position to zero
when hiding.
(e_shell_view_show_shortcut_bar): Likewise.
svn path=/trunk/; revision=12321
* e-shell-view.c (setup_storage_set_subwindow): Don't show the
vbox here.
(setup_widgets): Don't show the storage_set_view_box here.
svn path=/trunk/; revision=12246
* e-shell-view.c: New constant `MIN_POPUP_TREE_WIDTH'.
(pop_up_folder_bar): Make sure the pop-up is always this size or
more.
(setup_widgets): Pass %FALSE for @shrink to `e_paned_pack1()'.
(reparent_storage_set_view_box_and_destroy_popup): Likewise.
svn path=/trunk/; revision=12211