* e-shell.c (e_shell_construct): Register a "working" folder type
with the hourglass icon. (Would eventually like an animated gif,
when ETable supports that.)
* e-storage.c (e_storage_has_subfolders): Use "working" rather
than "noselect" as the folder type.
* e-shell-view.c (get_view_for_uri): Simplify a bit.
svn path=/trunk/; revision=16244
* evolution-storage.c (evolution_storage_update_folder): Fix a
"how can this ever have worked" bug to make unread message counts
start working again. (#22293 etc)
svn path=/trunk/; revision=16228
* e-shell-folder-commands.c (e_shell_command_rename_folder): Use
e_folder_get_name. Don't assume it's the same as the last path
element.
svn path=/trunk/; revision=16227
* e-splash.c (e_splash_construct): Set the wmclass to
"evolution-splash" so sawfish knows it's not the same kind of
window as the main window.
svn path=/trunk/; revision=16222
* Evolution-Storage.idl (StorageListener): add
notifyHasSubfolders, to announce that a folder has currently-
unknown subfolders.
(Storage): add asyncOpenFolder, to request that previously-
announced subfolders be filled in.
* evolution-storage.c (impl_Storage_async_open_folder): emit
OPEN_FOLDER.
(evolution_storage_has_subfolders): Implement by calling
notifyHasSubfolders on all of its listeners.
* evolution-storage-listener.c
(impl_GNOME_Evolution_StorageListener_notifyHasSubfolders): emit
HAS_SUBFOLDERS.
* e-corba-storage.c (impl_StorageListener_notifyHasSubfolders):
Implement by calling e_storage_has_subfolders.
(async_open_folder): Implement by calling asyncOpenFolder on the
CORBA storage.
* e-storage.c (EStoragePrivate, init, destroy): Keep a list of
pseudofolders representing un-filled-in subtrees.
(impl_async_open_folder): No-op default implementation
(e_storage_async_open_folder): New function to request that
un-filled-in subtrees be filled in.
(e_storage_new_folder): If the new folder's parent has an
"un-filled-in children" pseudofolder, remove it.
(e_storage_has_subfolders): New function to note that a folder has
unknown children. If the folder previously was marked as having
real children, remove them, and emit CLOSE_FOLDER to reset it back
to an a "unknown subfolders" state.
* e-storage-set.c (make_full_path): Make this deal with path being
"/", since that case gets used from storage_close_folder_cb
sometimes.
(storage_close_folder_cb): Proxy EStorage's CLOSE_FOLDER signal.
(storage_set_view_folder_opened): Handle EStorageSetView's
FOLDER_OPENED signal by calling e_storage_async_open_folder.
* e-storage-set-view.c (etree_fill_in_children): If the given node
is its parent's first child, emit FOLDER_OPENED for the parent.
(close_folder_cb): Handler for EStorageSet's CLOSE_FOLDER signal.
Ask the model to close that node.
(e_storage_set_view_construct): Set the default expanded state for
the tree to FALSE rather than TRUE, to prevent unwanted expansion
of delayed nodes. (This only affects the very first time the tree
is displayed anyway: after that its state is loaded off disk.)
* e-shell.c (e_shell_construct): Register the "noselect" type with
the folder type registry, so icon lookups on placeholder folders
will work.
svn path=/trunk/; revision=16169
* e-shell-settings-dialog.c (load_pages): Use
`evolution:config_item:icon_name' instead of
`evolution:config_item:icon_path'. If it's not an absolute path,
load from the IMAGESDIR. Also, no need to specify the language
list for this one, as the icon name shouldn't be translated.
svn path=/trunk/; revision=16140
* evolution-test-component.c (create_configuration_page): Update
to create an EvolutionConfigControl instead of just a
BonoboControl.
* e-corba-config-page.c (e_corba_config_page_construct): Get a
GNOME_Evolution_ConfigControl instead of a CORBA_Object. Retrieve
the control from it using ::_get_control instead of just assuming
it's a control. Also return a boolen indicating success or
failure.
(e_corba_config_page_new): Likewise, get a
GNOME_Evolution_ConfigControl.
(setup_listener): Renamed from `setup_config_control_interface'.
Get a ::ConfigControl instead of a CORBA::Object. Thus, no need
to queryInterface here anymore.
* evolution-config-control.c, evolution-config-control.h: New,
implementation for the Evolution::ConfigControl interface.
* Evolution-ConfigControl.idl: New attribute `control'.
svn path=/trunk/; revision=16134
* e-shell-settings-dialog.c (load_pages): Use ECorbaConfigPages.
* e-corba-config-page.c: New.
* e-corba-config-page.h: New.
* Evolution.idl: #include <Evolution-ConfigControl.idl>.
* Evolution-ConfigControl.idl: New IDL for configuration Controls
that will be displayed in the global config dialog.
svn path=/trunk/; revision=16007
* e-storage-set-view.[ch]: Note that e_storage_set_view_new
shouldn't be used directly.
* e-shell-view.c (setup_storage_set_subwindow): Use
e_storage_set_new_view instead of e_storage_set_view_new.
* evolution-storage-set-view-factory.c
(evolution_storage_set_view_factory_new_view): Likewise.
svn path=/trunk/; revision=15993
* evolution-test-component.c (create_configuration_page): New
function to create a test configuration page for the test
component.
(configuration_control_factory_fn): Factory function for the
configuration controls.
(register_configuration_control_factory): New function to register
the factory.
(main): Call it.
* e-shell-view-menu.c: Add verb "Settings".
(command_settings): Implementation for the "Settings" verb.
* GNOME_Evolution_TestComponent.oaf: Add a configuration control.
* e-shell-settings-dialog.c: New.
* e-shell-settings-dialog.h: New.
svn path=/trunk/; revision=15977
* e-folder-tree.c (e_folder_tree_add): Allow the caller to "add" a
root folder, if the existing root folder has no children.
(e_folder_tree_new): Use e_folder_tree_add to create the root
folder, since it can do that now.
* e-storage.c: (e_storage_construct): Replace toplevel_node_uri
and toplevel_node_type args with root_folder.
(e_storage_new): Likewise.
(*): Remove toplevel uri/type stuff everywhere. Also remove
display_name since now we will use the name of the root folder for
that.
* evolution-storage.c: Remove toplevel uri/type stuff everywhere.
* e-local-storage.c (construct): Pass root_folder to
e_storage_construct instead of toplevel uri/type.
Also, evolution_storage_new no longer takes toplevel uri/type.
* e-corba-storage.c (e_corba_storage_construct): Out with toplevel
uri/type, in with root_folder.
(e_corba_storage_new): Remove toplevel uri/type.
* e-shell.c (setup_local_storage): Create a top-level folder of
type "summary" for the Summary storage.
* e-storage-set-view.c (set_e_shortcut_selection): Remove
special-case for storages.
(etree_icon_at): Remove special case for figuring out storage
icons (but leave the code that makes the icon disappear once the
storage is opened).
(etree_value_at): Remove special case for storage names. (But
still make storages always bold.) Remove unused special-case code
for Summary.
* e-shortcuts.c (load_shortcuts): Remove special case for
storages, reorganize a bit.
* e-shortcuts-view.c (get_shortcut_info): Remove special case for
storages.
* e-shell-view.c (update_for_current_uri): Remove special case for
storages.
(socket_destroy_cb): Likewise.
(get_type_for_storage): No longer needed.
(get_view_for_uri): No longer needs to special-case storages (but
add a special case for folders of type "noselect", to make them
unselectable like storages-without-toplevel-views used to be).
* e-storage-set.c (get_storage_for_path): If passed "/foo", return
"/" as subpath_return so e_storage_set_get_folder will DTRT in the
NWO.
* Evolution-Storage.idl (addStorage): Remove the toplevel_node_uri
and toplevel_node_type arguments.
* e-corba-storage-registry.c (impl_StorageRegistry_addStorage):
Likewise.
svn path=/trunk/; revision=15965
* e-storage.c: Keep the storage name and display_name in
EStoragePriv.
(impl_get_name, impl_get_display_name): Return them.
(e_storage_construct): Set them here.
(e_storage_new): And here.
* e-local-storage.c: (impl_get_name, impl_get_display_name):
Removed.
(construct): Pass E_LOCAL_STORAGE_NAME and U_("Local Folders") to
e_storage_construct.
* e-corba-storage.c: Remove priv->name.
(get_name, get_display_name): Removed.
(e_corba_storage_construct): Pass name to e_storage_construct().
* e-summary-storage.[ch]: Gone. This didn't override anything in
EStorage but get_name/get_display_name, and the defaults for those
DTRT now.
* e-shell-constants.h: Move E_SUMMARY_STORAGE_NAME here from
e-summary-storage.h, and move E_LOCAL_STORAGE_NAME too for
consistency.
* e-storage-set-view.c: Fix up #includes.
* e-shell-importer.c: Likewise
* e-shell.c: Likewise. Create summary_storage as a plain EStorage
since ESummaryStorage is gone now.
* Makefile.am (evolution_SOURCES): Remove e-summary-storage.[ch]
svn path=/trunk/; revision=15955
* e-corba-storage-registry.c
(impl_StorageRegistry_removeListener): Fix up GList/GSList
confusion.
* e-shell-user-creatable-items-handler.c
(get_default_action_for_view): Don't look into the types list if
it's empty.
svn path=/trunk/; revision=15954
2002-03-04 Ettore Perazzoli <ettore@ximian.com>
[Fix#20234, Deleting Folder gratuitiously causes /local to open.]
* e-shell-view.c (find_inbox_in_storage): New helper function to
heuristically find an Inbox folder.
(handle_current_folder_removed): New function to handle the
removal of the currently displayed folder in a slightly smarter
way than before. It tries to display the parent folder of the
folder that got deleted and, if not possible, the Inbox in the
same storage. If neither of this is possible, it displays the
default local Inbox. [It still doesn't handle the case where you
have no Inbox gracefully, but that can come later.]
(storage_set_removed_folder_callback): Call
`handle_current_folder_removed'.
2002-03-04 Ettore Perazzoli <ettore@ximian.com>
[Fix#20237, Shell silently drops xfer_folder errors.]
* e-shell-folder-commands.c (xfer_result_callback): Display an
error message if the operation failed.
svn path=/trunk/; revision=15898
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-storage-set-view.c (impl_destroy): Renamed from `destroy'.
(impl_right_click): Renamed from `right_click'.
(impl_cursor_activated): Renamed from `cursor_activated'.
(impl_tree_start_drag): Renamed from `tree_start_drag'.
(impl_tree_drag_begin): Renamed from `tree_drag_begin'.
(impl_tree_drag_end): Renamed from `tree_drag_end'.
(impl_tree_drag_data_get): Renamed from `tree_drag_data_get'.
(impl_tree_drag_data_delete): Renamed from
`tree_drag_data_delete'.
(impl_tree_drag_motion): Renamed from `tree_drag_motion'.
(impl_tree_drag_leave): Renamed from `tree_drag_leave'.
(impl_tree_drag_drop): Renamed from `tree_drag_drop'.
(impl_tree_drag_data_received): Renamed from
`tree_drag_data_received'.
svn path=/trunk/; revision=15811
* main.c (idle_cb): Use the e_shell_new() API below so that we use
the saved offline settings at the next start-up if neither
--offline nor --online has been specified.
* e-shell.c (save_misc_settings): New function. For now, just
save `/Shell/StartOffline' indicating whether the shell should
start in offline mode or not.
(e_shell_construct): Replace @start_online with
@startup_line_mode.
(e_shell_new): Likewise.
* e-shell.h: New enum EShellStartupLineMode.
svn path=/trunk/; revision=15804
* 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-user-creatable-items-handler.c
(get_default_action_for_view): Return NULL if there is no
component ID for the current view.
svn path=/trunk/; revision=15792
* e-shell-user-creatable-items-handler.c (ensure_menu_items): Set
the icons for all the "New..." menu items from the specified one
in the type definitions.
* e-activity-handler.c (create_gdk_pixbuf_from_corba_icon):
Removed.
(impl_operationStarted): Just use
`e_new_gdk_pixbuf_from_corba_icon()'.
* e-shell-corba-icon-utils.c (e_new_gdk_pixbuf_from_corba_icon):
New.
svn path=/trunk/; revision=15786
* 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
2002-01-30 Not Zed <NotZed@Ximian.com>
* e-storage-set-view.c (popup_folder_menu): Use
right_click_row_path rather than selected_row_path, so clients get
the uri that was actually clicked on.
svn path=/trunk/; revision=15522
* Makefile.am: Just use BONOBO_HTML_GNOME_CFLAGS and
BONOBO_HTML_GNOME_LIBS for compiling/linking; we don't need the
other ones.
svn path=/trunk/; revision=15458
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