* 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
to the `FolderType' struct and renamed `Evolution::Shell::FolderTypeList'
to `Evolution::Shell::FolderTypeNameList' to avoid confusion.
svn path=/trunk/; revision=8400
2001-01-24 Jason Leach <jasonleach@usa.net>
(Fix#1252: Need a File->Close way to close a view)
* evolution.xml: new File->Close menu item and associated command.
2001-01-24 Jason Leach <jasonleach@usa.net>
(Fix#1252: Need a File->Close way to close a view)
* e-shell-view-menu.c (command_close): New function, destroys the
current view.
* e-shell.c (view_destroy_cb): Make sure shell settings get saved
when the last view is destroyed.
svn path=/trunk/; revision=7787
2001-01-17 Jason Leach <jasonleach@usa.net>
(Bug #883: Shortcut bar does not update when a folders display
name changes)
* e-local-storage.c (class_init): Define a new "folder_updated"
signal here.
(bonobo_interface_update_folder_cb): Emit the new folder_updated
signal here.
* e-shell-view.c (e_shell_view_construct): Connect the
EShell::ELocalStorage folder_updated signal here. Also connect
the updated_folder signal coming from EShell::EStorageSet to the
new callback.
* e-shell-view.c (folder_updated_cb): Callback that actually
initiates the shell updating.
* e-shortcuts.c (e_shortcuts_update_shortcut_by_uri): New
function. Given a uri for a shortcut bar item, we'll update it.
* e-shortcuts.c (e_shortcuts_remove_shortcut_by_uri): New
function. Given a uri for a shortcut bar item, we'll remove it.
* e-shortcuts.c (removed_folder_cb): Connect this callback that
will remove a renamed vfolder from the shortcut bar. Temporary
fix to the problem of renaming vfolders and having the shortcut
bar think the old vfolder still exists.
(Bug #1168: Shortcut bar and icon size persistence)
* e-shell-view.c (save_shortcut_bar_icon_modes): New static
function, save the icon modes (for all shortcut bar groups, even
though we only have one group now).
(load_shortcut_bar_icon_modes): New static function, load the
saved shortcut bar group icon modes and apply them to our
shortcut bar.
svn path=/trunk/; revision=7639