* e-shell.c (impl_Shell_getLocalStorage): Only raise NotReady if
the local storage pointer is actually NULL. This way it is
possible for the components to access the local storage during
initialization even if the shell is not quite finished
initializing yet.
svn path=/trunk/; revision=12914
the ::Shell interface to happen before the shell is actually fully
initialized. This is a lame hack and not a nice, complete
solution for the problem, but it should do for now.]
* e-shell.c: New member `is_initialized' in `EShellPrivate'.
(init): Initialize to %FALSE.
(e_shell_construct): Set `is_initialized' to %TRUE after the
initialization sequence is finished.
(raise_exception_if_not_ready): New utility function to raise the
notReady exception if the shell is not ready.
(impl_Shell__get_displayName): Call it.
(impl_Shell_getComponentByType): Likewise.
(impl_Shell_createNewView): Likewise.
(impl_Shell_handleURI): Likewise.
(impl_Shell_selectUserFolder): Likewise.
(impl_Shell_getLocalStorage): Likewise.
(impl_Shell_createStorageSetView): Likewise.
(impl_Shell_setLineStatus): Likewise.
(e_shell_construct): Print out the repo_id of the exception from
`bonobo_get_object()' if it fails. Also, register on OAF just
before displaying the splash.
* Evolution-Shell.idl: New exception `NotReady'. All the CORBA
methods on ::Shell can now raise this exception.
svn path=/trunk/; revision=12826
* 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
2001-08-15 Jason Leach <jleach@ximian.com>
* Evolution-Shell.idl: Add a new IDL function,
Evolution::Shell::setLineStatus (in boolean). Bug #3030.
* e-shell.c (impl_Shell_setLineStatus): Implementation of the
above.
* evolution-shell-client.c
(evolution_shell_client_set_line_status): A wrapper function for
the above, this is what a component can call to set the shell
on/offline.
svn path=/trunk/; revision=12057
* e-shell-view.c (e_shell_view_construct): Add the menu items
using the EShellUserCreatableItemsHandler.
* e-shell-user-creatable-items-handler.c: New.
* e-shell-user-creatable-items-handler.h: New.
* e-shell.c: New member `user_creatable_items_handler' in
`EShellPrivate'.
(init): Initialize to NULL.
(destroy): Unref.
(e_shell_construct): Create here.
(e_shell_get_user_creatable_items_handler): New accessor.
(setup_components): Add the registered components to the
user_creatable_items_handler.
* evolution-test-component.c (factory_fn): Add a couple sample
user-creatable items.
(user_create_new_item_callback): New callback for the
"user_create_new_item" signal on the EvolutionShellComponent.
(factory_fn): Connect.
* e-shell.c (e_shell_get_component_registry): New.
* evolution-shell-component.c: New enum value
`USER_CREATE_NEW_ITEM'. New member `user_create_item_types' in
`_EvolutionShellComponentPrivate'.
(init): Init to NULL.
(impl_destroy): Free it.
(user_creatable_item_type_free): New helper function.
(user_creatable_item_type_new): New helper function.
(impl_userCreateNewItem): New, implementation for
::userCreateNewItem.
(class_init): Install the "user_create_new_item" signal and the
userCreateNewItem impl.
(impl__get_external_uri_schemas): Renamed from
`impl_ShellComponent__get_external_uri_schemas'.
(impl___get_supported_types): Renamed from
`impl_ShellComponent__get_supported_types'.
(impl__get_user_creatable_item_types): New, implementation for the
`user_creatable_item_types' attribute.
(class_init): Install it.
(evolution_shell_component_add_user_creatable_item): New.
* evolution-shell-component.h: Added signal
`user_create_new_item'.
* Evolution-ShellComponent.idl: Added typedefs
`UserCreatableItemType', `UserCreatableItemTypeList'. New
attribute `user_creatable_item_types'.
(userCreateNewItem): New.
svn path=/trunk/; revision=11849
* e-shell.c (e_shell_construct): Call
`gtk_widget_hide_on_delete()' on the splash.
* e-splash.c (e_splash_add_icon): Don't check for destruction
here.
(e_splash_set_icon_highlight): Not even here.
(button_press_event): Use a GTK+ cast.
svn path=/trunk/; revision=11743
* e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct):
Add some padding to the label so that the title doesn't move
around when you switch between pop-up and non-pop-up folder bar.
Also, change all the GtkLabels to be GtkClippedLabels instead.
(e_shell_folder_title_bar_set_title): Updated to use
EClippedLabels instead of GtkLabels.
(e_shell_folder_title_bar_set_folder_bar_label): Likewise.
* e-shell.c (impl_Shell__get_displayName): New, implementation for
the `displayName' attribute.
* Evolution-Shell.idl: Added readonly attribute `displayName' to
get the canonicalized X11 display name for the shell.
* e-shell.c (e_shell_construct): Ooops. Return
`E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER' if the OAF registration
fails, not `E_SHELL_CONSTRUCT_RESULT_GENERICERROR'.
* e-shortcuts-view.c (rename_group_cb): Get the toplevel from the
shortcuts view, not the widget.
(rename_shortcut_cb): Likewise.
(show_new_group_dialog): Changed to use `e_request_string()'.
* evolution-test-component.c: Add the %FALSE value for the
`user_creatable' field in the `folder_types' entry.
* evolution-shell-client.c: New member `shortcuts_interface' in
`EvolutionShellClientPrivate'.
(destroy): Unref it if not CORBA_OBJECT_NIL.
(init): Init to CORBA_OBJECT_NIL.
(query_shell_interface): New helper function to query an interface
on the shell and spit out warnings if it fails.
(evolution_shell_client_construct): Use it to query the ::Activity
interface. Also query the ::Shortcuts interface and set the
`shortcuts_interface' member to point to it.
* e-shell.c: New member `corba_shortcuts' in `EShellPrivate'.
(init): Init to NULL.
(setup_shortcuts_interface): Helper function to add the
::Shortcuts CORBA interface to the shell.
(e_shell_construct): Call it.
* e-corba-shortcuts.c, e-corba-shortcuts.h: New objects
implementing the `Evolution::Shortcuts' CORBA interface.
* Evolution-Shortcuts.idl: New interface for accessing the
shortcuts in the shell.
* e-shell.c (e_shell_get_config_db): Moved down.
svn path=/trunk/; revision=11689
2001-08-03 Jason Leach <jleach@ximian.com>
[Removing Evolution::LocalStorage interface, abstracting the
unread counts from a folder's name, also abstract unread counts
from a shortcut's name. Fixes#4489 and #5497]
* e-shortcuts.c (shortcut_item_new): Take an unread_count argument
now.
(shortcut_item_update): Ditto.
* e-shortcuts-view-model.c (get_name_with_unread): Get a string
containing a shortcut name and it's unread, because these are
abstracted now.
(load_group_into_model): Use the above function to make shortcuts
that have unread counts.
* e-storage-set-view.c (update_folder_with_unread_hash): Keep a
hash of folder names with unread counts, because the folder name
and it's unread count are to be separated, only the ETree is
supposed to present it as one string.
* e-shell-view.c: Renamed EShellView::view_title_bar to
folder_title_bar, to closer match the
* e-shell-view-menu.c (new_shortcut_dialog_folder_selected_cb):
Make a shortcut with the unread count.
* e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar):
Make a shortcut with the unread count.
* e-local-storage.c: Updated for API changes.
* e-folder.c (e_folder_get_unread_count): New function, does what
it says.
(e_folder_set_unread_count): Ditto.
* e-corba-storage.c (impl_StorageListener_new_folder): Renamed to
match the IDL function name.
(impl_StorageListener_update_folder): Ditto.
(impl_StorageListener_removed_folder): Ditto.
* Evolution-Storage.idl (struct Folder): Replace the boolean
highlighted with a long unread_count.
(updateFolder): Brought in from the now dead
Evolution::LocalStorage.
* Evolution-Shell.idl (getLocalStorage): Return a Storage instead
of a LocalStorage.
* Evolution-LocalStorage.idl: Removed, no longer needed, only used
function, updateFolder, has been moved into Evolution::Storage
interface.
* evolution-local-storage.[ch]: Ditto.
* evolution-storage.c (impl_Storage_updateFolder): Implementation
of the updateFolder taken from ::LocalStorage.
(class_init): New "update_folder" signal, taken from
evolution-local-storage.c too.
(evolution_storage_update_folder): Take an @unread_count int
instead of a @highlighted boolean.
(evolution_storage_new_folder): Same for here.
(evolution_storage_update_folder_by_uri): And here.
* evolution-storage-listener.h: "update_folder" signal no longer
sends a @highlighted boolean.
2001-08-03 Jason Leach <jleach@ximian.com>
* e-shell-view-menu.c (update_offline_menu_item): Use Jakub's new
"Work Online" icon and fix a typo.
svn path=/trunk/; revision=11633
* e-shell.c (setup_local_storage): Add an E_STORAGE() cast to
prevent a warning.
* main.c (idle_cb): Only try to activate from the shell ID if the
result is `E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER'; if there is a
different error, spit out a dialog box with a description of it
and exit instead.
* e-shell.c (e_shell_construct): Return an `EShellConstructResult'
describing what kind of result we had. Show the splash after the
DB has been reached, not before.
(e_shell_construct_result_to_string): New function to get a
descriptive string out of an `EShellConstructResult'.
(e_shell_new): New arg @construct_result_return to return a
description of the result of the operation.
* e-shell.h: New enum `EShellConstructResult'.
* e-shell.c (impl_Shell_createNewView): Raise `InternalError'
instead of crashing if the shell_view returns a CORBA_OBJECT_NIL.
* Evolution-Shell.idl: New exception `InternalError'.
`createNewView' and `handleURI' can raise it.
svn path=/trunk/; revision=11611
* e-shell.c (e_shell_construct): Make sure the pointer to the db
object is CORBA_OBJECT_NIL if `bonobo_get_object()' raises an
exception.
svn path=/trunk/; revision=11606
* e-shell.c (e_shell_construct): Spit out a warning if we cannot
resolve "Bonobo/ConfigDatabase" on "wombat:". Also, register on
OAF only after we are sure we are not going to return FALSE.
svn path=/trunk/; revision=11603
2001-07-20 Jason Leach <jleach@ximian.com>
[Fix a crash if you start evolution with a bad URI.]
* e-shell.c (e_shell_create_view): If we can't display the URI,
display the default uri. This is because it's necessary for
e_shell_view_display_uri() to run all the way through so corba
interfaces get setup.
* e-shell-view.c (e_shell_view_display_uri): If we fail to create
a new view for a URI (happens if you pass in an invalid URI), be
sure to return FALSE.
svn path=/trunk/; revision=11290
* e-shell.c (init): Initialize priv->db and priv->iid so that
destroy() won't crash if e_shell_construct bails out before
setting them. Reduces bug #4173 to #4169.
svn path=/trunk/; revision=11044
file by itself when the file is not present or corrupted. Fixes
#3668, failure to handle malformed shortcuts.xml file.]
* e-shell.c (e_shell_construct): If the `e_shortcuts_new()'
returns an object with no shortcuts in it, fill it in with
`e_shortcuts_add_default_group()'.
* e-shortcuts.c: New member `num_groups' in EShortcutsPrivate.
(init): Init to zero.
(e_shortcuts_add_group): Increment.
(e_shortcuts_remove_group): Decrement.
(e_shortcuts_get_num_groups): New.
(e_shortcuts_add_default_group): New function to set up the
default shortcuts.
(e_shortcuts_new): Return an empty EShortcuts object if loading
the file files, instead of returning NULL.
svn path=/trunk/; revision=10744
thus getting the shell refcounting in better shape. The quit sequence
is still not quite right, but we are getting there.
Also fixed a nasty bug in destroying the EStorageSet due to a very old
commit by the Meekster.
svn path=/trunk/; revision=10470
background tasks. The Activity interface is added to the shell, and
the status of the various tasks is now displayed in a task bar widget
at the bottom of the EShellView.
I also implemented a simple test component to test all this stuff.
svn path=/trunk/; revision=10434
2001-06-08 Jason Leach <jleach@ximian.com>
* e-shell.c (e_shell_construct): Fix splash setup to keep it from
giving two Gtk-CRITICAL assertions when you do --no-splash.
svn path=/trunk/; revision=10158
2001-06-06 Jason Leach <jleach@ximian.com>
(Fix bug #418: Save state of folder tree view)
* e-shell-view.c (e_shell_view_save_settings): Changed the char *
@prefix argument to an int @view_num.
(e_shell_view_load_settings): Ditto.
(get_local_prefix_for_view): New function that gets us a prefix
from a view_num.
* e-shell-view.c (e_shell_view_save_settings): Save the
expanded/collapsed information for each storage-set-view here.
(e_shell_view_load_settings): Load it here.
* e-storage-set-view.c (e_storage_set_view_construct): Make it so
new storage set views have their storages expanded by default, but
will respsect the expanded state information that we load into it.
(insert_storages): Minor change here too.
(new_folder_cb): Ditto.
svn path=/trunk/; revision=10135
2001-05-30 Jason Leach <jleach@ximian.com>
* e-shell.c (e_shell_construct): Removed an unecessary sleep(2)
call, so evolution will start up 2 seconds faster now.
2001-05-30 Jason Leach <jleach@ximian.com>
* e-shell-view-menu.c: Connect the AddFolderToShortcutBar verb to
their implementation functions.
* e-shell-view.c (e_shell_view_get_current_shortcuts_group_num):
New function, use it to find out which shourtcut group is
currently open on the shortcut bar.
* e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar):
Implement this using new function described above.
svn path=/trunk/; revision=10052
2001-05-21 Christopher James Lahey <clahey@ximian.com>
* Makefile.am (INCLUDES): Added ETSPECDIR. Added
e-storage-set-view.etspec to get installed.
* e-local-storage.c (remove_folder_directory): Commented out this
function since it is unused.
* e-shell-folder-commands.c
(folder_selection_dialog_folder_selected_callback), e-shell-view.c
(update_offline_toggle_status): Fixed warnings here by adding a
return; after the g_assert_not_reached();.
* e-shell-importer.c (start_import): Got rid of real_folderpath
here and just reused folderpath (It was causing uninitialized
variable warnings.)
* e-shell.c (impl_Shell_getLocalStorage): Use
bonobo_object_dup_ref here. It makes things simpler.
* e-storage-set-view.c: Removed ETREE_SPEC since it's no longer
needed.
(convert_corba_drag_action_set_to_gdk,
folder_context_menu_activate_cb, remove_cb,
folder_context_menu_remove_cb): Commented out these functions
since they're unused.
(new_storage_cb, new_folder_cb, insert_folders, insert_storages):
Don't bother using insert_id here since it no longer does
anything.
(new_storage_cb, removed_storage_cb, removed_folder_cb): Don't
free the data returned from e_tree_memory_node_remove.
(e_storage_set_view_construct): Set the destroy func here so that
memory will automatically get freed when nodes are destroyed.
g_strdup the root node string here. Use
e_tree_construct_from_spec_file here to use an external file.
(e_storage_set_view_set_show_folders): g_strdup the root node
string here.
* e-storage-set-view.etspec: New etspec file.
* evolution-shell-component-client.c
(free_ShellComponentListener_servant): Added a prototype here.
svn path=/trunk/; revision=9989
2001-05-11 JP Rosevear <jpr@ximian.com>
* e-component-registry.c (register_component): component_new refs
the object itself, so unref ours when we finish with it
* e-shell.c (e_shell_construct): There is no need to explicitly
ref the folder type registry, storage set and shortcuts because we
are the creator and hold the initial ref count of 1.
svn path=/trunk/; revision=9766