Split the GTypeModule loader out of EShellModule as EModule, and rename
EShellModule to EShellBackend. Backends (formerly modules) should now
subclass EShellBackend.
This commit converts EShell but breaks all the shell backends.
- Tighter integration of GalViewInstance and EShellView.
- EBinding. Stolen from ExoBinding. Lets you bind GObject properties
together to automatically keep their values in sync. This is a godsend.
Added to e-util, but might even deserve a place in libedataserver.
- EShellSettings. This is the concept I blogged about. Already
started ripping apart em-mailer-prefs.c. Others to follow. Any
place where we're monitoring GConf keys is a target.
- Incremental progress on the calender and mailer. Got EMFolderView
somewhat working, but I think I'll be killing off EMFolderBrowser.
svn path=/branches/kill-bonobo/; revision=36795
What's interesting here is we're actually sharing the ECalModel across views.
Instead of having the Calendar view listen to GConf for changes to the Task
and Memo models, the Calendar view fetches the models directly from the Task
and Memo views -- starting the views if it has to, although the shell really
takes care of that -- and loads the models into its own taskpad and memopad.
We couldn't do that sort of thing before with Bonobo in the way.
Big chunks of redundant code should begin falling out shortly.
svn path=/branches/kill-bonobo/; revision=36696
EActivity objects instead of numeric handler IDs. Create an EActivity,
configure it, and (optionally) connect to its "cancelled" and "completed"
signals. Then hand it to the shell view via e_shell_view_add_activity().
When finished with the activity, call e_activity_finish() and unref it.
svn path=/branches/kill-bonobo/; revision=36391
- Contacts module partially working!
- Implement UI merging. Also merge EInfoLabel into ESidebar.
The shell window now manages the icon and labels and keeps
them up-to-date via EShellView properties.
svn path=/branches/kill-bonobo/; revision=36214
- Get the test module to demonstrate populating the shell window
(particularly, the various notebooks) with some stupid widgets.
svn path=/branches/kill-bonobo/; revision=36094
- Further refinements of the shell API.
- Kill ESMenu and EUserCreatableItemsHandler.
- Start ripping apart the addressbook component.
svn path=/branches/kill-bonobo/; revision=36093
Realized the "New" menu construction algorithm needs to live independently of
shell view instances since we lazy load the shell views but have to display
all possible "New" items immediately.
Prototype the mechanisms for managing the various shell views and keeping
track of which one is current.
Various other tightening up and rethinking of APIs.
svn path=/branches/kill-bonobo/; revision=36022
Also get the "Switcher Appearance" menu working... mostly. Still need to
respond to GtkSettings notifications and make the preference persistent.
svn path=/branches/kill-bonobo/; revision=35985
2008-05-22 Matthew Barnes <mbarnes@redhat.com>
** Fixes bug #534360
Migrate from deprecated GtkObject symbols to GObject equivalents.
Touches over 150 files in all components; too many to list.
svn path=/trunk/; revision=35526
* main.c (upgrade_from_1_0_if_needed): Disabled for now.
* e-shell-startup-wizard.c: Removed member config_listener from
struct SWData.
(e_shell_startup_wizard_create): Updated accordingly, just use
GConf, checking the /apps/evolution/mail/account-list key.
(finish_func): Use GConf.
* e-shell-config-default-folders.c: Removed member config_listener
in struct EvolutionDefaultFolderConfig.
(e_shell_config_default_folders_create_widget): Do not initialize
here. GConfified the paths.
(config_control_destroy_notify): No unref of the config_listener
anymore.
(config_control_apply_cb): Use GConf.
(setup_folder_selector): Likewise.
* e-shell-config-autocompletion.c: Removed member config_listener
from EvolutionAutocompletionConfig.
(config_control_destroy_notify): Do not unref.
(config_control_apply_callback): Use a GConfClient.
* e-folder-list.c (e_folder_list_init): Add missing cast.
* main.c (show_development_warning): Use GConf.
* e-setup.c (e_setup_check_config): Removed arg @listener.
GConfified.
* e-shell-view.c (e_shell_view_save_defaults): New.
(e_shell_view_save_settings): Removed.
(e_shell_view_load_settings): Removed.
(setup_defaults): New helper function.
(e_shell_view_construct): New arg @uri.
(e_shell_view_new): New arg @uri.
* e-shell.c: Removed member config_listener in struct
EShellPrivate.
(impl_dispose): Do not unref.
(init): Do not initialize.
(get_config_start_offline): New helper function.
(e_shell_construct): Use this to get the startup mode in case
E_SHELL_STARTUP_LINE_MODE_CONFIG.
(save_misc_settings): Changed to use GConfClient instead of
EConfigListener.
(e_shell_create_view_from_settings): Removed.
(e_shell_restore_from_settings): Removed.
(e_shell_get_config_listener): Removed.
(e_shell_disconnect_db): Removed.
(parse_default_uri): Use GConf.
* main.c (idle_cb): Simplified the logic here. Always assume that
the view will be created with the default folder open by just
using e_shell_create_view().
svn path=/trunk/; revision=18844
* e-shell.c (create_view): Pass TRUE as @queue to
e_shell_view_display_uri().
* e-shell-view-menu.c (command_activate_view): Pass TRUE as @queue
to e_shell_view_display_uri().
(goto_folder_dialog_folder_selected_cb): Likewise.
* e-shell-shared-folder-picker-dialog.c
(shared_folder_discovery_listener_callback): Pass TRUE as @queue
to e_shell_view_display_uri().
* e-shell-view.c
(display_uri): New arg @queue. If true, it allows the
delayed_selection mechanism to happen transparently (returning
TRUE, while before it used to return FALSE). Otherwise, refuse to
queue the URI and return FALSE.
(e_shell_view_display_uri): New arg @queue; pass it to
display_uri().
(handle_current_folder_removed): Pass TRUE as @queue to
e_shell_view_display_uri().
(set_folder_timeout): Likewise.
(switch_on_folder_tree_click): Likewise.
(activate_shortcut_cb): Likewise.
(corba_interface_change_current_view_cb): Likewise.
(socket_destroy_cb): Likewise.
(socket_destroy_cb): Likewise.
(e_shell_view_load_settings): Here, try displaying the old URI
with @queue set to FALSE; if this fails, display the default URI
and then invoke display again using @queue = TRUE so it gets
queued up. This should fix#27721.
svn path=/trunk/; revision=17972
* e-shortcuts-view-model.c (get_icon_for_item): Get the
EStorageSet from the shortcut's shell since there is no
e_shortcuts_get_storage_set() anymore.
* e-shortcuts-view.c (get_shortcut_info): Likewise.
(impl_shortcut_drag_motion): Likewise.
(impl_shortcut_drag_data_received): Likewise.
* e-shell.c (e_shell_construct): e_shortcuts_new_from_file(), not
e_shortcuts_new() here.
* e-shortcuts.c: Removed members storage_set and
folder_type_registy in EShortcutsPrivate. New member shell.
(init): Init to NULL.
(e_shortcuts_construct): Removed arg @storage_set and
@folder_type_registry, new arg @shell.
(e_shortcuts_new): Removed.
(e_shortcuts_new_from_file): New.
(impl_destroy): Renamed from destroy().
(e_shortcuts_get_storage_set): Removed.
(e_shortcuts_get_shell): New.
(load_shortcuts): Accept any URI that can be parsed (by
e_shell_parse_uri).
* e-shell.c (e_shell_parse_uri): New.
* e-shell-view.c (evolution_uri_for_default_uri): New.
(display_uri): Use it to determine the evolution: uri given a
default: uri.
* e-shell.c (impl_Shell_handleURI): Pass it over to
e_shell_create_view_from_uri_and_settings() even if it's an
E_SHELL_DEFAULTURI_PREFIX.
(handle_default_uri): Removed.
svn path=/trunk/; revision=17497
2002-04-18 JP Rosevear <jpr@ximian.com>
* evolution-shell-view.c (impl_ShellView_show_settings): emit
show_settings signal
(corba_class_init): assign epv method
(class_init): add signal
* evolution-shell-view.h: new signal
* e-shell.c (init): init settings_dialog private member
(settings_dialog_destroy_cb): reset dialog pointer
(e_shell_show_settings): show the settings dialog, bring it to the
front if one already exists for this shell
* e-shell.h: new proto
* e-shell-view.c (corba_interface_show_settings): implement
showSettings method
(setup_corba_interface): listen for show_settings signal
(e_shell_view_show_settings): show the settings dialog
* e-shell-view.h: new proto
* e-shell-view-menu.c (command_settings): call
e_shell_view_show_settings instead
* Evolution-ShellView.idl: add showSettings method
svn path=/trunk/; revision=16510
prefs.
* e-shell.c (impl_Shell_createNewView): Use
e_shell_create_view_from_uri_and_settings to create the new view
based on saved view 0 instead of always using the initial
evolution defaults.
(e_shell_create_view_from_uri_and_settings): Renamed and
simplified; the template_view argument was useless and
settings_found would always be set to TRUE in the context it was
being used it.
(e_shell_restore_from_settings): Simplify for
e_shell_create_view_from_uri_and_settings changes.
* e-shell-view.c (e_shell_view_load_settings): Only load the
DisplayedURI if the view isn't already displaying a URI. Also,
pass an &ev to the first bonobo_config_get_long so we can tell if
it failed and bail out.
* e-shell-view.h: Remove a prototype for a non-existent function
(e_shell_view_remove_control_for_uri).
* main.c (idle_cb): Add some comments here and remove some dead
code.
svn path=/trunk/; revision=16389
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-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-menu.c (shortcut_bar_visibility_changed_cb): New,
replacing `shortcut_bar_mode_changed_cb'.
(folder_bar_visibility_changed_cb): New, replacing
`folder_bar_mode_changed_cb'.
(command_toggle_folder_bar): Use `e_shell_view_show_folder_bar()'
instead of `e_shell_view_set_folder_bar_mode()'.
(command_toggle_shortcut_bar): Use
`e_shell_view_show_shortcut_bar()' instead of
`e_shell_view_set_shortcut_bar_mode()'.
(e_shell_view_menu_setup): Updated for the
"shortcut_bar_visibility_changed" and
"folder_bar_visibility_changed" signals and the above changes.
* e-shell-view.c: New member `folder_bar_popup' in
`EShellViewPrivate'. Replaced `folder_bar_mode' and
`shortcut_bar_mode' with `folder_bar_shown' and
`shortcut_bar_shown', respectively.
(init): Updated to initialize these correctly.
(reparent): New helper function.
(reparent_storage_set_view_box_and_destroy_popup): New helper
function.
(popdown_transient_folder_bar): Updated to use the
`folder_bar_popup'.
(folder_bar_popup_map_callback): Renamed from
`storage_set_view_box_map_cb'.
(e_shell_view_set_shortcut_bar_mode): Removed.
(e_shell_view_set_folder_bar_mode): Removed.
(e_shell_view_show_shortcut_bar): New. All the calls to
`e_shell_view_set_shortcut_bar_mode()' replaced with calls to this
one.
(e_shell_view_show_folder_bar): New. All the calls to
`e_shell_view_set_folder_bar_mode()' replaced with calls to this
one.
(e_shell_view_folder_bar_shown): New. All the calls to
`e_shell_view_get_folder_bar_mode()' replaced with calls to this
one.
(e_shell_view_shortcut_bar_shown): New. All the calls to
`e_shell_view_get_shortcut_bar_mode()' replaced with calls to this
one.
(class_init): Replace signal `folder_bar_mode_changed' with
`folder_bar_visibility_changed' and `shortcut_bar_mode_changed'
with `shortcut_visibility_changed'.
(e_shell_view_save_settings): Use keys "ShortcutBarShown" and
"FolderBarShown" instead of "ShortcutBarMode" and "FolderBarMode",
respectively.
(e_shell_view_load_settings): Likewise.
* e-shell-view.h: Removed enum `EShellViewSubwindowMode'. Renamed
signal `shortcut_bar_mode_changed' to
`shortcut_bar_visibility_changed' and `folder_bar_mode_changed' to
`folder_bar_visibility_changed'.
svn path=/trunk/; revision=12203
* evolution-test-component.c (user_create_new_item_callback):
Updated to display the parent folder's URI and its type as well.
* evolution-shell-component.c (impl_userCreateNewItem): Updated to
get the @parent_folder_physical_uri and the @parent_folder_type.
(class_init): Update the "user_create_new_item" signal to have
@parent_folder_physical_uri and @parent_folder_type args.
* e-shell-view.c (get_type_for_folder): Don't bork on a NULL
@physical_uri_return.
(e_shell_view_get_current_physical_uri): New.
(e_shell_view_get_current_folder_type): New.
* e-shell-user-creatable-items-handler.c
(e_shell_user_creatable_items_handler_setup_menus): Replace
@ui_component arg with a @shell_view arg. Set it on the
UIComponent using gtk_object_set_data().
(verb_fn): Pass the type and physical URI of the current folder;
retrieve that from the shell_view got with gtk_object_get_data().
* Evolution-ShellComponent.idl
(userCreateNewItem): New args @parent_folder_uri,
@parent_folder_type.
svn path=/trunk/; revision=11863